1. Số nguyên

Và bây giờ là một chủ đề thú vị mới - nghĩa đen. Dữ liệu được viết trực tiếp trong mã chương trình được gọi là chữ . Chúng tôi không nói về bất kỳ dữ liệu cũ nào, mà là các giá trị của kiểu nguyên thủy và kiểu String.

Ví dụ: giả sử bạn có đoạn mã sau:

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ố 10và chuỗi ' Sum = '.

Trong Java, mọi thứ, kể cả chữ, đều có một kiểu. Theo mặc định, tất cả các số nguyên (số nguyên) trong mã là ints. Kiểu int là kiểu số nguyên Java tiêu chuẩn.

Hơn nữa, nếu bạn quyết định gán một số nguyên bằng chữ cho biến byte hoặc biến ngắn trong mã của mình, sẽ không có vấn đề gì. Bạn chỉ cần đảm bảo rằng giá trị bằng chữ nằm trong phạm vi giá trị mà loại biến có thể lưu trữ.

Trình biên dịch Java đủ thông minh để hiểu rằng một bytebiến có thể được gán số nguyên bằng chữ 100 mà không gây ra vấn đề gì.

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.

Bạn cũng có thể viết longchữ trong mã của mình. Để thực hiện việc 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? Bạn không thể ngay lập tức biết liệu mã nói 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 các 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.

Nhưng chúng ta 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.



2. Số thực

Trong mã của bạn, bạn có thể chỉ định không chỉ các số nguyên mà còn cả các ký tự dấu chấm động (số thực).

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 chữ số dấu phẩy động. Và không chỉ bất kỳ nghĩa đen, mà là một doublenghĩa đen.

Bạn có thể tạo một chữ nổi, nhưng bạn cần đặt chữ cái 'F' (hoặc 'f') ở cuối số để làm điều đó .

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 bằng chữ thành số thực hoặc ký tự kép bằng cách đơn giản ). Ví dụ: appending the suffix 'F' (for float) or D (for double)

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 chữ là double.

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

nghĩa đen ký hiệu toán học giá trị cuối cùng
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. 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. Để yêu cầu 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 các cặp. Dấu ngoặc kép đầu tiên cho biết sự bắt đầu của một nghĩa đen. Cái tiếp theo chỉ ra sự kết thúc của nghĩa đen. Phần tiếp theo sau đó một lần nữa đánh dấu sự khởi đầ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à như 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  +nhân vậ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 là số
"return" + ";"
Ngoài ra còn 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ì tất cả văn bản sẽ được hiển thị trên một dòng duy nhất!


4. Ký tự chữ

Bạn có thể chỉ định không chỉ các chuỗi ký tự trong mã của mình mà còn cả các ký tự bao gồm các ký tự riêng lẻ. Lưu ý rằng chúng tôi không nói về một chuỗi bao gồm một ký tự đơn lẻ, mà là về các ký tự có kiểu là char.

Không giống như một chuỗi, một ký tự chữ được bao quanh bởi các dấu nháy đơn . 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 ngoặc đơ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 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. Các bài học tiếp theo bao gồm thông tin chi tiết về điều này.