Ép Kiểu Trong Java (Type Casting) - VietMX's Blog
Có thể bạn quan tâm
Table of Contents
- Ép kiểu là gì?
- Nới rộng (widening)
- Thu hẹp (narrowwing)
- Bảng mô tả ép kiểu trong Java
Ép kiểu là gì?
Ép kiểu là việc gán giá trị của một biến có kiểu dữ liệu này sang biến khác có kiểu dữ liệu khác.
Ví dụ:
float soLe = 19.7f; int soNguyen = (int)soLe + 1;Trong ví dụ trên, giá trị soLe được đổi thành giá trị nguyên 19. Sau đó, nó được cộng với 1 và kết quả là giá trị 20 được lưu vào soNguyen .
Trong Java, có hai loại ép kiểu dữ liệu:
Nới rộng (widening)
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. Ví dụ chuyển từ int sang float. Chuyển kiểu loại này có thế được thực hiện ngầm định bởi trình biên dịch.
public class TestWidening { public static void main(String[] args) { int i = 100; long l = i; // không yêu cầu chỉ định ép kiểu float f = l; // không yêu cầu chỉ định ép kiểu System.out.println("Giá trị Int: " + i); // Giá trị Int: 100 System.out.println("Giá trị Long: " + l); // Giá trị Long: 100 System.out.println("Giá trị Float: " + f); // Giá trị Float: 100.0 } }byte -> short -> int -> long -> float -> double
Thu hẹp (narrowwing)
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 như ví dụ ở trên. Chuyển kiểu loại này không thể thực hiện ngầm định bởi trình biên dịch, người dùng phải thực hiện chuyển kiểu tường minh.
public class TestNarrowwing { public static void main(String[] args) { double d = 100.04; long l = (long) d; // yêu cầu chỉ định kiểu dữ liệu (long) int i = (int) l; // yêu cầu chỉ định kiểu dữ liệu (int) System.out.println("Giá trị Double: " + d); System.out.println("Giá trị Long: " + l); System.out.println("Giá trị Int: " + i); } }double -> float -> long -> int -> short -> byte
Bảng mô tả ép kiểu trong Java
| Ép kiểu | Chuyển sang kiểu | |||||||
| Từ kiểu | boolean | byte | short | char | int | long | float | double |
| boolean | – | No | No | No | No | No | No | No |
| byte | No | – | Yes | Cast | Yes | Yes | Yes | Yes |
| short | No | Cast | – | Cast | Yes | Yes | Yes | Yes |
| char | No | Cast | Cast | – | Yes | Yes | Yes | Yes |
| int | No | Cast | Cast | Cast | – | Yes | Yes | Yes |
| long | No | Cast | Cast | Cast | Cast | – | Yes | Yes |
| float | No | Cast | Cast | Cast | Cast | Cast | – | Yes |
| double | No | Cast | Cast | Cast | Cast | Cast | Cast | – |
Trong đó
- -: chính nó
- No: không ép kiểu được
- Yes: thực hiện ép kiểu nới rộng (widening)
- Cast: thực hiện ép kiểu thu hẹp (narrowwing)
Related posts:
Java Program to Implement Dijkstra’s Algorithm using Priority QueueJava Program to Implement Sieve Of AtkinJava Program to Find the Longest Path in a DAGSpring Boot - IntroductionFile Upload with Spring MVCConfigure a RestTemplate with RestTemplateBuilderHttpClient 4 – Follow Redirects for POSTJava Program to Solve a Matching Problem for a Given Specific CaseOAuth2 for a Spring REST API – Handle the Refresh Token in AngularJSRunnable vs. Callable in JavaJava Program to Implement Caesar CypherGiới thiệu Java 8Java Program to Implement Gaussian Elimination AlgorithmJava 8 StringJoinerJava Program to Test Using DFS Whether a Directed Graph is Weakly Connected or NotSpring 5 WebClientImplementing a Runnable vs Extending a ThreadJava Program to Find Maximum Element in an Array using Binary SearchSpring Data Reactive Repositories with MongoDBSo sánh HashMap và HashSet trong JavaLoại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?Guide to java.util.concurrent.BlockingQueueDynamic Proxies in JavaJackson JSON ViewsJava Program to Implement Branch and Bound Method to Perform a Combinatorial SearchCreating Docker Images with Spring BootSpring Security 5 – OAuth2 LoginJava Program to Implement Flood Fill AlgorithmJava Program to Compute Discrete Fourier Transform Using Naive ApproachJava Program to Perform Partial Key Search in a K-D TreeImmutable Map Implementations in JavaJava Program to find the peak element of an array using Binary Search approachTừ khóa » ép Kiểu Float Sang Int Java
-
Ép Kiểu Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Chuyển Kiểu, ép Kiểu Trong Java
-
Ép Kiểu Dữ Liệu Trong Java
-
Tự Học Java | Ép Kiểu(Casting) Trong Java »
-
Ép Kiểu Trong Java - Giải Mã Thông Tin Về Java Type Conversion
-
Ép Kiểu Trong Java
-
Ép Kiểu Trong Java - Deft Blog
-
Chuyển đổi Kiểu Dữ Liệu Trong Java - KungFu Tech
-
Ép Kiểu Trong Java
-
Ép Kiểu Int Sang Float Và Ngược Lại Trong C/C++ - Lập Trình Không Khó
-
Ép Kiểu Dữ Liệu Trong Java - Lập Trình Từ Đầu
-
Ép Kiểu Trong Java - TEK4
-
Java 10. Ép Kiểu Dữ Liệu Trong Java - Giữ Cho Mọi Thứ đơn Giản!
-
Bài 6: Ép Kiểu Trong Java - LearningFor