news 2026/10/27 1:28:40

Java SE基础语法>>数据类型与变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java SE基础语法>>数据类型与变量

目录

1.字面常量

1.1字面常量的分类

2.数据类型

3.变量

3.1变量的概念

3.2语法格式

3.3整型变量

3.3.1整型变量

3.3.2长整型变量

3.3.3短整型变量

3.3.4字节型变量

3.4浮点型变量

3.4.1双精度浮点型

3.5字符型变量

3.6布尔型变量

3.7类型转换

3.7.1自动类型转换(隐式)

3.7.2强制类型转换(显示)

3.8类型提升

3.8.1 int与long之间:int会被提升为long

3.8.2 byte和byte的运算

3.9字符串类型

3.9.1int 转成string


1.字面常量

字面常量即程序运行期间,固定不变的的量为常量,这些值无法改变。如下图的

其中100,3.14,‘A’,true,false都是常量,将他们称为字面常量。

1.1字面常量的分类

1.字符串常量:由“ ”括起来的,比如“12345”,“hello”,“你好”。

2.整型常量:程序中直接写的数字(没有小数点的),比如100,-12。

3.浮点型常量:程序中直接写的小数,比如3.12,0.49。

4.字符常量:由单引号‘ ’括起来的单个字符,比如‘A’,'M'。

5.布尔常量:只有两种true和false。

6.空常量:null此处不过多介绍。

注意:字符串,整型,浮点型,以及布尔类型,在java中都称为数据类型。


2.数据类型

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

基本数据类型分为四类八种:

  • 四类:整型,浮点型,字符型,布尔型。
  • 八种基本数据类型

注意:

>不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节

>整型和浮点型都是带有符号的

>整型默认是int型,浮点型默认认为double

>字符串属于引用类型,该种类型是后序介绍

什么是字节?

3.变量

3.1变量的概念

在程序中,除了有始终不变的变量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数计算结果等,对于这些经常改变的内容,在java程序中,称为变量。而数据类型就是用来定义不同类型的变量。

3.2语法格式

定义变量的语法格式为:数据类型 + 变量名 = 初始值;

比如:下图:

3.3整型变量

3.3.1整型变量

注意事项:

1.int不论在何种系统下都是4个字节

2.推荐使用方式一定义,如果没有合适的初始值,可以设置为0

3.在给变量设置初始值时,值不能超过int的表示范围,否则会导致溢出

4.变量在使用之前必须要赋初始值,否则会编译错误(局部变量必须而成员变量会有默认的初始值)

5.int的包装类型为Integer

3.3.2长整型变量

注意事项:

1.长整型变量的初始值后加L或l,推荐加L,因为l像1

2.长整型不论在那个系统下都占8个字节

3.长整型的表示范围为:-2^63--2^63 - 1

4.long的包装类型为Long

3.3.3短整型变量

注意事项:

1.short在任何系统下都占2个字节

2.short的表示范围:-32768--32767

3.使用时注意不要超过范围(一般使用比较少)

4.short的包装类型为Short

3.3.4字节型变量

注意事项:

1.byte在任何系统下都占1个字节

2.byte的范围是:-128--127

3.字节的包装类型为Byte

请大家思考一下,byte,short,int,long都可以定义整型变量,为什么要给出4种不同类型?

四个类型不是为了冗余,而是为了让你根据数值范围和内存占用做出合适的选择,在大数据量或底层编程时显得尤为重要。

3.4浮点型变量

3.4.1双精度浮点型

神奇的代码一:

此处输出的结果为0,不是0.5.因为是整型,不会打印小数。

在java中,int除以int的值仍是int(会直接舍弃小数部分)。如果想要double类型计算。

神奇的代码二:

此处的值是不是1.21 而是

注意事项:

1.double在任何系统下都占8个字节

2.浮点型与整型在内存中的存储方式不同,不能单纯使用的形式来计算

3.double的包装类型Double

