一.数据类型
在Java中,数据类型分为基本数据类型(内置类型)和引用数据类型。基本数据类型包括8种:
相较于C语言,Java新增了boolean类型,并用true和false来判断真假,而不是0与非0。引用数据类型则包括String,数组,接口,类等等。
注意:
1.不论是在16位还是32为系统中,int类型都占4个字节,long类型都占8个字节
2.整形和浮点型都是带有符号的,在Java中,不存在无符号的数据类型
3.整形默认为int型,浮点型默认为double
二.变量
在Java中,变量是用于存储数据的命名位置,它可以存储不同类型的值。
定义变量
int a=10;
System.out.println(a);//输出a的值10
或者也可在定义变量后再给变量赋值
int a;
a=10;
System.out.println(a);//同样输出a的值10
在定义a变量之后如果不给a赋值,则程序会报错。在Java中,不允许使用未初始化的局部变量(局部变量:定义在方法内部的变量)
包装类型及数据最大和最小范围的打印
包装类型简单来说就是原数据类型的一个plus版本,它是一种特殊的类,用于将基本数据类型包装为对象。Java提供了对应于基本数据类型的包装类,使得可以将基本数据类型当作对象来使用。
Byte:对应于byte类型的包装类。
Short:对应于short类型的包装类。
Integer:对应于int类型的包装类。
Long:对应于long类型的包装类。
Float:对应于float类型的包装类。
Double:对应于double类型的包装类。
Character:对应于char类型的包装类。
Boolean:对应于boolean类型的包装类。
对于数据最大和最小范围的打印,只需通过:
System.out.println(对应类型的包装类+MAX_VALUE)//输出最大范围
System.out.println(对应类型的包装类+MIN_VALUE)//输出最小范围
存储数值越界
当你给变量赋的值超过该变量的类型的范围的上限或者低于其范围的下限时,程序会报错。
byte a=200;//200超过byte类型的范围上限,编译报错
System.out.println(b);
Float与Double的注意点(Int与Long)
在Java类型中,当你给变量赋的值为小数时,会默认它是Double类型,所以在需要定义单精度浮点型变量时,要在赋的值后加上一个f,这样才能创建一个float类型的变量。
float a=12.5;//double类型数值赋值给float类型变量,报错(float字节<double字节,类型转换可能发生精度损失,类型转换下面有介绍)
正确写法:float a=12.5f;
long b=100L;//同样在创建Long类型的变量时,也需要在赋的值后加上一个L(不加也可以,long字节>int字节,int数值可以赋值给long变量,不会报错)
由于float表示的精度范围较小,其实在工程上用到浮点数都优先考虑double,不太推荐使用float。
Boolean类型变量的创建
作为Java新增的数据类型,简单介绍一下boolean类型变量的创建。
//在Java中boolean只有2个值 true 或者 false
boolean flag=true;
boolean flag1=false;
System.out.println(flag);
System.out.println(flag1);
三.类型转换
在Java中,类型转换是将一种数据类型转换为另一种数据类型的过程。Java 中的类型转换可以分为两种:自动类型转换和强制类型转换。
强制类型转换(可能导致精度丢失)
当进行操作时,需要一定的处理,不能自动完成。特点:数据范围大的到数据范围小的
int a=10;
long b=10L;
a=b;//编译失败(不能将long类型的变量赋值给int类型的变量,即范围大的类型不能赋值给范围小的)
正确写法:a=(int)b;//将b强制转化为int类型
自动类型转换
自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动处理。特点:数据范围小的转化为数据范围大的时会自动进行
int a=10;
long b=10L;
b=a;//编译器自动将a提升为long类型,然后赋值给b
byte c=100;//100没有超过byte类型的范围,编译器自动将100转化为byte类型
四.字符串类型(引用数据类型)
简单介绍:
Java使用String类定义字符串类型
String s1="abc";
String s2="def";
System.out.println(s1);
System.out.println(s2);
String s3=s1+s2;//字符串的拼接,将s1和s2拼接起来
System.out.println(s3);//输出abcdef
字符串与其他数据类型之间的相互转换
String str="123";
int val=Integer.parseInt(str);//转换语句,字符串转化为整形
System.out.println(val);//输出123
String str1="12.5";
double cur=Double.parseDouble(str1);//字符串转化为双精度浮点型
System.out.println(cur);//输出12.5
反向转换:
int a=123;
String str3=String.valueof(a);//整形转化为字符串
System.out.printf(str3);//输出123
其他数据类型同理,定义a时改变数据类型即可