Java数据类型和变量详解

 更新时间:2026年06月19日 08:38:10   作者:01_ice  
Java数据类型和变量详解,涵盖基本数据类型、引用数据类型、变量定义及类型转换,助你深入理解Java基础数据类型应用,感兴趣的朋友跟随小编一起看看吧

一,数据类型

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

基本数据类型有四类八种

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

八种:

数据类型关键字内存占用范围包装类
字节型byte1字节-128~127Byte
短整型short2字节-32768~32767Short
整形int4字节~Integer
长整形long8字节~Long
单精度浮点型float4字节有范围,一般不关注Float
双精度浮点型double8字节有范围,一般不关注Double
字符型char2字节0~65535Character
布尔类型boolean没有明确规定true和falseBoolean

注意:

  • 无论是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);

到此这篇关于Java数据类型和变量的文章就介绍到这了,更多相关Java数据类型和变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java通过value获取Map中key的三种实现过程

    Java通过value获取Map中key的三种实现过程

    本文介绍了三种通过Value值获取Map中的Key值的方法:循环法、Stream方法和ApacheCommonsCollections的BidiMap,每种方法都有其特点和适用场景,选择哪种方法应根据具体需求来决定
    2026-01-01
  • Java Web学习教程之Hibernate And MyBatis的理解

    Java Web学习教程之Hibernate And MyBatis的理解

    这篇文章主要给大家介绍了关于Java Web学习教程之Hibernate And MyBatis的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们来一起学习学习吧。
    2018-04-04
  • java中封装JDBC工具类的实例分析

    java中封装JDBC工具类的实例分析

    在本篇内容里小编给各位分享了一篇关于java中封装JDBC工具类的实例分析,对此有兴趣的朋友们可以学习下。
    2021-03-03
  • 使用Springboot实现word在线编辑保存

    使用Springboot实现word在线编辑保存

    PageOffice目前支持的Web编程语言及架构有:Java(JSP、SSH、MVC等),ASP.NET(C#、VB.NET、MVC、Razor等),PHP,ASP,本篇文章就带你使用Springboot整合PageOffice实现word在线编辑保存
    2021-08-08
  • 详解使用Spring Cloud Consul实现服务的注册和发现

    详解使用Spring Cloud Consul实现服务的注册和发现

    这篇文章主要介绍了详解使用Spring Cloud Consul实现服务的注册和发现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 教你用JAVA写文本编辑器(一)

    教你用JAVA写文本编辑器(一)

    对于学习java编程的小伙伴们,常常需要编写一个类似文本编辑器的东西,下面这篇文章主要给大家介绍了关于如何用JAVA写文本编辑器的相关资料,需要的朋友可以参考下
    2021-11-11
  • Spring Boot条件化 Bean 注册机制实战案例解析

    Spring Boot条件化 Bean 注册机制实战案例解析

    本文将系统性地剖析 Spring 条件化注册的核心原理、常用注解、自定义条件实现方式,并结合实战案例展示其在数据库切换、功能开关、多数据源、Starter 开发等场景中的高级应用,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • postman 如何实现传递 ArrayList 给后台

    postman 如何实现传递 ArrayList 给后台

    这篇文章主要介绍了postman 如何实现传递 ArrayList给后台,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java 房屋租赁系统的实现流程

    Java 房屋租赁系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现一个房屋租赁系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 启动SpringBoot报错Input length = 1问题及解决

    启动SpringBoot报错Input length = 1问题及解决

    这篇文章主要介绍了启动SpringBoot报错Input length = 1问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论