【Java】——数据类型和变量

个人主页:User_芊芊君子
🎉欢迎大家点赞👍评论📝收藏⭐文章


文章目录:
- 1.Java中的注释
- 1.1.基本规则
- 1.2.注释规范
- 2.标识符
- 3.关键字
- 4.字面常量
- 5.数据类型
- 6.变量
- 6.1变量的概念
- 6.2语法
- 6.3整型变量
- 6.3.1整型变量
- 6.3.2长整型变量
- 6.3.3短整型变量
- 6.3.4字节型变量
- 6.4浮点型变量
- 6.4.1双精度浮点型
- 6.4.2单精度浮点型
- 6.5字符型变量
- 6.6布尔型变量
- 6.7类型转换
- 6.7.1⾃动类型转换(隐式)
- 6.7.2强制类型转换(显式)
- 6.8类型提升
- 6.8字符串类型
1.Java中的注释
和C语言一样,注释的作用是为了让代码更容易被理解,虽然不被编译运行,但却不可或缺。为了方便你我他,请重视注释
1.1.基本规则
- 单行注释://注释内容
- 多行注释:/*注释内容 */
- 文档注释:/** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc⼯具解
析,⽣成⼀套以⽹⻚⽂件形式体现的程序说明⽂档
注:多行注释不能嵌套使用
1.2.注释规范
- 内容准确: 注释内容要和代码⼀致, 匹配, 并在代码修改时及时更新
- 篇幅合理: 注释既不应该太精简, 也不应该⻓篇⼤论
- 使⽤中⽂: ⼀般中国公司都要求使⽤中⽂写注释, 外企另当别论
- 积极向上: 注释中不要包含负能量(例如 领导 SB 等)
2.标识符
标识符是程序中用户给类名,方法名,或者变量所取的名字。
- 标识符中可以包含:
字母,数字,下划线及$符号(合法但不合理)…- 注意:标识符不能以
数字开头,也不可能是关键字,且严格区分大小写
- 类名:每个单词的首字母大写(大驼峰)
- 方法名:首字母小写,后面每个单词的首字母大写(小驼峰)
- 变量名:与方法名规则相同
3.关键字
我们在写程序时可以发现,public、class以及static等颜⾊会发⽣变化,将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语⾔提前定义好的,有特殊含义的标识符,或者保留字

4.字面常量
public class Test {public static void main(String[] args) {System.out.println("Hello World");}
}
在这串代码中,“Hello World”就是字面常量。
常量即程序运行期间,固定不变的量. eg:⼀个礼拜七天,⼀年12个⽉等。
public class Test {public static void main(String[] args) {System.out.println("Hello World");System.out.println(100);System.out.println(3.14);System.out.println('A');System.out.println(true);System.out.println(false);}
}

其中,100,3.14,‘A’,true/false都是常量,将其称为字面常量
- 字符串常量:由 “” 括起来的,⽐如"12345"、“hello”、“你好”。
- 整型常量:程序中直接写的数字(注意没有⼩数点),⽐如:100、1000
- 浮点数常量:程序中直接写的⼩数,⽐如:3.14、0.49
- 字符常量:由 单引号 括起来的当个字符,⽐如:‘A’、‘1’
- 布尔常量:只有两种true和false
字符串、整型、浮点型、字符型以及布尔型,在Java中都称为数据类型。
5.数据类型
Java中数据类型分为两类:基本数据类型和引用数据类型。
基本数据类型有四类八种:
- 四类:整型,浮点型,字符型,及布尔型
- 八种:
注:
- 不论是在16位系统还是32位系统,int都占4个字节,long都占8个字节
- 整型和浮点型都是带有符号的
- 整型默认是int 型,浮点型默认是double
- 字符串属于引用类型
6.变量
6.1变量的概念
在Java中,经常改变的量,称为变量,数据类型就是用来定义不同种类的变量的
6.2语法
数据类型 变量名 = 初始值;
public class Test {public static void main(String[] args) {int a = 10;//变量a,也叫标识符double b =3.14;char c = 'A';boolean d = true;System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);a = 100;//和C语言引用,这里是将100赋值给aSystem.out.println(a);int a1 = 10, a2 = 20, a3= 30;//一行可以定义多个相同类型的变量System.out.println(a1);System.out.println(a2);System.out.println(3);}
}

6.3整型变量
6.3.1整型变量
public class Test {public static void main(String[] args) {//定义方法一:定义时给出初始值int a = 10;System.out.println(a);//定义方法二:赋值(使用前没有赋值的话会报错)int b;b = 20;System.out.println(b);//int型变量所能表示的范围:System.out.println(Integer.MIN_VALUE);System.out.println(Integer.MAX_VALUE);//赋值不能超过int范围}
}
int的包装类型为Integer
6.3.2长整型变量
public class Test {public static void main(String[] args) {int a = 10;long b = 10;//为了区分int和long类型,一般long类型变量的初始值后加上Llong c = 10L;}
}
注:
- ⻓整型变量的初始值后加L或者l,推荐加L
- ⻓整型不论在那个系统下都占8个字节
- ⻓整型的表⽰范围为:-2^63 ~ (2^63)-1
- long的包装类型为Long
6.3.3短整型变量
public class Test {public static void main(String[] args) {short a = 10;System.out.println(a);//范围:System.out.println(Short.MIN_VALUE);System.out.println(Short.MAX_VALUE);}
}
注意事项:
- short在任何系统下都占2个字节
- short的表⽰范围为:-32768 ~ 32767
- 使⽤时注意不要超过范围(⼀般使⽤⽐较少)
- short的包装类型为Short
6.3.4字节型变量
public class Test {public static void main(String[] args) {byte a = 10;System.out.println(a);// byte型变量所能表⽰的范围:System.out.println(Byte.MIN_VALUE);System.out.println(Byte.MAX_VALUE);}
}
注意事项:
- byte在任何系统下都占1个字节
- byte的范围是:-128 ~ 127
- 字节的包装类型为Byte
6.4浮点型变量
6.4.1双精度浮点型
public class Test {public static void main(String[] args) {double a = 3.14;System.out.println(a);int b = 1;int c = 2;System.out.println(b / c);//在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃⼩数部分)double m = 1.0;double n = 2.0;System.out.println(m / n);//输出0.5double x = 1.1;System.out.println(x*x);//输出1.2100000000000002}
}

注意事项:
- double在任何系统下都占8个字节
- 浮点数与整数在内存中的存储⽅式不同,不能单纯使⽤的形式来计算
- double的包装类型为Double
- double 类型的内存布局遵守 IEEE 754 标准(和C语⾔⼀样), 尝试使⽤有限的内存空间表⽰可能⽆限的⼩数, 势必会存在⼀定的精度误差,因此浮点数是个近似值,并不是精确值。
6.4.2单精度浮点型
public class Test {public static void main(String[] args) {float num = 1.0f;System.out.println(num);}
}
在Java中占4个字节, 不常使用
6.5字符型变量
public class Test {public static void main(String[] args) {char c1 = 'A';char c2 = '1';System.out.println(c1);System.out.println(c2);char c3 = '乾';System.out.println(c3);}
}

注意事项:
- Java 中使⽤ 单引号 + 单个字⺟ 的形式表⽰字符字⾯值.
- 计算机中的字符本质上是⼀个整数. 在 C 语⾔中使⽤ ASCII 表⽰字符, ⽽ Java 中使⽤ Unicode 表⽰字符. 因此⼀个字符占⽤两个字节, 表⽰的字符种类更多, 包括中⽂.
- char的包装类型为Character
6.6布尔型变量
布尔类型常⽤来表⽰真假
public class Test {public static void main(String[] args) {boolean a = true;//System.out.println(a);a = false;System.out.println(a);}
}
注意事项:
- boolean 类型的变量只有两种取值, true 表⽰真, false 表⽰假.
- Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表⽰ true, 0 表⽰ false 这样的⽤法.
6.7类型转换
Java 作为⼀个强类型编程语⾔, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验.
public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;a = b;//编译失败}
}
在Java中,当参与运算数据类型不⼀致时,就会进⾏类型转换。Java中类型转换主要分为两类:
⾃动类型转换(隐式)和强制类型转换(显式)。
6.7.1⾃动类型转换(隐式)
⾃动类型转换:代码不需要经过任何处理,在代码编译时,编译器会⾃动进⾏处理。
特点:数据范围⼩的转为数据范围⼤的时会⾃动进⾏。
public class Test {public static void main(String[] args) {System.out.println(1024);//默认intSystem.out.println(3.14);//默认doubleint a = 100;long b = 10L;b = a;//int 类型的值⾃动转换为了long类型float m =3.14F;double n = 5.12;n = m;//float 类型的值 ⾃动转换为了double 类型}
}
6.7.2强制类型转换(显式)
强制类型转换:当进⾏操作时,代码需要经过⼀定的格式处理,不能⾃动完成。特点:数据范围⼤的到数据范围⼩的。
```java
public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;//int--long,数据范围由小到大,隐式转换a = (int)b;//long--int, 数据范围由⼤到⼩,需要强转,否则编译失败float f = 3.14F;double d = 1.21;d = f;// float-->double,数据范围由⼩到⼤,隐式转换f = (float)d;// double-->float, 数据范围由⼤到⼩,需要强转,否则编译失败byte m = 100;// 100默认为int,没有超过byte范围,隐式转换byte n = (byte)200;// 200默认为int,超过byte范围,需要显⽰转换,否则报错}
}
注意事项:
- 不同数字类型的变量之间赋值, 表⽰范围更⼩的类型能隐式转换成范围较⼤的类型
- 如果需要把范围⼤的类型赋值给范围⼩的, 需要强制类型转换, 但是
可能精度丢失- 将⼀个字⾯值常量进⾏赋值的时候, Java 会⾃动针对数字范围进⾏检查
- 强制类型转换不⼀定能成功,不相⼲的类型不能互相转换
6.8类型提升
不同类型的数据之间相互运算时,数据类型⼩的会被提升到数据类型⼤的。
int被提升为long
public class Test {public static void main(String[] args) {int a = 10;long b = 20;int c = a + b;//编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据long d = a + b;// 编译成功:a + b==>int + long--->long + long 赋值给long}
}
byte与byte之间运算
public class Test {public static void main(String[] args) {byte a = 10;byte b = 20;//byte c = a + b;//编译错误byte d = (byte)(a + b);//正确书写System.out.println(d);}
}

结论:
byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte,但是计算 a + b会先将 a 和 b 都提升成 int, 再进⾏计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.
由于计算机的 CPU通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现⽅便,诸如 byte 和short 这种低于 4 个字节的类型, 会先提升成int, 再参与计算.
6.8字符串类型
public class Test {public static void main(String[] args) {String s1 = " hello";String s2 = " world";System.out.println(s1);System.out.println(s2);System.out.println(s1+s2);//将s1和s2拼接而不是进行计算}
}

- int转String
public class Test {public static void main(String[] args) {int num = 10;String str1 = num + "";//方法一String str2 = String.valueOf(num);//方法二}
}
- String转int
public class Test {public static void main(String[] args) {String str = "100";int num =Integer.parseInt(str);}
}

相关文章:
【Java】——数据类型和变量
个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录: 1.Java中的注释1.1.基本规则1.2.注释规范 2.标识符3.关键字4.字面常量5.数据类型6.变量6.1变量的概念6.2语法6.3整型变量6.3.1整型变量6.3.2长整…...
docker 安装常用镜像
我们在上篇文章中已经修改了daemon.json 安装镜像时如果search超时就直接pull 安装mysql docker pull mysql:5.7 启动命令 docker run --name mysql-docker -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot1234 -d mysql:5.7 ocker run:运行docker容器命令 --name my…...
SpringMVC 基本概念与代码示例
1. SpringMVC 简介 SpringMVC 是 Spring 框架中的一个 Web 层框架,基于 MVC(Model-View-Controller) 设计模式,提供了清晰的分层结构,适用于 Web 应用开发 SpringMVC 主要组件 DispatcherServlet(前端控…...
MKS HA-MFV:半导体制造中的高精度流量验证技术解析
引言 在半导体先进制程(如3nm节点)中,工艺气体流量的精准控制直接决定刻蚀、沉积等关键步骤的均匀性和良率。MKS Instruments推出的 HA-MFV(High Accuracy Mass Flow Verifier) 通过创新设计解决了传统流量验证技术的…...
版本号标识
Visual Studio 16 2019 是 Microsoft Visual Studio 2019 的版本号标识。具体来说: Visual Studio 是微软提供的一款集成开发环境(IDE),用于开发各种应用程序,如桌面软件、Web 应用、移动应用等,支持多种编…...
基于Python实现手写数字识别
KNN实验——手写数字识别 实验目的: 实验内容: 实现最基本的KNN算法,使用trainingDigits文件夹下的数据,对testDigits中的数据进行预测。(K赋值为1,使用欧氏距离,多数投票决定分类结果&#…...
shell的模拟实现 ─── linux第16课
目录 第一版只能维护命令行参数表创建子进程, 执行非内建命令 第一版的执行结果: 第二版能维护命令行参数表执行cd命令 ,判断了是否是自建命令(mysell自己执行自建命令,可以对环境变量发生改变),子进程执行其他命令. 第二版执行结果: 第三版 模拟真实shell从系统文件中获取环…...
游戏引擎学习第153天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 目前正在进行的是一个比较大的系统调整,原本预计今天会继续深入这个改动,但实际上在昨天的开发中,我们已经完成了大部分的代码编写,并且运行之后几乎一切都能正常工作&#x…...
理解C语言中的extern关键字
在C语言编程中,extern关键字是一个非常重要的概念,尤其在多文件编程和全局变量的使用中。本文将详细解释extern的作用、用法以及常见的应用场景。 1. extern关键字的作用 extern关键字用于声明一个变量或函数是在其他文件中定义的。它告诉编译器&#x…...
【MyBatis Plus 逻辑删除详解】
文章目录 MyBatis Plus 逻辑删除详解前言什么是逻辑删除?MyBatis Plus 中的逻辑删除1. 添加逻辑删除字段2. 实体类的配置3. 配置 MyBatis Plus4. 使用逻辑删除5. 查询逻辑删除的记录 MyBatis Plus 逻辑删除详解 前言 MyBatis Plus 是一个强大的持久化框架…...
latex问题汇总
latex问题汇总 环境问题1 环境 texlive2024 TeXstudio 4.8.6 (git 4.8.6) 问题1 编译过程有如下错 ! Misplaced alignment tab character &. l.173 International Conference on Infrared &Millimeter Waves, 2004: 667--... I cant figure out why you would wa…...
基于Redis实现限流
限流尽可能在满足需求的情况下越简单越好! 1、基于Redsi的increment方法实现固定窗口限流 Redis的increment方法保证并发线程安全窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大…...
力扣练习之确定两个字符串是否接近
目录 题目: 题解: 详细题解 题目: 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2࿱…...
大三下找C++开发实习的感受分享
目录 找实习的过程 阶段一:投简历 阶段二:准备面试 阶段三:面试中 阶段四:面试结束后 面试真题 总结 找实习的过程 阶段一:投简历 第一次找实习还是使用BOSS这个软件进行投简历,这个过程其实挺难说…...
基于hive的电信离线用户的行为分析系统
标题:基于hive的电信离线用户的行为分析系统 内容:1.摘要 随着电信行业的快速发展,用户行为数据呈现出海量、复杂的特点。为了深入了解用户行为模式,提升电信服务质量和精准营销能力,本研究旨在构建基于 Hive 的电信离线用户行为分析系统。通…...
Makefile——make工具编译STM32工程
一、Makefile相关指令 1.1、变量 符号含义替换追加:恒等于 1.2、隐含规则 符号含义%.o任意的.o文件*.o所有的.o文件 1.3、通配符 符号含义$^所有依赖文件$所有目标文件$<所有依赖文件的第一个文件 1.4、编译器指令常用参数功能说明 符号含义举例-E预处理,…...
Java EE 进阶:SpringBoot 配置⽂件
什么是配置文件 “配置文件”是一个用来保护程序或者系统设置信息的文件,它的作用是让程序在启动或者运行中,能够读取这些设置并按预期进行工作,而不需要手动的设置。 Spring Boot 配置文件 设置服务器端口、编码格式配置数据库连接控制日…...
【redis】五种数据类型和编码方式
文章目录 五种数据类型编码方式stringhashlistsetzset查询内部编码 五种数据类型 字符串:Java 中的 String哈希:Java 中的 HashMap列表:Java 中的 List集合:Java 中的 Set有序集合:除了存 member 之外,还有…...
基于Python的电商销售数据分析与可视化系统实
一、系统架构设计 1.1系统流程图 #mermaid-svg-Pdo9oZWrVHNuOoTT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-icon{fill:#552222;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-text{fill:#5…...
色板在数据可视化中的创新应用
色板在数据可视化中的创新应用:基于色彩感知理论的优化实践 引言 在数据可视化领域,色彩编码系统的设计已成为决定信息传递效能的核心要素。根据《Nature》期刊2024年发布的视觉认知研究,人类大脑对色彩的识别速度比形状快40%,色…...
EB-Cable许可管理中的数据安全与隐私保护
在数字化时代,数据安全与隐私保护已成为企业关注的重中之重。作为专业的电缆管理软件,EB-Cable许可管理不仅在功能丰富和操作便捷方面表现出色,更在数据安全与隐私保护方面为用户提供了坚实的保障。本文将详细介绍EB-Cable许可管理在数据安全…...
解决ubuntu(jetpack)系统下系统盘存储不够的
以下是可以安全清理的内容及操作步骤,按优先级和风险从低到高排序: 1. 清理日志文件(低风险) /var/log/syslog (7.1G) # 清空syslog文件(不删除文件本身) sudo truncate -s 0 /var/log/syslog# 或限制sys…...
【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)
效果一览 代码获取私信博主基于麻雀搜索算法(SSA)的无人机路径规划(Matlab) 一、算法背景与核心思想 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种受麻雀群体觅食行为启发的元启发式算法࿰…...
STM32_GPIO系统外设学习
按照STM32MCUWIKI、参考手册的外设介绍----->CubeF4的软件包中相关的Exmple代码----->CubeMX设置截图加深理解记忆 资料链接:嵌入式开发_硬软件的环境搭建 我的飞书文档-GPIO篇 如果觉得内容不错,欢迎给我的飞书文档点赞。同时如果有什么意见或…...
使用Java爬虫根据关键词获取衣联网商品列表:实战指南
在电商领域,通过关键词搜索商品并获取商品列表是常见的需求。衣联网作为知名的电商平台,提供了丰富的服装商品资源。本文将详细介绍如何使用Java编写爬虫程序,根据关键词获取衣联网商品列表,并确保爬虫行为符合平台规范。 一、环…...
【操作系统安全】任务1:操作系统部署
目录 一、VMware Workstation Pro 17 部署 二、VMware Workstation 联网方式 三、VMware 虚拟机安装流程 四、操作系统介绍 五、Kali 操作系统安装 六、Windows 系统安装 七、Windows 系统网络配置 八、Linux 网络配置 CSDN 原创主页:不羁https://blog.csd…...
下载安装启动 VMware 个人免费版本
一、进入官网并登录账号下载软件 进入官网 [ https://www.vmware.com ],点击Products,将页面划到最底下,点击 “SEE DESKTOP HYPERVISORS”按钮。 然后点击 Desktop hypevisor ,会出现如下界面,可以根据自己的操作系…...
C#+AForge 实现视频录制
C#AForge 实现视频录制 在C#中,使用AForge 库实现视频录制功能是一个比较直接的过程。AForge 是一个开源的.NET框架,提供了许多用于处理图像和视频的类库。 开发步骤 安装AForge库 首先,确保你的项目中已经安装了 AForge.Video和AFo…...
doris:外表统计信息
外表统计信息的收集方式和收集内容与内表基本一致,目前支持对 Hive,Iceberg 和 Hudi 等外部表的收集。 自 2.0.3 版本之后,Hive 外表支持了自动和采样收集。 注意事项 HMS 类型的 Iceberg 和 Hudi 外表,以及 JDBC 外表只支持手…...
SAP SD学习笔记31 - 销售BOM
上一篇讲 前受金处理(预付款处理)。 SAP SD学习笔记29 - 前受金处理(预收款处理)_fplt 付款申请与sd 数据表的关联关系-CSDN博客 本章继续讲SAP SD模块的其他知识:销售BOM。 销售BOM在现场还是会用到的。 目录 1,销售BOM概要 2,受注BOM的…...

