Cùng nhau chia sẻ, trả lời những câu hỏi khi đi xin việc

vuongj

New Member
24/10/11
1
0
1
Tại sao khi so sánh 2 chuỗi ta nên dụng phương thức equal() mà không nên == hay != để so sánh
Mình xin trả lời câu hỏi của bạn, việc so sánh 2 chuỗi thì ta có thể sử dụng phương thức equals() hoặc toán tử so sánh == hay !=. Tuy nhiên nếu ta sử dụng toán tử so sánh thì sẽ không được tường minh trong ngôn ngữ hướng đối tượng, 1 điều hoàn toàn đi sai tính hướng đối tượng của Java :-D. Nếu bạn sử dụng phương thức equals() thì sẽ tường minh hơn.​
Chúng ta cũng nên kiểm tra lại kiến thức về OOP để hiểu rõ hơn lý thuyết về đối tượng, lớp, ...​
 

kokichi88

Member
3/5/12
60
12
8
Mình xin trả lời câu hỏi của bạn, việc so sánh 2 chuỗi thì ta có thể sử dụng phương thức equals() hoặc toán tử so sánh == hay !=. Tuy nhiên nếu ta sử dụng toán tử so sánh thì sẽ không được tường minh trong ngôn ngữ hướng đối tượng, 1 điều hoàn toàn đi sai tính hướng đối tượng của Java :-D. Nếu bạn sử dụng phương thức equals() thì sẽ tường minh hơn.​
Chúng ta cũng nên kiểm tra lại kiến thức về OOP để hiểu rõ hơn lý thuyết về đối tượng, lớp, ...​
Bạn có nhầm lẫn cơ bản về toán tử và hàm equals() trong java. 2 điểu này đều được ghi rõ ràng và rành mạnh trong java doc. Bạn nên đọc kĩ trước khí nêu ý kiến.
Thân.
 

qmn1711

New Member
13/9/12
1
0
1
31
Tại sao khi so sánh 2 chuỗi ta nên dụng phương thức equal() mà không nên == hay != để so sánh
Theo mình thì toán tử ==, != sẽ so sánh giá trị theo từng bit, nên thường dùng để so sánh các kiểu dữ liệu primitives(nguyên thủy), còn đối với biến có kiểu dữ liệu là đường dẫn đến đối tượng thì dùng ==, != sẽ không chính xác. Chương trình không báo lỗi nhưng phép so sánh đó về cơ bản là sai.

Ví dụ:

PHP:
Dog a = new Dog();
Dog b = new Dog();
Dog c = a;

System.out.println("Is a == b, " + a == b);
System.out.println("Is a == c, " + a == c);

//Output:
Is a == b, false
Is a == c, true
a, b chứa 2 địa chỉ khác nhau trỏ tới 2 đối tượng khác nhau nên lúc so sánh theo từng bit sẽ khác nhau
a, c chứa cùng 1 địa chỉ nên lúc so sánh theo từng bit là giống nhau.

Do đó với so sánh biến là các đối tượng, cụ thể ở đây là chuỗi String thì nên dùng hàm equal(), chính xác hơn thì là dùng hàm equal() của lớp String.
//Các bạn chú ý là các hàm equal() ở mỗi đối tượng là khác nhau, vì các lớp có thuộc tính khác nhau nên kéo theo cách so sánh cũng khác nhau.
 

green_river48

New Member
15/12/12
3
0
1
21
PHP:
void swap(char &a, char &b) {
    a += b;
    b = a - b;
    a -= b;
}
Viết ntn nguy hiểm lắm nhé: a = 125, b = 5 ???? :D

Tại sao khi so sánh 2 chuỗi ta nên dụng phương thức equal() mà không nên == hay != để so sánh
equal() : so sánh 2 đối tượng
==, != : so sánh 2 tham chiếu
Test bằng String sẽ thấy :)

c1 = c1^ c2; --> phép XOR bit bạn nhé
 

tuyendt6

New Member
17/10/12
13
4
3
28
Topic nào là để chia sẻ câu trả lời phỏng vấn xin việc java mà bạn
Thế bạn tham khảo cho mình đoạn code này xem nó có truyền tham trị không nha
PHP:
public static void main(String[] args) {
        JButton btn1=new JButton("Button1");
        JButton btn2=btn1;
        btn2.setText("NewText");
        System.out.println(btn1.getText());
    }
Bạn đoán được output ra là gì không
newText mà.đó là truyền kiểu tham chiếu,tiện đây mình cũng đóng góp chút kiến thức phân biệt kiểu tham chiếu và tham trị
tham trị:
khi truyền kiểu tham trị thì trình biên dịch sẽ tự động tạo ra 1 bản sao.mọi thay đổi của bản sao không hề làm thay đổi bản gốc.
còn kiểu tham chiếu mọi thay đổi đều dẫn đến bản gốc bị thay đồi theo
phân biệt kiểu biến tham chiếu và tham trị: biến kiểu nguyên thủy là biến tham trị,biến kiểu đói tượng là biến tham chiếu.mình cũng đã gặp rất nhiều kiểu biến tham trị nhưng để đáp ứng đc yêu cầu ta phải chuyển kiểu biến đó sang dạng tham chiếu.ví dụ bình thường mình phải để là:
PHP:
int n;
thì ta chuyển sang dạng tham chiếu như sau:
PHP:
int[] n=new int[ 1 ];//dung hieu nham thanh mang 1 phần tử nhé
 

