首页 > 编程开发 > Java    日期:2026-06-20 / 浏览

一,数据类型

在Java中数据类型分为两类:基本数据类型引用数据类型

基本数据类型有四类八种

四类:整形,浮点型,字符型,布尔类型

八种:

数据类型 关键字 内存占用 范围 包装类
字节型 byte 1字节 -128~127 Byte
短整型 short 2字节 -32768~32767 Short
整形 int 4字节 ~ Integer
长整形 long 8字节 ~ Long
单精度浮点型 float 4字节 有范围,一般不关注 Float
双精度浮点型 double 8字节 有范围,一般不关注 Double
字符型 char 2字节 0~65535 Character
布尔类型 boolean 没有明确规定 true和false Boolean

注意:

  • 无论是32位还是64位电脑,数据类型的内存大小都是规定的大小。
  • 整形和浮点型都是有符号的
  • 整形默认是int,浮点型默认是double
  • 字符串String属于引用类型

二,字面常量

常量即程序运行期间不变的量

字面常量的分类

  1. 字符常量:由单引号引起的,如:'a','1'
  2. 字符串常量:由双引号引起的,如:"hello","123","你好"
  3. 整形常量:程序中直接写的整形数字,如:123
  4. 浮点数常量:程序中直接写的小数,如:1.1
  5. 布尔常量:只有true和false
  6. 空常量:null

三,变量

对于经常变化的量称为变量:例如身高,体重,年龄

数据类型就是来定义不同的变量的

数据类型 变量名 = 初始值  //没有初始值会报错

3.1 字节型变量

byte a = 10;
System.out.println(Byte.MAX_VALUE);//输出最大值
System.out.println(Byte.MIN_VALUE);//最小值

3.2 短整型变量

short b = 20;
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);

3.3 整形变量

int c = 100;
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);

3.4 长整型变量

long d = 10L;//为了区分int和long,long一般加一个大写L
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);

3.5 单精度

float e = 1.1f;//默认是double类型,为了区分就加一个f,F也行
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);

由于表⽰的数据精度范围较⼩,⼀般在⼯程上用到浮点数都优先考虑double,不太推荐使⽤float

3.6 双精度

int a = 1;
int b = 2;
System.out.println(a/b);//输出0
double c = 1.0;
double d = 2.0;
System.out.println(c/d);//输出0.5

如果除法两边都是整数就执行整数除法,有一个小数就执行小数除法

小数因为在内存中存储形式比较特殊,尝试使⽤有限的内存空间表⽰可能⽆限的⼩数,势必会存在⼀定的精度误差,因此浮点数是个近似值,并不是精确值。

3.7 字符型

因为Java中使⽤Unicode表⽰字符char大小为两个字节,所以char可以存中文字符

char c1 = '我';
System.out.println(c1);

3.8 布尔类型

注意:布尔类型只有true和false两个值,java只有这两个值表示真假

3.9 类型转换

3.9.1 隐式类型转换(隐式)

代码不需要经过任何处理,在代码编译时,编译器会⾃动进⾏处理

特点:数据范围⼩的转为数据范围⼤的时会⾃动进⾏。

int a = 100;
long b = 10L;
b = a;//可以把小的赋给大的
a = b;//报错

3.9.2 强制性类型转换(显式)

int a = 100;
long b = 10L;
a = (int)b;//强制类型转换会丢失数据
byte b1 = 100;//100默认为int,没有超过byte的范围,隐式转换
byte b2 = (byte)257;//257默认为int,超过了范围,需要强转

程序员需要对强制类型转换负责

3.9.3 类型提升

不同类型的数据之间相互运算时,数据类型⼩的会被提升到数据类型⼤的。

int a = 10;
long b = 20L;
a = a+b;//报错,int提升为long,最后a+b的类型是long,不能赋给int
a += b;
System.out.println(a);//输出50

复合赋值会发生隐式类型转换

byte和byte的计算

byte a = 10;
byte b = 20;
byte c = a + b; //编译出错
System.out.println(c);

结论:byte和byte都是相同类型,但是出现编译报错.原因是,虽然a和b都是byte,但是计算a+b会先将a和b都提升成int,再进⾏计算,得到的结果也是int,这是赋给c,就会出现上述错误.(涉及到内存对齐)

正确写法

byte a = 10;
byte b = 20;
byte c = (byte)(a + b); 
System.out.println(c);

小结:

  1. 不同类型的混合运算,范围小的会转换为范围大的计算
  2. 小于4字节的如:byte,short会转换为int计算

字符串类型

字符拼接

String s1 = "hello";
String s2 = "world";
System.out.println(s1+s2);//helloworld
//字符串可以拼接在一起

int转String

  1. 数字+空字符串
  2. String.valueOf方法
int a = 10;
String s1 = a + "";
String s2 = String.valueOf(a);

String转int

Integer.parseInt(str)方法

String s3 = "10";
int num = Integer.parseInt(s3);

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章