一、基本介绍
- 强类型语言 :JAVA是强类型语言,即要求变量的使用要严格符合要求,所有变量都必须先定义后使用,如:String a=10 会报错 ,String a="10" 才是正确写法
- 弱类型语言 :不太要求变量写法
- JAVA的数据类型分为:基本类型(primitive type),引用类型(reference type)
例1:
public class HelloWorld {
public static void main(String[] args) {
//这是一次呐喊
/*这是一个测试
* 也是一个开始*/
System.out.println("Hello world!");
//字符串
String v1="shen";
System.out.println(v1);
//整数
byte v2 = 10;
System.out.println(v2);
//短整数
short v3 = -123;
System.out.println(v3);
//整数
int v4 = 234554;
System.out.println(v4);
//长整数
//long 类型后面的L理论上不分大小写,不过小写的l很容易被看成是数据字1,所以一般建议大写
long v5 = 193873343L;
System.out.println(v5);
// 浮点数
float v6 = 345.23F;
double v7 = 549383.4838;
System.out.println(v6);
System.out.println(v7);
/*字符拓展:char:char 类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(十进制等效值为 0);
最大值是 \uffff(即为 65535);
char 数据类型可以储存任何字符*/
char a3 = 'a';
char a4 = '国';
// 在变量前加类型关键字,如(int)可以强制转换数据类型,一般用于高数据类型向低数据类型转换
System.out.println((int)a3); //强制转换
System.out.println((int)a4); //强制转换
//
char b3='\u0a12'; //UNICODE表示方法
System.out.println(b3); //输出字符
}
}
二、常用的转义字符
"\b"(退格)
"\f" (换页)
"\n"(换行)
"\r"(回车)
"\t"(制表符)
"\'"(单引号)
"\""(双引号)
"\\"(斜杠)
三、浮点数拓展
public class DataType1 {
public static void main(String[] args) {
byte a1 = 127;
/*当我使用 byte a2 = a1+1 或 byte a2=127+1 时,会提示报错,可能会
* 造成数据丢失,没有显示 -128,不知道是不是JAVA版本或是IDEA的问题,所以
* 只能改为int*/
int a2 = 127+1;
System.out.println(a1);
System.out.println(a2);
/*float 是有精度的,但不太建议去做运算,因为会有精确度的问题出现,四舍五入,也不要去
表示精确的值,如货币*,真要用可以使用 BigDecimal /
float b1 = 1.1F;
float b2 = 11/10;
System.out.println(b1);
System.out.println(b2);
System.out.println(b1==b2);
}
}
/*上面b1,b2的输出值分别为
1.1
1.0
false
*/
四、整数拓展
//进制数的表示
int a1= 0b10110110; //二进制在前面在个 0b
int a2= 0145; // 八进制在前面加个0
int a3= 0x145; // 十六进制在前面加 0x
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
五、类型转换注意点
- 不能转换boolean值
- 不能把数据转换成不相干的类型
- 把高容量类型数据转换为低容量类型时,要强制转换
- 转换时可能存在内存溢出,或精度问题
public class DataType1 {
public static void main(String[] args) {
int a=128;
byte a1 = (byte)a; //强制类型转换
System.out.println(a1); //输出-128,内存溢出
//可能丢失精度
System.out.println((int)45.86F); //只输出45
char a9 = 'c';
int a10 = a9+1;
System.out.println(a10); //输出100
System.out.println((char)a10); //输出d
//操作比较大的数的时候,注意溢出
//数字之间可以用下划线分割
int c1 = 10_000_0000;
int c2 = 40;
int c3 = c1*c2;
System.out.println(c1); //输出100000000
System.out.println(c3); //输出会溢出-294967296
long c4 = c1*(long)c2;
System.out.println(c4); //输出4000000000
}
}