truonglba

New Member
25/10/12
4
0
1
30
Mình mới bắt đầu hoc lập trình Java và mong muốn sau này được làm ở Cty nc ngoài. Mọi người tư vấn cho mình biết với hoc lập trình thì nên đầu tư tiếng anh ở trình độ như thế nào? cả 4 kỹ năng đều tốt hết hay chỉ cần đọc hiểu tài liệu. Nếu thi chứng chỉ thì nên thi lấy chứng chỉ nào và mức độ khoản bao nhiêu? (TOEIC, TOEFL IBT, IELTS). Thanks mọi người nhìu nhìu!!!
 

duythanhcn

Member
25/3/13
39
0
6
27
mình xin đóng góp 1 số câu hỏi mà mình đã gặp
1/ tính đa hình thể hiện như thế nào ?
2/ trong java có con trỏ không ? nếu không có, có thể truyền dữ liệu thẻo kiểu con trỏ được không ?
3/ abstract class và class thường khác nhau như thế nào ?
4/ có 1 bảng monhoc(mssv,monhoc,diem), bảng sinhvien(mssv,tensv), lấy ra 1o người có điểm cao nhất theo từng môn
(hay đại loại là thế mình ko nhớ rõ)
5/ có mấy cách để thiết kế giao diện trong java
6/ đưa 1 tờ giấy và yêu cầu code một button và xử lý sự kiện khi lick vào button
 

thanhbao03

New Member
14/10/12
4
1
3
30
Ai dà có vẻ mình viết không rõ nghĩa nên gây hiểu lầm:
- Thứ nhất mình có nói là bắt buộc phải dùng java hay ngôn ngữ bất kì gì đâu, các bạn có thể dùng giả mã được mà.
- Thứ 2: mình xin lỗi vì sự không rõ nghĩa ở đây. Khái niệm hàm ở đây không phải là hàm chứa input là 2 biến vào, nó là hàm thực hiện 1 nhiệm vụ như đề bài thôi. Ví dụ như
Code:
function testA(){
char c1 = 'a';
char c2 = 'b';
// do something here

print(c1) // 'b'
print(c2) // 'a'
}

minh nghi day la cai ban can.
Code Java _ da test Ok

char c1 = 'a';
char c2 = 'b';
c1 += c2;
c2 = (char)(c1 - c2);
c1 -=c2;
 

conrongchautien

New Member
22/7/11
33
6
3
B1: Tìm phần tử nằm giữa của một danh sách liên kết đơn. Yêu cầu:
1. Chỉ duyệt qua một lần.
2. Không dùng bất kì mảng tạm nào.
B2: Cho một dãy số có NxN phần tử và hàm sort() dùng để sắp xếp dãy số theo thứ tự tăng dần. Hãy xếp dãy số vào ma trận vuông N sao cho mọi:
1. Hàng ngang từ trái qua phải
2. Hàng dọc từ trên xuống
3. Hàng chéo theo chiều trên xuống
đều có thứ tự tăng dần.

Mỗi bài trên thời gian là 5 phút.
 

conrongchautien

New Member
22/7/11
33
6
3
Lý thuyết:
B1: Cho các chuỗi sau:
String s1 = "Hello World!";
String s2 = new String("Hello World!");
String s3 = s1;

Trả lời (true/false) và giải thích:
1. s1 == s2;
2. s1 == s3;
3. s2 == s3

B2:
1. Cho:
String s1 = "abc";
String s2 = "xyz";

void swap(String s1, String s1) { String temp = s1; s1 = s2; s2 = temp;}
Hỏi kết quả s1, s2 sau khi gọi hàm swap?

2. Cho:
Integer a = 1;
Integer b = 2;

void swap(Integer a, Integer b) { Integer temp = a; a = b; b = temp;}
Hỏi sau khi gọi hàm swap thì a, b bằng bao nhiêu?
 
  • Like
Reactions: rawman9x

rawman9x

New Member
16/6/15
3
0
1
29
Code:
package example;

import static java.lang.System.out;

public class Example025
{
    public static void main(String[] args)
    {
        Example025 ex = new Example025();
        ex.show();
        Tutorial025 exsuper = new Tutorial025();
        exsuper.show();
    }
   
    public void show()
    {
        out.println("show of example 25");
    }
}

class Tutorial025
{       
    public void show()
    {
        out.println("show of tutorial 25");
    }
}
Phương thức show() trong ví dụ trên thuộc kiểu nào?
a. Overrload
b. Override
c. a và b sai
d. a và b đúng
 

Attachments