基本类型的使用、包装类查看精度范围、包装类、包装类的转换(隐式、显式、parse)
byte
byte a=10;
sout(“byte的精度范围是”+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
默认整型都是int型,所以long型的数据赋值时要加l
int
int a=10;
sout(“int的精度范围是”+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);
short
short a=10000;
sout(“short的精度范围是”+Short.MIN_VALUE+"~"+Short.MAX_VALUE);
long
long a=1000000l;
sout(“long的精度范围是”+Long.MIN_VALUE+"~"+Long.MAX_VALUE);
浮点型的数据默认都是double型,单精度浮点型数值时要加f
float
float a=10.4f
double
double a=10.4f
单字符类型
char ch='中'(用单引号引起来)
char允许写入数值,将通过ASCII表换成相应的单字符
ch=65;写数值时不用单引号,写上单引号表示的是该数值ASCII对应的字母或者符号
布尔类型
boolean flag=true;
包装类
每个基本类型都有一个对应的包装类,两者之间可相互转换,基本类型只能存储数值,包装类用于扩展其功能
基本类型的值与包装类的值可以相互赋值
Integer num1;
int num2=10;
num1=num2;
num2=num1;
int 例子
装箱:将基本类型转换成包装类
num1=new Integer(num2);
拆箱:将包装类转换成基本类型
int num3;
num3=num1.intValue();
double例子
double a=11.0;
Double b=new Double(a);
a=b.doubleValue();
类型转换(隐式转换、显示转换)
显示转换(强制类型转换、包装类的parse转换)
1.隐式转换:同一类型的数据,将精度小的值赋给精度高的数据时,JVM会对类型进行自动转换
int a=100;
double b=a;
(包装类赋给基本类型高精度也可以)
Integer c=100;
b=c;
隐式转换的轨迹
2.默认情况下,不允许将高精度赋给低精度,会出现数据精度丢失,可使用强制类型转换,但是不能解决精度丢失问题
2.1正常强制转换
double c=200.5;
int a=(int )c;(此时a为200)
2.2 int a; double c ; 要使a=(short)c;则进行了两次转换
一次是double到short的强制转换
一次是short到int的隐式转换
int a ; double c ; 要使a=(int)((float)c)进行了两次转化
一次是double c 转换成 float c的隐式转换
一次是将float c转换成int 的强绘制墙柱转换
Parse转换
将String类型通过包装类转换成对应的基本类型
String s1="400";
int a=s1;(此处会报错因为类型不同不能直接赋值)
int a=(int) s1(此处会报错,s1是字符串,不能强制转换成int)
此时只能使用parse转换:
将String转换成int型:int a=Integer.parseInt(s1)
将String转换成double型:double b=Double.parseDouble(s1)
但是不能转换成Boolean型,因为Boolean只有true和false两个值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!