# data[].attributes.headline
Câu 2: Phân biệt hàm và hằng trong Java. Cho ví dụ minh họa. cần lưu ý gì khi đặt tên?

# data[].attributes.subject
Câu 2: Phân biệt hàm và hằng trong Java. Cho ví dụ minh họa. cần lưu ý gì khi đặt tên?

# data[].attributes.body
- Hằng là một biến mà giá trị không đổi trong suốt chương trình, tất nhiên ta đã khởi tạo giá trị ngay từ đầu.

Lý do sử dụng hằng:

Tạo ra những giá trị vốn thực tế không cho thay đổi, làm chương trình an toàn hơn.

Giúp người đọc biết ý nghĩa con số vô cảm trong khoa học như có thể áp dụng giá trị số PI, gia tốc trọng trường,...

Sẽ cảnh báo nếu người dùng cố tình thay đổi giá trị sau này. Đảm bảo tính toán vẹn của giá trị.

+ Trong bài này sẽ chỉ nói về hằng số trong biến. Ngoài ra khái niệm hằng còn có liên quan đến phương thức, hàm sau này thì Kteam sẽ giải thích chi tiết trong những bài sau.

Cú pháp khai báo hằng là:

final  <kiểu dữ liệu> <tên biến> = <giá trị hằng>;

+ VD: final int sotientong = 421412;

- Hàm là một nhóm các câu lệnh cùng xử lý một nhiệm vụ cụ thể nào đó. mỗi chương trình có ít nhất 1 hàm - main().

+ Cú pháp khai báo:
<kiểu dữ liệu> <Tên hàm> ( <danh sách tham số> )
{
//các câu lệnh.
//...
<return giá trị trả về nếu có>
}

+ Ví Dụ minh họa:
public static void TEST(){
System.out.println("TEST");
}

- một số lưu ý khi đặt tên:
+ Ký tự bắt đầu của tên biến phải là chữ cái, hoặc dấu gạch dưới (_), hoặc ký tự đô la ($).
+ Không được có khoảng trắng giữa các ký tự của biến.
+ Không chứa ký tự đặc biệt bên trong tên biến như !@#%^&*.
+ Không được đặt tên biến trùng với keyword.

# data[].attributes.headline
Câu 5: Nêu cách xuất nhập dữ liệu trong java. Cho ví dụ

# data[].attributes.subject
Câu 5: Nêu cách xuất nhập dữ liệu trong java. Cho ví dụ

# data[].attributes.body
*Nhập dữ liệu từ bàn phím:
-Java là một ngôn ngữ lập trình thuần  hướng đối tượng, nên cách nhập dữ liệu từ bàn phím cũng phải sử dụng theo hướng đổi tượng. Tức là bạn phải khai báo một đối tượng, sau đó gọi hàm nhập, rồi gán giá trị cho biến.

-Scanner: là một lớp trong thư viện Java.util giúp bạn nhập và lưu data từ bàn phím. Ngoài scanner, còn có nhiều lớp khác nữa, nhưng đây là lớp được sử dụng nhiều nhất.

Cú pháp nhập:
-Để sử dụng bạn khai báo một đối tượng
Scanner có tên tùy ý.
-Ở đây mình đặt là ip
Scanner ip = new Scanner(System.in);
ip.nextInt(); // Gọi hàm nhập số nguyên. Các hàm khác cú pháp tương tự
*Xuất dữ liệu ra màn hình:

-Xuất dữ liệu của biến mà bạn đã lưu cũng khá quan trọng. Nó show cho bạn kết quả của bài toán, các câu lệnh giúp người dùng tương tác với chương trình.

-Cú pháp in ra màn hình:
System.out.println(“Noi dung can in” + biến);
Code Ví Dụ:

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates a Scanner object
    Scanner input = new Scanner(System.in);

    System.out.println("Enter an integer: ");

    // reads an int value
    int data1 = input.nextInt();

    System.out.println("Using nextInt(): " + data1);

    input.close();
  }
}

# data[].attributes.headline
câu 1 : Trong JaVa có  những kiểu dữ liệu nào ? Cho ví dụ cụ thể .

# data[].attributes.subject
câu 1 : Trong JaVa có  những kiểu dữ liệu nào ? Cho ví dụ cụ thể .

