- Tạo ứng dụng Spring Boot bằng Spring Launchizr
- Cấu hình Cassandra trong Spring Boot
- Định cấu hình nhóm kết nối Tomcat trên Spring Boot
- Định tuyến tin nhắn Camel đến Artemis được nhúng bằng WildFly
gói com.fastone.www.javademo.stringintern; /** * * String.intern() là một phương thức gốc * Chức năng của nó là: nếu nhóm hằng chuỗi đã chứa một chuỗi bằng đối tượng Chuỗi này thì Trả về một Chuỗi. đối tượng đại diện cho chuỗi này trong nhóm; * Mặt khác, thêm chuỗi có trong đối tượng Chuỗi này vào nhóm hằng số và trả về một tham chiếu đến đối tượng Chuỗi này. * * @program: javademo * @description: * @author: sunyuhua * @create: 2022-02-17 09:41 **/ public class TestStringIntern { public static void main(String[] args) { // Trong hằng số pool Tạo "abc" trong "abc", s1 trỏ đến địa chỉ tham chiếu của "redis" trong pool hằng String s1 = "abc"; String() mở một không gian bộ nhớ trong heap và gán tham chiếu địa chỉ của không gian bộ nhớ cho s2, // "abc" là một hằng số, sau đó vào nhóm hằng chuỗi để xem có đối tượng chuỗi "abc" không , nếu không, hãy phân bổ một khoảng trống Lưu trữ "abc" và lưu địa chỉ vùng trống của nó vào khoảng trống mới trong heap. String s2 = new String("abc"); // s1 trỏ đến địa chỉ trong vùng hằng số. trỏ đến địa chỉ trong heap chắc chắn là khác nhau, sai. System.out.println("s1==s2 " + (s1 == s2)); // Phương thức String.intern() trước tiên kiểm tra xem chuỗi "abc" đã tồn tại trong nhóm hằng chưa, // nếu nó tồn tại, Sau đó trả về một tham chiếu đến chuỗi trong nhóm hằng số; nếu nó không tồn tại, hãy tạo một tham chiếu đến chuỗi gốc trong nhóm hằng số và trả về // Vì chuỗi "abc" đã tồn tại trong nhóm hằng số nên s2.intern() trả về tham chiếu địa chỉ của "abc" trong nhóm hằng số s2.intern() == s2 là sai System.out.println( "s2. intern()==s2 " + (s2.intern() == s2)); // Cả s1 và s2.intern() đều trỏ đến tham chiếu địa chỉ của "abc" trong nhóm hằng số, vì vậy nó đúng System.out.println("s2.intern()==s1 " + (s2.intern() = = s1) ); // Phương thức toString() sẽ gọi new String(), mở một không gian bộ nhớ trong heap và gán tham chiếu địa chỉ của không gian bộ nhớ cho str, // "Máy tính" là một hằng số, sau đó đi đến nhóm hằng chuỗi để xem có đối tượng chuỗi "máy tính" hay không. Nếu không, hãy phân bổ một khoảng trống để lưu trữ "máy tính" và lưu địa chỉ không gian của nó vào không gian mới trong heap. String str = new StringBuilder("Computer").toString(); // Vì "Computer" đã tồn tại trong nhóm hằng số, str.intern() trả về tham chiếu địa chỉ của "Computer" trong nhóm hằng số và str trỏ tới tham chiếu địa chỉ trong heap thì cả hai đều sai System.out.println(str.intern() == str); // false // Phương thức toString() sẽ gọi new String(), tạo ra một đối tượng của lớp String trong heap và nội dung được ghép nối "Computer" Software", // Lưu ý: Kết quả của phép cộng sẽ không được đặt trong constant pool. Không có chuỗi "computer software" nào trong constant pool // str1 trỏ đến địa chỉ của đối tượng lớp String trong đống. Chuỗi str1 = mới StringBuilder("Computer").append("Software").toString(); // Câu này sẽ tạo ra ba đối tượng: 1 là một đối tượng chuỗi biểu thị nội dung của "Computer"; 2 là một ký tự biểu thị nội dung của "Software"; " Đối tượng chuỗi; // 3 là đối tượng chuỗi đại diện cho nội dung của "phần mềm máy tính". 1 và 2 đứng trước 3 và nhóm hằng số cũng sẽ lưu trữ tham chiếu đến 1 và 2. // 3 là đối tượng trong heap mà str1 trỏ tới. (Câu này là điểm mấu chốt) // Vì vậy: str1.intern() trước tiên tìm kiếm "phần mềm máy tính" trong nhóm hằng số. Nếu không tìm thấy, nó sẽ sao chép tham chiếu địa chỉ trên heap vào nhóm hằng số (lúc này thời gian, nhóm hằng số được tạo ra Đối tượng thứ ba: phần mềm máy tính) và trả về tham chiếu này // Và new StringBuilder("Computer").append("Software").toString() cũng là một tham chiếu từ nhóm hằng số chuỗi. tới đối tượng trong heap // Vì vậy str1.intern() và str1 trỏ tới địa chỉ của đối tượng lớp String trong heap, nên nó đúng System.out.println(str1.intern() == str1); // true String str2 = new StringBuilder(" ja ").append("va").toString(); // instance chuỗi được tạo bởi StringBuilder nằm trên vùng heap Java // str2 trỏ đến địa chỉ trong vùng heap // Vì máy ảo JVM đã tạo "java" trong nhóm hằng số trong quá trình khởi tạo, str2.intern() trả về một tham chiếu đến "java" trong nhóm hằng số, đó là sai System.out.println(str2.intern() = = str2); // false (một là tham chiếu đối tượng trong heap và một là tham chiếu java trong nhóm hằng chuỗi, vì vậy nó không phải là đối tượng) } }
Nếu bạn muốn nối 5 chuỗi trở lên bằng String.Concat(), thì nó sẽ sử dụng Concat(String[]). Tại sao không luôn luôn sử dụng Concat(String[]) và không cần Concat(S nữa
Hôm nay, khi làm việc với String, tôi đã gặp phải một hành vi mà trước đây tôi không hề biết. Tôi không thể hiểu được chuyện gì đang xảy ra bên trong. Chuỗi công khai returnVal(){ return "5";
Có vẻ như ở mọi nơi tôi nhìn đều có một số phiên bản lỗi thời không còn hoạt động nữa. Vấn đề của tôi có vẻ đơn giản. Tôi có một lớp Java ánh xạ tới cơ sở dữ liệu derby. Tôi đang sử dụng chú thích và đã tạo thành công tất cả các bảng khác trong cơ sở dữ liệu, nhưng ở đây
1. String::size_type() Trong kiểu chuỗi của thư viện chuẩn C++, khi hàm size được gọi để giải quyết đối tượng chuỗi, giá trị trả về là kiểu size_type, một dữ liệu int tương tự như kiểu không dấu.
Tôi đang cố lưu dữ liệu vào tệp plist chứa định nghĩa của một chuỗi các chuỗi. Plist của tôi - nhập mô tả hình ảnh vào đây Mã của tôi để ghi dữ liệu vào plist là -- hãy
Tôi có một đối tượng JavaScript với các cặp khóa/giá trị, trong đó các giá trị là mảng các chuỗi: var error = { "Message": ["Error #1", "Error #2"], "Em
Ví dụ: để lặp lại Danh sách và Danh sách> bằng cách sử dụng cùng một hàm, tôi có thể viết một cái gì đó như: import java.util.*; public class Test{ public static voi
Từ điển đầu tiên giống như Từ điển ParentDict = new Từ điển ParentDict.Add("A_1", "1")
Đây là tệp jsp của tôi: Tôi gặp lỗi Phương thức thay thế (Chuỗi, Chuỗi, Chuỗi) trong loại Hàm không được áp dụng
Tôi cần giúp đỡ. Tôi có một phương thức xuất ra tệp txt chứa nội dung của danh sách (mỗi mục trong mỗi dòng). Các mục danh sách là mảng các chuỗi. Vấn đề là khi tôi gọi string.Join nó trả về chuỗi ký tự "System.Strin
Một đồng nghiệp bảo tôi sử dụng phương pháp sau: string url = "SomeURL"; string ext = "SomeExt";
Lớp đã cho: lớp công khai CategoryValuePair { Loại chuỗi; Giá trị chuỗi } Ngoài ra còn có một phương thức: công khai;
Tôi đang cố gắng hợp nhất các đối tượng Stream>> với các khóa từ tất cả các Luồng vào một bản đồ duy nhất. Ví dụ: Final Map someObject Final List>> list = someObjec;
Giá trị của việc sử dụng IDictionary ở đây là gì? Câu trả lời hay nhất sử dụng giao diện có giá trị luôn giống nhau: bạn không phải thay đổi mã máy khách khi chuyển sang triển khai chương trình phụ trợ khác. Vui lòng xem xét việc phân tích mã của bạn sau
Tôi có thể biết sự khác biệt giữa hai cách khai báo từ điển này không? var Places = [String: String]() var Places = [Dictionary()] Tại sao khi tôi cố nối thêm phần khai báo theo cách này, chỉ
Khi string.IsNullOrWhiteSpace(string) tồn tại trong .NET 4.0 trở lên, sử dụng string.IsNullOrEmpty(string) khi kiểm tra xem một chuỗi có được xem xét hay không
Lý do đằng sau cái tên là gì? SS64 diễn giải chuỗi ở đây trong PowerShell như sau: Chuỗi ở đây là chuỗi trích dẫn đơn hoặc trích dẫn kép
Tôi định rời khỏi bài viết này và cố gắng viết một hàm chấp nhận một chuỗi và một &str, nhưng tôi gặp phải một vấn đề. Tôi có chức năng sau: pub fn new(t_num: S) -> BigNum trong đó S: Into {
Tôi có một mảng nhiều chiều có cấu trúc [String: [String: String]]. Tôi có thể sử dụng vòng lặp for để truy cập bit [String: String], nhưng tôi không biết cách truy cập khóa chính (bit [String:
Tôi đang cố gắng tạo chủ đề bằng sarama (chế độ quản trị viên). Hoạt động tốt mà không cần ConfigEntries. Nhưng tôi cần xác định một số cấu hình. Tôi đặt cấu hình chủ đề (lỗi xảy ra ở đây): tConfigs := map[s
Tôi là một lập trình viên xuất sắc, rất giỏi!