Chào bạn đến với phanlamcoder.blogspot.com!
Ở bài viết này mình sẽ
chia sẻ đến các bạn cách tạo đối tượng String trong Java:
1. String
Literal:
· String
s = “yzenny97”;
· Các đối tượng String được lưu trữ trong một khu vực
bộ nhớ đặc biệt gọi là String Constant Pool.
· Java sử dụng
phương thức intern() để lưu trữ mọi object bất kỳ vào String pool. Khi sử dụng
String literal thì mặc định nó sẽ gọi phương thức intern() để làm việc này giúp
bạn. Đây chính là điểm khác biệt lớn nhất giữa String literal và
sử dụng new.
Mỗi khi bạn tạo một hằng
chuỗi, đầu tiên JVM kiểm tra Pool chứa các hằng chuỗi. Nếu chuỗi đã tồn tại
trong Pool, một tham chiếu tới Pool được trả về. Nếu chuỗi không tồn tại trong
Pool, một instance của chuỗi mới được tạo và được đặt trong Pool. Ví dụ:
String s1="xinchao";
String s2="xinchao";//se khong tao
instance moi
Lợi ích: Để làm cho Java hiệu quả hơn trong việc sử dụng bộ
nhớ bởi vì không có đối tượng mới nào được tạo khi mà nếu nó đã tồn tại trong
Pool.
2. Khởi tạo với từ khóa new
String s=new String("xinchao");//tao hai doi tuong va mot bien tham chieu
Trong trường hợp này, JVM sẽ tạo một đối tượng mới như bình thường
trong bộ nhớ Heap (không phải Pool) và hằng "xinchao" sẽ được đặt
trong Pool. Biến sẽ tham chiếu tới đối tượng trong Heap (chứ không là Pool).
Ví dụ về String trong Java
public class StringExample{
public static void main(String args[]){
String s1="java";//tao string boi string literal
char ch[]={'s','t','r','i','n','g','s'};
String s2=new String(ch);//chuyen doi mang ky tu thanh string
String s3=new String("Vidu");//tao string boi tu khoa new
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}}
Tạo các String được định dạng trong Java
Bạn có các phương thức printf() và format() để in output với các số được định dạng.
Lớp String có một phương thức lớp tương đương, là format(), mà trả về một đối
tượng String chứ không là một đối tượng PrintStream.
Sử dụng phương thức static format() của đối tượng String cho phép bạn tạo một
chuỗi đã được định dạng để bạn có thể tái sử dụng, trái ngược với lệnh in một
lần. Ví dụ, thay vì:
System.out.printf("Gia tri cua bien float la " +
"%f, trong khi gia tri cua bien integer " +
"bien la %d, va chuoi la " +
"is %s", floatVar, intVar, stringVar);
Bạn có thể viết:
String fs;
fs = String.format("Gia tri cua bien float la " +
"%f, trong khi gia tri cua bien integer " +
"bien la %d, va chuoi la " +
"is %s", floatVar, intVar, stringVar);
System.out.println(fs);
Chúc các bạn học tốt!
Góp ý tại mục bình luận bên dưới 💓