# data[].attributes.body
Trong java có 2 kiểu dữ liệu chính:

Primitive

Non-primitive

Kiểu dữ liệu Primitive

byte: kiểu dữ liệu byte có kích thước 8-bit. Khoảng giá trị [-128, 127], nó sẽ hữu ích khi bạn cần lưu một mảng có kích thước lớn, mà các giá trị trong mảng có khoảng giá trị nằm trong [-128, 127].

short: kiểu dữ liệu short có kích thước 16-bit. Khoảng giá trị [-32768, 32767], Như kiểu byte, nó cũng sẽ hữu ích khi bạn cần lưu mảng có kích thước lớn, mà các giá trị trong mảng nằm trong khoảng [-32768, 32767].

int: kiểu dữ kiệu int có kích thước 32-bit. Khoảng giá trị trong [-2³¹, 2³¹-1]. Từ java 8 trở về sau, bạn có thể sử dụng unsigned int để biểu diễn các số nguyên khoảng [0,2³²-1].

long: kiểu dữ kiệu long có kích thước 64-bit. Khoảng giá trị trong [-2⁶³, 2⁶³-1]. Từ java 8 trở về sau, bạn có thể sử dụng unsigned int để biểu diễn các số nguyên khoảng [0, 2⁶³-1].

float: float là kiểu dữ liệu single-precision 32-bit. Khoảng giá trị [-3.4028235 x 10 38 , 3.4028235 x 10 ³⁸]

double: double là kiểu dữ liệu double-precision 64-bit. Khoảng giá trị [-1.7976931348623157  x 10 308 ,1.7976931348623157  x 10 ³⁰⁸]

boolean: boolean là kiểu dữ liệu có kích thước 1-bit, có 2 giá trị: true hoặc false.

char: char kiểu dữ liệu single 16-bit Unicode character, có khoảng giá trị [\u0000, \uffff].

Ví dụ: Khai báo các biến với từng kiểu giá trị của xuất ra màn hình console.
public class Main {

public static void main(String[] args) {

byte byte_value = 10;

System.out.println("Gia tri cua byte: " + byte_value);

short short_value = 1000;

System.out.println("Gia tri cua short: " + short_value);

int int_value = 13;

System.out.println("Gia tri cua int: " + int_value);

long long_value = 2000;

System.out.println("Gia tri cua long: " + long_value);

float float_value = 12.5f;

System.out.println("Gia tri cua float:" + float_value);

double double_value = 12.4345;

System.out.println("Gia tri cua double: " + double_value);

boolean boolean_value = true;

System.out.println("Gia tri cua boolean: " + boolean_value);

char char_value = 'r';

System.out.println("Gia tri cua char: " + char_value);

}

}
Output:

Gia tri cua byte: 10
Gia tri cua short: 1000
Gia tri cua int: 13
Gia tri cua long: 2000
Gia tri cua float:12.5
Gia tri cua double: 12.4345
Gia tri cua boolean: true
Gia tri cua char: r

Giá trị mặc định

Đối các kiểu dữ liệu nguyên thuỷ chúng sẽ luôn có một giá trị khởi tạo cho trước trong trường hợp chúng ta khai báo mà không gán giá trị đầu cho chúng.

Bảng giá trị mặc định của các kiểu dữ liệu:
byte     0
short    0
int         0
long      0L
float      o.of
double  o.od
char      ‘\u0000’
boolean  false

Ví dụ: Khi khai báo một mảng với các dữ liệu trên, nếu chưa gán giá trị cho các phần tử của mảng mặc định các phần tử sẽ có giá trị mặc định của kiểu dữ liệu tương ứng.

<span style="font-size: 12pt;">public class Main {

public static void main(String[] args) {

int[] array_int = new int[10];

boolean[] array_boolean = new boolean[10];

// Print array Integer

for (int i = 0; i < 10; i++) {

System.out.print(array_int[i] + " ");

}

System.out.print("\n");

// Print array boolean

for (int i = 0; i < 10; i++) {

System.out.print(array_boolean[i] + " ");

}

}

}

</span>

Output:
0 0 0 0 0 0 0 0 0 0
false false false false false false false false false false

Kiểu dữ liệu Non-Primitive

Các kiểu dữ liệu Non-Primitive:

