java 的基本数据类型及转换
数据类型精度:
byte 8 位
short 16 位
int 32 位
long 64 位
float 32 位
double 64 位
char 16 位
boolean 占几位要看 jvm 的具体实现, 虽然 Java 虚拟机定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持。在
Java 虚拟机中没有任何供 boolean 值专用的字节码指令,在 Java 语言之中涉及到 boolean
类型值的运算,在编译之后都使用 Java 虚拟机中的 int 数据类型来代替。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println( "基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println( "包装类:java.lang.Byte" ); System.out.println( "最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println( "最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println( "基本类型:short 二进制位数:" + Short.SIZE); System.out.println( "包装类:java.lang.Short" ); System.out.println( "最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println( "最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println( "基本类型:int 二进制位数:" + Integer.SIZE); System.out.println( "包装类:java.lang.Integer" ); System.out.println( "最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println( "最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println( "基本类型:long 二进制位数:" + Long.SIZE); System.out.println( "包装类:java.lang.Long" ); System.out.println( "最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println( "最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println( "基本类型:float 二进制位数:" + Float.SIZE); System.out.println( "包装类:java.lang.Float" ); System.out.println( "最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println( "最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println( "基本类型:double 二进制位数:" + Double.SIZE); System.out.println( "包装类:java.lang.Double" ); System.out.println( "最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println( "最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println( "基本类型:char 二进制位数:" + Character.SIZE); System.out.println( "包装类:java.lang.Character" ); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println( "最小值:Character.MIN_VALUE=" + ( int ) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println( "最大值:Character.MAX_VALUE=" + ( int ) Character.MAX_VALUE); } } |
【运行结果】
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
1、boolean 型不能进行类型转换,布尔运算运算元和三元运算的第一个运算元的数据类型都必须是boolean型
2、低精度类型可以赋给高精度类型变量并自动转换为高精度
3、高精度类型赋给低精度类型需要使用强制类型转换
4、char 与 byte short 之间的类型转换需要通过强制类型转换,char 可以直接转 int long float double
5、char byte short int long float double 可以直接运算,自动发生类型转换, 转换顺序由低精度转向高精度
6、高精度转低精度的方式是截取二进制地位,直接扔掉高位,
比如 int 100927 转 short,100927 二进制有17位:11000101000111111 ,截取低位的16位,1000101000111111 的值是 -30145(最高位为1表示负数)
7、隐含的强制类型转换:整数的默认类型是 int
8、基本数据类型与字符串执行 + 操作时,基本数据类型被装箱并调用装箱后对象的 toString() 方法得到字符串,然后进行字符串拼接
9、基本数据类型的变量并不会自动拥有其装箱后的类型的方法,需要进行强制转换,例如, int 类型和 Integer 类型不是同一个类型,int 类型变量想调用 Integer 类型的方法需要把 int 转换成 Integer
1 2 3 4 5 | int i1 = 100927; short s1 = ( short )i1; char c1 = ( char )i1; System. out .println(s1); //-30145,二进制 1000101000111111 System. out .println(c1); //訿,二进制1000101000111111, unicode 35391 |
1 2 3 4 5 6 7 | int a = 123 ; String b = "abc" ; boolean c = false ; Boolean c2 = (Boolean)c; String d = a+b+c; System.out.println(d); //123abcfalse System.out.println(c2.toString()); //false |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库