4.double类型的内存布局遵守IEEE 754标准(和C语言一样),尝试有限的内存空间表示可能无限用到浮点型都优先考虑double,不太推荐float。float的包装类型是Float

3.5字符型变量

注意事项:

1.Java中使用 单引号 + 单个字母 的形式表示字符字面值

2.计算机中的字符本质上是一个整型,在C语言中使用ASCII表示字符,而Java中使用Unicode表示字符。因此一个字符占用两个字节,表示的字符种类更多,包括中文。

3.char的包装类型为Character

3.6布尔型变量

布尔类型常用表示真假,在现实生活中也是经常出现,比如:某个同学中奖一个亿。卧槽真的假的

注意事项:

1.boolean类型的变量只有两种取值,true表示真,false表示假

2.Java的boolean类型和int不能相互转化,不存在1表示ture,0表示false这样的用法

3.Java虚拟机规范中,并没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码 指令,在Oracle的Java虚拟机实现中,Java编程语言中的布尔数组被编码为Java虚拟机字节数 组,每个布尔元素使⽤8位。

4.boolean的包装类型为Boolean。

3.7类型转换

Java 作为⼀个强类型编程语⾔,当不同类型之间的变量相互赋值的时候,会有教严格的校验.

在Java中,当参与运算数据类型不⼀致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)。

3.7.1自动类型转换(隐式)

⾃动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会⾃动进⾏处理。特点:数据范 围⼩的转为数据范围⼤的时会⾃动进⾏。

int类型的值自动转换为long类型

3.7.2强制类型转换(显示)

强制类型转换:当进⾏操作时,代码需要经过⼀定的格式处理,不能⾃动完成。特点:数据范围⼤的 到数据范围⼩的。

字节大的转换字节小的,必须强制转换

此处257超出byte的范围,100默认int自动转换byte

注意事项:

1.不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换换成范围较大的类型

2.如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但是可能精度丢失

3.将一个字面常量进行赋值的时候,java会自动针对数字范围进行检查

4.强制类型转换不一定成功,不相干的类型的不能互相转换

3.8类型提升

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

3.8.1 int与long之间:int会被提升为long

int + long >> long + long 赋值给int时会丢失数据,int是4个字节,long是8个字节

int + long >> long + logn 赋值给long

3.8.2 byte和byte的运算

此处会编译错误,a和b都是byte型,但计算时会将a和b会提升成int型,再赋给c 会出现错误

由于计算机的CPU通常是按照4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte和short这种低于4个字节的类型,会提升成int,再参与计算。

这样修改就可以了

【类型提升小结】

1.不同类型的数据混合运算,范围小的会提升成范围大的

2.对于short,byte这种比4个字节小的类型,会先提升成4个字节的int,再运算

3.9字符串类型

3.9.1int 转成string

3.9.2string 转成 int

于此这里就结束了,感谢大家的观看。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 1:28:33

OpenWorkBuddy拆解:Agent Harness如何让LLM输出可验收

1. 为什么"调通API"和"交付一份产物"之间隔着一条河过去大半年,我一直在折腾各种LLM落地项目,最深的感受是:让模型吐出一段话很容易,但让它稳定地产出一份"能直接交给上级、发给客户、归档入系统"的…

作者头像 李华
网站建设 2026/10/27 1:28:04

基于Springboot培训机构业务管理系统【附源码+文档】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:23:49

课件---程序设计基础-第5章if-上课案例

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:17:44

Java代码优化心得

性能优化不是玄学,也不是只有资深架构师才需要关心的事。日常写业务代码时,一个数据结构选错、一次循环里的重复计算、一段用异常控制流程的逻辑,都可能在高并发或大数据量下被放大成明显的性能瓶颈。本文聚焦 Java 性能优化中最容易落地、收…

作者头像 李华
网站建设 2026/10/27 1:16:53

[UVM笔记]UVM 保存mem

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华