Class: là một bản vẽ thiết kế hoặc prototype để tạo ra các object gồm các thuộc tính, method etc. Một class bao gồm các thành phần chính sau:

Modifiers: Quy định phạm vi truy cập của class.

Name: Tên class.

Supper class: Class cha mà nó kế thừa.

Interface: Interface mà class implement, bắt buộc triển khai các abstract method được định nghĩa bên trong interface.

Body: Thân class bao gồm các biến, method etc.

Object: được tạo ra từ một class nó là một thực thể thực ánh xạ cho một bản thiết kế của của chúng. Ví dụ người việt nam thì có đứa cao, đứa lùn, da trắng, da đỏ etc mỗi người việt nam là một object và chúng được tạo ra từ class người việt nam =))). Các thành phần chính trong object:

State: Trạng thái của object ví dụ như lùn, cao, ốm, da vàng etc.

Behavior: Các hành động của object có thể làm được, ví dụ object person sẽ có behavior như đi, đứng, nằm, hát etc.

Indentify: Định danh riêng để phân biệt các object cùng loại khác.

String: String là một chuỗi ký tự char dùng để lưu đoạn văn bản trong java.

Array: Một nhóm các giá trị có cùng kiểu dữ liệu. Các lưu ý trong array

Tất cả các array trong java đều được cấp phát vùng nhớ cách tự động.

Thứ tự các phần tử trong array bắt đầu từ 0 đến size – 1.

Kích thước của array phải được chỉ định tại thời điểm khởi tạo array với giá trị số int, không được sử dụng long hoặc short etc.

Interface: Giống như class chúng là một bản thiết kế cho các đối tượng ở mức chức năng. Các object không đựợc tạo ra từ interface mà từ các class implement chúng. Các object này sẽ triển khai các method mà interface định nghĩa.

# data[].attributes.headline
Câu 4: Trong java có những loại toán tử nào? Cho ví dụ minh hoạ.

# data[].attributes.subject
Câu 4: Trong java có những loại toán tử nào? Cho ví dụ minh hoạ.

# data[].attributes.body
1.  Các loại toán tử trong java:

Toán tử số học: +, -, *, /, %, ++, --, +=, -=, *=, /=, %=.

Toán tử bit: ~, &, |, ^, >>, <<.

Toán tử quan hệ: ==, !=, >, <, >=, <=.

Toán tử logic: &&, ||, ^, !.

Toán tử điều kiện: <biểu thức 1>   ?   <biểu thức 2>   :   <biểu thức 3>;

Toán tử gán: (=) dùng để gán một giá trị vào một biến và có thể gán nhiều giá trị cho nhiều biến cùng một lúc.

2.  Ví dụ:

Toán tử số học:

Có biến số nguyên a = 10 và b = 20.
=> a + b sẽ là 30; a - b sẽ là -10.

Toán tử điều kiện:

public class Test {

public static void main(String[] args) {

int a = 20;

int b = 3;

String s = (a % b == 0) ? "a chia het cho b" : "a khong chia het cho b";

System.out.println(s);

}

}

Kết quả: a khong chia het cho b

Toán tử gán:

int var = 20;

int p,q,r,s;

p=q=r=s=var;

# data[].attributes.body
1. Chương.
2.Mọi người (cùng làm).
3.Hoàng nam.
4.Phương nam.
5.Hiếu.

# data[].attributes.headline
Câu 3: Có bao nhiêu cách ép kiểu trong java? cho ví dụ cụ thể.

# data[].attributes.subject
Câu 3: Có bao nhiêu cách ép kiểu trong java? cho ví dụ cụ thể.

# data[].attributes.body
- có 2 kiểu ép kiểu chính là:
+ Nới rộng (widening):  Là quá trình làm tròn số từ kiểu dữ liệu có kích thước nhỏ hơn sang kiểu có kích thước lớn hơn. Kiểu biến đổi này không làm mất thông tin.
+ Thu hẹp (narrowwing): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước lớn hơn sang kiểu có kích thước nhỏ hơn. Kiểu biến đổi này có thể làm mất thông tin

- Ví dụ minh họa:
+ Nới rộng:    int sotien = 100;
long tongsotien = sotien;
float sodu = tongsotien;
...
+ Thu hẹp:     float tongsotien = 1324.45;
int lamtron = (int) tongsotien;
String chu = (String) lamtron;
...