cuốn sách gpt4 ai đã làm

java - return (string expr) 和 return New String(string expr) 有什么区别?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:55:40 27 4
mua khóa gpt4 Nike

Có sự khác biệt giữa hai phương pháp này?

Chuỗi công khai toString() {
trả về this.from.toString() + this.to.toString();
}

Chuỗi công khai toString() {
trả về Chuỗi mới(this.from.toString() + this.to.toString());
}

(Tất nhiên là giả sử from.toString()to.toString() phương thức trả về một chuỗi).

Về cơ bản, tôi bối rối về việc xử lý chuỗi trong Java vì đôi khi các chuỗi được coi là kiểu nguyên thủy mặc dù chúng là các thể hiện của lớp.

câu trả lời hay nhất

Không có sự khác biệt thực tế

Bởi vì cả hai hàm của bạn đều có kiểu trả về String, tạo mới String() Chỉ là một khoản chi phí. Nó giống như gói lại một chuỗi thành một chuỗi và tạo một chuỗi mới trong nhóm, điều này thực sự không có bất kỳ lợi thế nào.

Nhưng một điểm khác biệt chính giữa các kiểu nguyên thủy và các đối tượng String là lớp String luôn tạo ra các chuỗi mới.

Chuỗi str = "chuỗi của tôi";

Nếu "chuỗi của tôi" đã tồn tại trong nhóm chuỗi. Sau đó, nó sẽ sử dụng cùng một chuỗi thay vì tạo một chuỗi mới.

đó là lý do tại sao,

Chuỗi str1= "chuỗi của tôi";
Chuỗi str2="chuỗi của tôi";

str1==str2? --> sẽ trả về đúng

Kết quả trên sẽ đúng vì cùng một đối tượng String từ nhóm được sử dụng.

Nhưng khi bạn làm điều này,

Chuỗi str = Chuỗi mới("chuỗi mới");

Một đối tượng String mới luôn được tạo, bất kể đối tượng đó đã tồn tại trong nhóm hay chưa.

So sánh:

Chuỗi str1 = Chuỗi mới("chuỗi mới");
Chuỗi str2 = Chuỗi mới("chuỗi mới");

str1==str2 --> sẽ trả về sai

Về java - sự khác biệt giữa return (chuỗi expr) và trả về Chuỗi mới (chuỗi expr) là gì? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/20451786/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress