"Anh bạn, tôi ghen tị với bạn. Học hỏi những điều mới thật tuyệt vời! Và hôm nay, một chủ đề mới và thú vị đang chờ đón bạn - nghĩa đen."

"Rõ ràng tôi nên nói rằng tôi là học sinh người máy hạnh phúc nhất trên hành tinh, Rishi. Chà, tôi đã sẵn sàng để tiếp thu kiến ​​thức mới!"

"Hãy bắt tay vào việc ngay lập tức. Literals là dữ liệu cụ thể được viết trực tiếp trong mã của chương trình. Chúng ta không chỉ nói về bất kỳ dữ liệu nào. Chúng ta chỉ nói về các kiểu và Chuỗi nguyên thủy.

Ví dụ: giả sử bạn có mã này:

Mã số chữ
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

"Các chữ trong mã này là số 5 , số 10 và chuỗi ' Sum = '.

Số nguyên

"Trong Java, mọi thứ, bao gồm cả ký tự, đều có một loại. Tất cả các ký tự số nguyên (số nguyên) trong mã là ints . Loại int là loại số nguyên tiêu chuẩn của Java."

"Tôi biết loại này. Tôi đã dùng rồi."

"Bạn có nhớ các kiểu số nguyên khác ngoài int không? Một số chiếm ít không gian hơn trong bộ nhớ?"

"Tất nhiên! Byte và ngắn."

"Đó là những cái đó. Vì vậy, nếu trong mã của bạn, bạn quyết định gán một số nguyên bằng chữ cho một biến kiểu byte hoặc ngắn, sẽ không có vấn đề gì. Điều chính là giá trị bằng chữ nằm trong phạm vi giá trị mà kiểu của biến có thể lưu trữ Trình biên dịch Java đủ thông minh để hiểu rằng một biến byte có thể được gán số nguyên bằng chữ 100.

Ví dụ:

Mã số Sự miêu tả
int a = 300;
Điều này sẽ biên dịch tốt.
byte a = 100; 
Điều này sẽ biên dịch tốt.
byte a = 300; 
Sẽ có lỗi biên dịch vì giá trị byte tối đa là 127.

"Còn loại dài thì sao ?"

"Chúng tôi cũng có thể viết các chữ cái thuộc loại này trong mã của mình. Để làm điều này, hãy thêm chữ cái Latinh 'L' hoặc 'l' vào cuối số nguyên.

Ví dụ:

Mã số Sự miêu tả
long a = 3000000000L; 
Điều này sẽ biên dịch tốt.
long a = 3000000000; 
Lỗi biên dịch: 3 tỷ quá lớn đối với một chữ int.
int a = 3000000000L; 
Lỗi biên dịch: chữ dài, nhưng biến là int. Ngoài ra, 3 tỷ là nhiều hơn int tối đa.

"Bạn có nhận thấy việc đọc các số lớn có 10 chữ số trở lên khó khăn như thế nào không?

"Vâng, nếu bạn không kích hoạt robovision của mình, thì sẽ không rõ ràng ngay lập tức liệu chúng ta đang nói về 3 tỷ hay 30 tỷ."

"Để làm cho mã dễ đọc hơn (và điều này rất quan trọng!), Java cho phép chèn dấu gạch dưới vào chữ số (chúng không ảnh hưởng đến giá trị của số).

"Ví dụ trên có thể được viết lại với dấu gạch dưới để làm cho nó rõ ràng hơn một chút:

Mã số Sự miêu tả
long a = 3_000_000_000L; 
Điều này sẽ biên dịch tốt.
long a = 3_000_000_000; 
Lỗi biên dịch: 3 tỷ quá lớn đối với một chữ int.
int a = 3_000_000_000L; 
Lỗi biên dịch: chữ dài, nhưng biến là int. Ngoài ra, 3 tỷ là nhiều hơn int tối đa.

"Điều này thuận tiện hơn nhiều để đọc, mặc dù dấu phẩy thay vì dấu gạch dưới sẽ quen thuộc hơn!"

"Nhưng chúng tôi không thể sử dụng dấu phẩy trong chữ số vì chúng đã được sử dụng cho mục đích khác. Ví dụ: để tách các đối số khỏi nhau khi gọi một phương thức.

Chữ số thực

"Có lẽ bạn đã đoán được rằng trong mã của mình, bạn có thể chỉ định không chỉ các số nguyên mà còn cả các ký tự dấu phẩy động (số thực)."

"Cả đôi và nổi?"

"Vâng. Trên thực tế, quy tắc khá đơn giản: nếu một số trong mã có dấu thập phân trong đó, thì số đó là một ký tự dấu phẩy động. Và không chỉ bất kỳ ký tự nào, mà là ký tự kép. Để tạo ký tự thực , bạn cần đặt chữ 'F' (hoặc 'f') ở cuối số .

Ví dụ:

Mã số Sự miêu tả
double a = 100.0; 
Điều này sẽ biên dịch tốt.
double a = 100.;
Điều này sẽ biên dịch tốt.
double a = .0;
Điều này sẽ biên dịch tốt.
float a = 100.0f; 
Điều này sẽ biên dịch tốt.
float a = 100.0; 
Sẽ có một lỗi biên dịch: biến là float, nhưng nghĩa đen là double.

"Nhân tiện, bạn có thể chuyển đổi một cách rõ ràng một số nguyên thành số thực hoặc ký tự kép bằng cách chỉ cần thêm hậu tố 'F' (đối với float ) hoặc D (đối với double ). Ví dụ:

Mã số Sự miêu tả
double a = 100D; 
Điều này sẽ biên dịch tốt.
float a = 100F; 
Điều này sẽ biên dịch tốt.
int a = 300D; 
Sẽ có lỗi biên dịch: biến là int, nhưng nghĩa đen là double .

"Chữ dấu phẩy động có thể sử dụng ký hiệu khoa học : ngoài phần đã ký của số, bạn cũng có thể chỉ định lũy thừa của mười. Ví dụ:

nghĩa đen ký hiệu toán học giá trị cuối cùng
1.23 E 2 1,23*10 2 123.0
1.23 Đ 3 1,23*103 1230.0
1.23 E -6 1,23*10 -6 0,00000123
1 E 6 1.0 *10 6 1000000.0
1 E -10 1.0*10 -10 0,0000000001

Chuỗi ký tự

"Bạn cũng có thể chỉ định toàn bộ dòng văn bản trong mã của mình. Để báo cho trình biên dịch coi một chuỗi là dữ liệu (một chữ) chứ không phải là một phần của mã, toàn bộ chuỗi được bao quanh bởi dấu ngoặc kép ở cả hai bên.

"Nếu một dòng mã có nhiều dấu ngoặc kép, thì chúng được chia thành từng cặp. Dấu ngoặc kép đầu tiên cho biết phần đầu của một chữ. Dấu ngoặc kép tiếp theo cho biết phần cuối của chữ. Dấu ngoặc kép tiếp theo một lần nữa đánh dấu bắt đầu của một nghĩa đen mới. Và tiếp theo đánh dấu sự kết thúc của nghĩa đen thứ hai. Và cứ thế.

"Mỗi chữ như vậy là một String .

ví dụ

Mã số Giải trình
"+"+"+"+"+"+"+"+"+"
Có 5 chữ trong một dòng. Mỗi người trong số họ bao gồm một ký tự '+' duy nhất
""
Chữ này là một chuỗi rỗng. Một chuỗi không có ký tự.
"2+3"+"-5"
Có hai nghĩa đen ở đây. Kết quả sẽ là chuỗi '2+3-5', không phải số
"return"+";"
Cũng có hai nghĩa đen ở đây. Không có tuyên bố trở lại ở đây.

"Nếu một chuỗi ký tự quá dài, nó có thể được chia thành nhiều dòng và được dán lại với nhau bằng 'toán tử cộng':

Mã số Giải trình
String s = "I hold it true, whate'er befall"
         + "I feel it when I sorrow most;"
         + "'Tis better to have loved and lost"
         + "Than never to have loved at all.";
Nếu bạn xuất dòng này ra màn hình thì toàn bộ văn bản sẽ được hiển thị trên một dòng duy nhất!

Ký tự chữ

"Điều gì sẽ xảy ra nếu tôi cần một chữ là một ký tự đơn chứ không phải một chuỗi? Tôi có nên tạo một chuỗi bao gồm một ký tự không?"

"Không, trong trường hợp đó bạn cần một nghĩa đen có loại là char. Bạn có thể đoán cách bắt đầu và kết thúc của một nghĩa đen như vậy không?"

"Dấu nháy đơn?"

"Có, và bên trong dấu ngoặc đơn phải có một ký tự và chỉ một ký tự. Bạn không thể sử dụng dấu nháy đơn trống.

Ví dụ:

Mã số Giải trình
'A'
Một chữ có loại là char. Nó chứa chữ cái Latinh 'A'.
'@' 
Một chữ có loại là char. Nó chứa biểu tượng '@'
'' 
Một chữ có loại là char. Nó chứa một ký tự tiếng Nhật. Và điều này cũng có thể xảy ra.
'\u1f3a'
Một chữ có loại là char. Nó chứa một ký tự Unicode được chỉ định bởi số của nó.

"Ví dụ cuối cùng gán một ký tự Unicode bằng một ký hiệu đặc biệt: đầu tiên chúng ta có tiền tố \u, tiếp theo là 4 ký tự thập lục phân. Bạn sẽ tìm hiểu thêm về điều này trong các bài học tiếp theo."