- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
也许我在 Java 上工作的时间太长而没有真正理解它的一些基础知识。
我确实理解 ==
用于对象引用相等,而 .equals()
用于对象值相等。
比较整数
:
Integer x = 1, y = 1;
System.out.println(x == y); // true
为什么?由于使用了对象引用相等性,因此它们应该是 false,因为它们都是不同的对象。
比较 getClass()
返回值:
String s1 = "a", s2 = "b";
System.out.println(s1.getClass() == s2.getClass()); // true
为什么?同样按照上面的方法,使用了对象引用。两者都使用 lấyLớp
将返回单独的 Class 对象。
我是不是漏掉了什么,或者是我对 Java 编码感到厌倦了?
câu trả lời hay nhất
Integer x = 1, y = 1;
System.out.println(x==y); // true, why?
发生这种情况是因为对于 byte
范围(-128 到 +127)中的值,java 使用缓存的 Integer 对象,存储在 Số nguyên 中的内部类,IntegerCache .每次创建值介于 -128 和 +127 之间的 Integer 对象时,将返回相同的对象(而不是创建新对象)。
相反,对于 byte
范围内的值,比较结果为 SAI
:
Integer x = 999, y = 999;
System.out.println(x==y); // false
String s1 = "a", s2 = "b";
System.out.println(s1.getClass() == s2.getClass()); // true. Why?
这是真的,因为两个对象的 lớp học Tất cả Sợi dây
,并且每个 JVM 每个类对象只有一个副本(就像一个单例)。从每个字符串的 getClass()
返回的类对象Đúng相同类对象 (String.class
)。
关于java - 为什么自动装箱的整数和 .getClass() 值 == 相等,而不仅仅是 .equals() 相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464340/
Điều tôi muốn làm là nếu chuột ở trên nút "tiếp theo" thì nó sẽ cuộn sang phải với tốc độ chậm và nếu chuột không ở trên nút "tiếp theo" thì nó sẽ ngừng cuộn? Đây là nỗ lực của tôi http://jsfiddle.net/mdanz/nCCRY/14/ $(
StyleCop là một plugin nhỏ tuyệt vời dành cho các studio trực quan. Nhưng nó sẽ không hiển thị cho bạn các mẹo theo thời gian thực hoặc cung cấp bất kỳ bản sửa lỗi tự động nào. Cùng với reSharper và StyleCop cho reSharper, đây là giải pháp lý tưởng nhưng
Tôi đang sử dụng tùy chọn độ mờ cho MatchQuery của mình nhưng tôi muốn đặt giá trị độ mờ thành tự động. Có cách nào không? Ngoài ra, đối với trình đề xuất hoàn thành, bạn có thể đặt nó để hỗ trợ unicode, đối với MatchQuery của tôi, có cách nào để
Tôi muốn lấy một hàng [tên chuỗi, mật khẩu chuỗi, int gì đó] từ một bảng và ánh xạ nó tới một đối tượng Người dùng có 3 thuộc tính như getter và setter ở trên. Có cách nào để thực hiện việc này một cách tự động không? Tôi nghĩ về sự phản chiếu,
Tôi có một phương thức như thế này: void m1(string str) và một lớp như thế này: public class MyClass { public bool b1 { set;
Tôi đang cố gắng phát sóng $ một số dữ liệu từ Bộ điều khiển này sang Bộ điều khiển khác bằng cách sử dụng $rootScope. Nếu tôi sử dụng trình kích hoạt như ng-click để chạy một chức năng sẽ phát sóng, thì nó
Tôi đã suy nghĩ rất nhiều về việc nên sử dụng bộ nhớ đệm hoàn toàn tự động hay bộ nhớ đệm thủ công. Cách tiếp cận tự động của chúng tôi là một giải pháp khai thác cơ sở dữ liệu, truy vấn và định dạng mọi yêu cầu dữ liệu tiềm năng và trong tương lai, đồng thời lưu nó vào bộ lưu trữ bộ nhớ đệm thích hợp (bộ nhớ đệm hoặc bộ nhớ đệm trên đĩa).
CSS của tôi phải thay đổi bằng cách sử dụng các hiệu ứng chuyển tiếp và cho đến bây giờ tôi vẫn sử dụng div:hover để làm điều đó. Quá trình chuyển đổi cần được kích hoạt khi bạn nhấp vào div khác, không phải khi bạn di chuột qua div phải được di chuyển/thay đổi. Tôi nên làm gì? Cảm ơn bạn Yong
Trong ứng dụng của mình, tôi cần một số hoạt ảnh nhưng không cần thời lượng nếu nó đã có hoạt ảnh. Nhưng vấn đề của tôi là nó tự động thêm thời lượng. Ở đây bạn có thể thấy 2 chức năng, chức năng thứ hai không có thời lượng nhưng nó có thời lượng (có thể bắt đầu từ 1 giây)
Hai năm trước, tôi cần tạo một công cụ tự động tải các tệp txt/csv lên máy chủ web của mình thông qua POST và sau đó phân tích chúng qua PHP bằng cronjob. Điều này xảy ra tự động hai lần mỗi ngày vào lúc nửa đêm. Mặc dù điều này có hiệu quả,
Vui lòng đọc các nhận xét trong chương trình bên dưới: #include void test(char c[]) { c=c+2; //tại sao điều này lại hiệu quả?
Có thể là một câu hỏi ngây thơ, nhưng... Xác nhận hoặc Từ chối: Sự tồn tại của bộ nhớ cho các đối tượng/biến có thời lượng lưu trữ tự động và tĩnh được xác định tại thời điểm biên dịch và khả năng lỗi chương trình trong thời gian chạy là hoàn toàn bằng không, vì Không đủ bộ nhớ cho tự động đồ vật. Đương nhiên, khi các đối tượng tự động
Có cách nào để tự động nhận được thông báo về các thay đổi thuộc tính trong một lớp mà không cần phải viết OnPropertyChanged trong mỗi setter không? (Tôi có hàng trăm tài sản và tôi muốn biết liệu chúng có thay đổi gì không). Anton đề xuất năng động chuyên nghiệp
Chúng tôi áp dụng quy trình gitflow trong các dự án của mình bằng Azure DevOps. Tôi có kịch bản sau: Khi một nhánh tính năng được hợp nhất vào Phát triển, tôi muốn thực hiện chiến lược hợp nhất nén trong khi hoàn thành yêu cầu kéo Khi nhánh Phát hành được hợp nhất thường xuyên.
Tôi có một phần nhận xét trên trang web của mình và tôi lưu các nhận xét được mã hóa html trong cơ sở dữ liệu của mình. Vì vậy, tôi đã thêm nhận xét này - "testing" `quotes` \and backslashes\ và html và lưu nó vào
Có tính năng nào như "tự động kiểm tra TFS trước khi đăng ký" để tôi không kiểm tra bất kỳ tệp nào cho đến khi tôi nói "đăng ký", ví dụ: trong trường hợp tôi chỉ tạm thời thay đổi một tệp - điều này luôn xảy ra. Nói cách khác
Tôi có một trang web chạy trên ngăn xếp Linux/Apache/Tomcat cần được tự động ngoại tuyến vài tháng một lần để bảo trì máy chủ, quá trình này có thể kéo dài trong một khoảng thời gian tùy ý. Có những tùy chọn nào để Apache tạo và vô hiệu hóa trang Bảo trì Máy chủ? tôi cần phải
Tôi thường soạn thảo tài liệu tại nơi làm việc, và trong công ty chúng tôi gần như có ngôn ngữ riêng do số lượng từ viết tắt và viết tắt chúng tôi sử dụng rất nhiều. Vì vậy, tôi cảm thấy mệt mỏi với việc tạo danh sách các từ viết tắt và viết tắt theo cách thủ công trước khi xuất bản một tài liệu và tìm kiếm nhanh trên Google đã tìm ra cách thực hiện việc này một cách hiệu quả
Tôi muốn chạy mã khi người dùng hoặc macro thay đổi chế độ tính toán từ tự động sang thủ công hoặc thủ công sang tự động. Có sự kiện nào được kích hoạt cho việc này không? (Thuộc tính là Application.Calculation trong Excel interop.) Sử dụng Excel
Câu hỏi này đã có câu trả lời ở đây: Tự động lặp lại lệnh trong Linux (13 câu trả lời) Đã đóng 6 năm trước. Tôi muốn tạo một tập lệnh để lấy tất cả tên thư mục trong một thư mục khác. và vì những điều này
Tôi là một lập trình viên xuất sắc, rất giỏi!