您的位置:首页 > 健康 > 养生 > JavaSE:2、基本数据类型

JavaSE:2、基本数据类型

2024/12/22 8:36:58 来源:https://blog.csdn.net/qq_74924951/article/details/142176134  浏览:    关键词:JavaSE:2、基本数据类型

1、整数类型

在Java中,整数类型包括以下几个:
  • byte 字节型 (8个bit,也就是1个字节)范围:-128~+127
  • short 短整形(16个bit,也就是2个字节)范围:-32768~+32767
  • int 整形(32个bit,也就是4个字节)最常用的类型:-2147483648 ~ +2147483647
  • long 长整形(64个bit,也就是8个字节)范围:-9223372036854775808 ~ +9223372036854775807
public class Main {public static void main(String[] args) {byte a=1;short b=10;int c=100;long d=1000;System.out.println(a+b+c+d);}}

隐式类型转换:

小的类型转大的类型会有隐式类型转换。
byte->short->int->long
而为变量赋值时也是会将数转为int类型
我们可以采用强制类型转换实现大转小
可以前面加这个类型名称也可以末尾加提示。
public class Main {public static void main(String[] args) {byte a=1;short b=10;int c=100;long d=1000;b=c;  c=d;//ERROR   大的不能隐式转为小的c=b;//True    小的可以隐式转为大的b=(short)c;//True   强制类型转换可以实现大转小a=(byte)d;  //Trued=9999999999999999;//ERROR  整数过大,超过int上限d=9999999999999999L;//True  常量转为long,没超上限System.out.println(a);  //输出为-24} }
但是强制类型转换没有考虑是否溢出,比如上述程序若要输出a则为-24。

因为long里存的值超过byte的范围会发生截断

特殊知识点:

(1)下划线分割  
(2)八进制,十六进制表示
 数字前有0为八进制,有0x为十六进制(x大小写均可)
public class Main {public static void main(String[] args) {int a=1_000_00_0000; //Trueint b=016;   //True 8进制int c=0x1a;  //True  16进制System.out.println(b);   //输出14,8+6System.out.println(c);  //输出26,16+10}}
(3)整数类型均为有符号整型
底层存储第一位均为符号位。
public class Main {public static void main(String[] args) {int a=2147483647;  a=a+1;byte b=127;       b=(byte)(b+1);   //TrueSystem.out.println(a);   //输出-2147483648System.out.println(b);  //输出-128}}

2、浮点类型

首先来看看Java中的小数类型包含哪些:
  • float 单精度浮点型 (32bit,4字节)
  • double 双精度浮点型(64bit,8字节)
赋值与初始化:
浮点常量默认为double,需要强制转换。
public class Main {public static void main(String[] args) {float a=3.0;   //ERROR ,常量默认为doubledouble b=18.6;System.out.println(a);   System.out.println(b); }}
public class Main {public static void main(String[] args) {float a=3.0F;   // Truedouble b=18.6;System.out.println(a);System.out.println(b);}}
double可以隐式转换为float
public class Main {public static void main(String[] args) {float a=3.0F;   // Truedouble b=a;     //TrueSystem.out.println(a);System.out.println(b);}}

3、字符类型

  • char 字符型(16个bit,也就是2字节,它不带符号)范围是0 ~ 65535
  • 采用Unicode字符集
  • 编码规则有GBK、UTF-8、UTF-16
赋值与初始化:
用字符赋值或用ACSCII码赋值均可 
public class Main {public static void main(String[] args) {char a='A';char b=67;System.out.println(a);System.out.println(b);}}
public class Main {public static void main(String[] args) {char a='我';int  b=a;System.out.println(a);  //输出我System.out.println(b);//输出25105}}

4、布尔类型

  • true - 真
  • false - 假
赋值与初始化:

public class Main {public static void main(String[] args) {boolean a=true;boolean b=false;System.out.println(a); System.out.println(b);}}

 5、类型转换总结

该图含义为下面可以隐式转上面,就是满足两条线的小到大都可以转

 short、char、byte可以转为int、long、float、double
short与char不能互相隐式转换,byte与char不能互相转,byte可以转short
但7种数据类型之间可以强转
boolean类型不能与其它7种类型相互转换(强转也不行)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com