1、数据类型:
数据类型范围:
byte:-2^7 ~ 2^7-1,即-128 ~ 127。1字节。Byte。末尾加B
short:-2^15 ~ 2^15-1,即-32768 ~ 32767。2字节。Short。末尾加S
有符号int:-2^31 ~ 2^31-1,即-2147483648 ~ 2147483647。4字节。Integer。
无符号int:0~2^32-1。
long:-2^63 ~ 2^63-1,即-9223372036854774808 ~ 9223372036854774807。8字节。Long。末尾加L。(也可以不加L)
Java整型常量默认为int类型,如果要声明long类型,后面加“L”:
long num = 1L;
java浮点型常量默认为double类型,如果要声明float类型常量,后面加“F”:
float num1 = 1.1; // 编译错误,因为1.1默认为double类型,8字节,float4字节。 float num = 0.1F;
2、char数据类型:在Java中,char本质是一个整数,默认输出数字时,是Unicode对应的字符。
如果是汉子以及英文字母是直接输出原值,如果是数字直接输出的话是Unicode对应字符。
public static void main(String[] args) { char c1 = '黄'; char c2 = 97; // 在Java中,char本质是一个整数,默认输出时,是Unicode对应的字符 // 如果要输出对应的数字,使用(int) System.out.println(c1); // 黄 System.out.println(c2); // a System.out.println((int)c1); // 40644 System.out.println((int)c2); // 97 }
// char类型是可以运算的,相当于一个整数,因为它有对应的Unicode码 System.out.println('a' + 10); // 97 + 10 = 107 char c3 = 'b' + 1; // 98 + 1 = 99 System.out.println((int)c3); // 99 System.out.println(c3); // 99对应的ASCII表=> c
3、数据类型转换:
自动转换规则:低精度向高精度可以自动转换。
public static void main(String[] args) { int num = 'a'; // char -> int double d = 80; // int -> double System.out.println(num); // 97 System.out.println(d); // 80.0 }
4、强制类型转换:低精度转高精度。
易造成精度损失。
int m = 10; short c = (short)m;
5、基本数据类型和String类型的互相转换:
public static void main(String[] args) { // 字符串转基本数据类型,使用基本数据类型对应的包装类。 String num = "10"; int num1 = Integer.parseInt(num); float num2 = Float.parseFloat(num); double num3 = Double.parseDouble(num); System.out.println(num1 + " " + num2 + " " + num3); // 基本数据类型转string,后面加 ""即可 int nums = 10; String str = nums + ""; System.out.println(str); }