一起学Java:数据类型和变量

本文详细介绍了Java中的八大基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean),并重点讲解了整型和浮点型变量的使用。此外,还讨论了变量的作用域、命名规则以及常量的声明。对于数值型变量,特别强调了溢出问题和精度误差,并给出了相应的处理建议。" 88820851,7291488,FFmpeg在macOS上的xcode调试环境配置指南,"['FFmpeg', 'mac开发', '调试工具', '视频处理', '音频处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Java中有8大基本数据类型,可分为3类:数值型、字符型、布尔型,而数值型又可以分为整型和浮点型。由于Java和C++都属于强类型的语言,定义一个变量时必须指定该变量的类型,而且在之后的赋值过程中只能赋相应类型的值。

目录

1.基本数据类型

2.变量和类型

2.1整型变量

2.1.1字节变量

2.1.2短整型变量(基本不用)

2.1.3整型变量(重点)

2.1.4长整型变量

2.2浮点型变量

2.2.1单精度浮点型变量

2.2.2双精度浮点型变量(重点)

2.3字符型变量

2.4布尔型变量

2.5字符串变量

2.6变量的作用域

 2.7变量的命名规则

补充:常量

3.小结


1.基本数据类型

8大基本类型:byte、short、int、long、float、double、char、boolean(如图)

2.变量和类型

变量:指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据

类型:是对变量的种类进行了划分, 不同的类型的变量具有不同的特性

2.1整型变量

2.1.1字节变量

语法格式:

byte 变量名 = 初始值 ;

代码示例:

byte num =10;
System.out.println(num);

注意:

1.字节类型表示的也是整数,只占一个字节, 表示范围较小[-128,127]

2.byte一般用在文件和网络传输中

3.变量名是变量的标识, 后续都是通过这个名字来使用变量

4.Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值

5.初始化操作是可选的,但是建议创建变量的时候都显式初始化

6. 最后不要忘记分号,否则会编译失败

7. // 表示注释,注释作为代码的解释说明部分,不参与编译运行

8.在java中变量在定义时可以不赋值,但是一般推荐定义时赋予初始化值。在方法中定义的变量(局部变量)必须赋值后才能使用

补充:

字节是计算机中表示空间大小的基本单位,计算机使用二进制表示数据,认为 8 个二进制位(bit) 为一个字节(Byte)。我们平时的计算机为 8GB 内存,意思是 8G 个字节。其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB,所以 8GB 相当于 80 多亿个字节。

2.1.2短整型变量(基本不用)

语法格式:

short 变量名 = 初始值;

代码示例:

short num =10;
System.out.println(num);

2.1.3整型变量(重点)

语法格式:

int 变量名 = 初始值;

代码示例:

int num =10;
System.out.println(num);

注意:

1.在 Java 中,一个 int 变量占 4 个字节,与操作系统和JVM版本都无关

2.4 个字节表示的数据范围是 -2^31~2^31-1 , 也就大概是 -21亿 到 21亿

如果运算的结果超出了 int 的最大范围,就会出现溢出的情况。

先使用以下代码查看一下 Java 中的整型数据范围:

System.out.println(Integer.MAX_VALUE);//int的最大值
System.out.println(Integer.MIN_VALUE);//int的最小值

结果如图:

 

如果运算的结果超出了 int 的最大范围 , 就会出现溢出的情况:
int a = Integer.MAX_VALUE;
//a已经超出了int的最大值范围
a = a + 1;
System.out.println(a);

结果如图:(会发现输出了最小值)

21亿这样的数字对于当前的大数据时代来说,是很容易超出的针对这种情况,我们就需要使用更大范围的数据类型来表示了,Java 中提供了 long 类型

2.1.4长整型变量

语法格式:

long  变量名 = 初始值 ;

代码示例:

long a = 10L;//定义一个长整型变量, 初始值写作10L也可以是小写的l, 不是数字1
System.out.println(a);

补充:

1.字面量,就是在程序中直接写出来的值,整型字面量默认为int型,浮点数字面量默认为double型。

2.Java long 类型占 8 个字节,表示的数据范围 -2^63 ~ 2^63-1

2.2浮点型变量

2.2.1单精度浮点型变量

语法格式:

float 变量名 = 初始值 ;

代码示例:

float a = 1.0f;    // 也可以写作 1.0F,因为浮点型默认为double型
System.out.println(a);
float 类型在 Java 中占四个字节, 由于表示的数据精度范围较小, 一般在工程上用到浮点数都 优先考虑 double, 不太推荐使用 float。

2.2.2双精度浮点型变量(重点)

语法格式:

double 变量名 = 初始值 ;

代码示例:

double a = 1.0;
System.out.println(a)

特殊点

代码1:

int a = 1;
int b = 2;
System.out.println(a / b);

//执行结果
0

代码2:

double a = 1.0;
double b = 2.0;
System.out.println(a / b);

//执行结果
0.5

解释:在Java中,int/int=int,会直接舍弃小数部分,如代码1所示;如果想得到 0.5,需要使用 double 类型计算,如代码2 所示

代码3:

 double a = 1.1;
 double b = 1.1;
 System.out.println(a * b);

//执行结果
1.2100000000000002

Q:为什么结果不是精确值1.21呢?

A:浮点数在计算机的内部实际上是通过整数模拟的, 虽然double也是 8 个字节,但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范围。double 类型的内存布局遵守 IEEE 754 标准(C语言一样),尝试使用有限的内存空间表示可能无限的小数, 势 必会存在一定的精度误差。

解决办法:

1.仍然使用double,但我们一般只看小数点后6 位左右为有效数字,剩下的小数位忽略不计

2.使用BigDecimal类来代替double使用

2.3字符型变量

语法格式:

char 变量名 = 初始值 ;

代码示例:

char ch = 'A';

注意:

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

2.计算机中的字符本质上是一个整数, C 语言中使用 ASCII 表示字符, Java 中使用 Unicode 表示字符. 因此1个字符占用2个字节即16bit,表示的字符种类更多,包括中文

3.用 '' 括起来的值都是字符字面量,默认char型

2.4布尔型变量

语法格式:

boolean 变量名 = 初始值 ;

代码示例:

 boolean a = true;
 System.out.println(a);

注意:

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

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

3.boolean 类型有些 JVM 的实现是占 1 个字节,有些是占 1 个比特位,这个没有明确规定

2.5字符串变量

语法格式:

String 变量名 = " 初始值";

代码示例:

String name = "张三";
System.out.println(name);

注意:

1.Java 使用 双引号" " + 若干字符 的方式表示字符串字面值," "默认String型

2.String 不是基本类型,而是引用数据类型

3.字符串中的一些特定的不太方便直接表示的字符需要进行转义

常见的转义字符有:

转义字符解释
\n换行
\t水平制表符
\'单引号
\"双引号
\\反斜杠

字符串的 + 操作,表示字符串的拼接,如代码所示:

String str = "result = ";
int a = 10;
int b = 20;
String result = str + a + b;
System.out.println(result);

//执行结果为
result = 1020

说明:在Java中,任意数据类型只要和字符串进行 + ,都会把其他数据类型转变为字符串然后进行字符串的拼接操作。因此我们可以很方便的使用 System.out.println 同时打印多个字符串或数字,代码如下:

 int a = 10;
 int b = 20;
 System.out.println("a=" + a + ", b=" + b);

//执行结果为
a=10, b=20

2.6变量的作用域

 就是该变量能生效的范围,一般是变量定义所在的代码块{},一旦变量出了{}后变量就会被销毁。

代码示例:

 2.7变量的命名规则

硬性指标:

1. 一个变量名只能包含数字, 字母, 下划线

2. 数字不能开头

3. 变量名是大小写敏感的, num Num 是两个不同的变量
4.不能使用Java中的关键字作为变量命名
注: 虽然语法上也允许使用中文/美元符($)命名变量, 但是强烈不推荐这样做
软性指标:
1. 变量命名要具有描述性,见名知意

2. 变量名不宜使用拼音(但是不绝对)

3. 变量名的词性推荐使用名词

4. 变量命名推荐使用“小驼峰命名法”,即 当一个变量名只有一个单词时全小写,当由多个单词构成时,除了第一个单词之外,其他单词首字母大写
  
总结:变量命名使用小驼峰且有意义的英文单词组成

举例:

double $a = 10.1; //在语法上是对的,但不推荐

int new = 10; //声明错误,因为使用了关键字new

补充:常量

常量指的是运行时类型不能发生改变,主要有以下两种体现形式:
1.字面值常量
10  // int 字面值常量 ( 十进制 )
010  // int 字面值常量 ( 八进制 ) 由数字 0 开头, 010 也就是十进制的 8
0x10  // int 字面值常量 ( 十六进制 ) 由数字 0x 开头, 0x10 也就是十进制的 16
10L   // long 字面值常量, 也可以写作 10l (或大 写的 L)
1.0  // double 字面值常量, 也可以写作 1.0d 或者 1.0D
1.5e2  // double 字面值常量, 科学计数法表示, 相当于 1.5 * 10^2
1.0f  // float 字面值常量, 也可以写作 1.0F
true  // boolen 字面值常量, 同样的还有 false
'a'  // char 字面值常量, 单引号中只能有一个字符
"abc"  // String 字面值常量, 双引号中可以有多个字符 .

2.用final关键字修饰的常量

final int a = 10;
a = 20;//编译错误,无法为最终变量a分配值

3.小结

基本类型关键字包装类内存占用范围
字节型byteByte1字节-128~127
短整型shortShort2字节-32768~32767
整型intInteger4字节-2^31~2^31-1
长整型longLong8字节-2^63~2^63-1
单精度浮点数floatFloat4字节有范围
双精度浮点数doubleDouble8字节有范围
字符型charCharacter2字节0~65535
布尔型booleanBoolean无明确规定true/false

今天的内容就到这里啦~

初学Java,有不对的地方希望大家多多指教,一起进步成长~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值