【Java笔记4】变量,常量和数据类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Java笔记4】变量,常量和数据类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5942字,纯文字阅读大概需要9分钟。
内容图文
目录
一. 变量和常量
- 变量是内存中的一个存储区域,其作用是在内存中存储一个值。
- 该区域的数据可以在同一类型范围内不断变化。
- 变量是程序中最基本的存储单元。包含变量类型,变量名和存储的值。
需要明确的是:文件是在硬盘中作为数据的载体,变量是内存中作为数据的载体
变量的分类
1. 变量和常量区别和用途
变量和常量都是针对于内存中数据存储的载体
变量 | 常量 |
---|---|
同一个时刻只能保存一个值 可以被多次赋值 变量最终保存的值是最后一次的赋值结果 | 同一时刻只能保存一个值 只能被有效赋值一次,一旦赋值将无法再次改变其值 |
2. 声明
变量和常量在使用之前都需要进行有效的声明,必须在声明之后才能使用。
语法 | 格式 | 示例 |
---|---|---|
声明一个变量 | 数据类型 变量名 | int a; |
声明一个常量 | final 数据类型 变量名 | final int a; |
声明多个变量 | 数据类型 变量名1,变量名2, … | int a,b,c; |
声明多个常量 | final 数据类型 变量名1,变量名2, … | final int a,b,c; |
3. 赋值
赋值是指为之前声明的变量给一个确定的值。
语法 | 格式 | 示例 |
---|---|---|
为变量或常量赋值 | 变量名 = 值 | a = 0 |
初始化
所谓初始化,只是一个概念,通常将一个新的变量的第一次赋值的过程称之为初始化。
4. 声明同时赋值
如果在声明的时候已经确切的清楚这个变量需要存储什么样的值,那么可以直接在声明的时候进行赋值。
语法 | 格式 | 示例 |
---|---|---|
声明一个变量并赋值 | 数据类型 变量名 = 值 | int a = 0; |
声明一个常量并赋值 | final 数据类型 变量名 = 值 | final int a = 0; |
声明多个变量并赋值 | 数据类型 变量名1 = 值1,变量名2 = 值2, … | int a = 0,b = 0,c = 0; |
声明多个常量并赋值 | final 数据类型 变量名1 = 值1,变量名2 = 值2, … | final int a = 0,b = 1,c = 2; |
5. 作用范围
- 作用范围又叫“作用域”,所指这个变量或者常量的可有效使用的范围。
- 同一个作用范围中,不能存在两个同名称的变量或者常量。
- 变量的作用域在其所定义位置的{}中。
二. 数据类型
1. 基本数据类型(值类型)
(1)整型
整型就是整数类型,整型专门用于保存整数,可以是正整数或者负整数。
类型特征
数据类型 | 长度(位bit) | 字节空间 | 可表示的数据范围 |
---|---|---|---|
long(长整型) | 64位 | 8 | -922337203685775808 ~ 922337203685775807 |
int(整型) | 32位 | 4 | -2147483648 ~ 2147483647 |
short(短整型) | 16位 | 2 | -32768 ~ 32767 |
byte(字节) | 8位 | 1 | -128 ~ 127 |
值表示法
类型 | 说明 | 示例 |
---|---|---|
byte,int,short | 直接给出常规整型值即可 | 100 |
long | 需要在值的后面加一个“l”或者“L” | 100L |
- Java中遇到整型默认解析为int类型
(2)浮点类型
专门用于表示带有小数点的数据。
类型特征
数据类型 | 长度(位bit) | 字节空间 | 可表示的数据范围 |
---|---|---|---|
double(双精度浮点类型) | 64位 | 8 | -1.7E308 ~ 1.7E308 |
float(单精度浮点类型) | 32位 | 4 | -3.4E38 ~ 3.4E38 |
值表示法
类型 | 说明 | 示例 |
---|---|---|
float | 给出的值需要带有小数点 需要在值后面加一个“f”或者“F” 支持十进制形式表示 支持科学计数法表示 整数部分如果只有0,则可以省略整数部分 | 十进制表示法:3.14F,314.0F,.314F 科学计数法表示:3.14e2F |
double | 给出的值需要带有小数点 可以但不必须在值后面加一个“d”或者“D” 支持十进制形式表示 支持科学计数法表示 整数部分如果只有0,则可省略整数部分 | 十进制表示法:3.14,314.0,.314 科学计数法表示:3.14e2 |
- Java中默认将小数解析为double数据类型,如果希望某个小数以float类型处理,就在其后面加“f”或者“F”
(3)字符类型
字符类型专门用于存储字符值,在计算机领域中,我们认为一个字符可以代表:一个汉字,一个字母,一个数字,一个符号等。
类型特征
数据类型 | 长度(位bit) | 字节空间 | 可表示的数据范围 |
---|---|---|---|
char(字符) | 16位 | 2 | 0 ~ 65535 |
值表示法
说明 | 格式 | 示例 |
---|---|---|
表示某个字符 | 以一对单引号的形式直接包裹需要保存的字符 | ‘你’ |
转义字符 | 以一对单引号包裹,内部包含转义字符 | ‘\n’ |
16进制Unicode表示 | 以一对单引号包裹,内部使用\u开始的十六进制整数 | ‘\u0001’ |
整数Unicode代码点表示 | 直接使用整数的Unicode代表 | 1 |
(4)布尔类型
数据类型 | 长度(位bit) | 字节空间 | 可表示的数据范围 |
---|---|---|---|
boolean(布尔) | 1位 | 1 | true或者false |
- 注意:与C++中的布尔类型不同,C++中的bool类型是0为假,非0为真,此处的boolean是专用的布尔类型,只能是true和false,不可以和int类型混用。
2. 引用数据类型(对象类型)
引用数据类型主要包含如下三类:
- class(类类型)
- interface(接口类型)
- [ ] (数组类型)
三. 整数的多进制表示法
1. 十进制
默认就是十进制
2. 八进制
以数字0
开头,例如:012表示的数是10
3. 十六进制
以0x
或者0X
开头,a/A,b/B,c/C,d/D,e/E,f/F分别表示10,11,12,13,14,15,例如:0x1f表示的数是31
4. 二进制
以0b
或者0B
开头,例如:0b111表示的数是7
四. 数值类型值中的下划线
- 数值(可以是整数,也可以是浮点数)中间可以加下划线,而且可以加多个下划线,例如:int a = 100_000_00;
- 数值的头尾不可以加下划线,即int a = _100;这是不允许的。
- 这个下划线的作用只是方便去看,没有什么实际作用,不会对程序产生其他影响。
五. 基本数据类型转换
Java中有8种基本数据类型,在必要的时候数据类型是需要转换的,即将一个数据类型的值转换另一种数据类型,数据类型转换的时候具有一定的规则,并不是任何数据类型都可以相互转换。
数据类型的转换分为“显式转换”和“隐式转换”两种。
自动类型提升(隐式类型转换)
- 因boolean类型无法参与运算,所以这里讨论的内容不包括此类型。
- char类型虽然代表字符,但是实际上字符也是由整数代表,所以可以进行运算。
- 当一个相对容量小的数据类型变量和一个相对容量比较大的数据类型进行运算的时候,整个表达式的结果将自动提升为容量大的数据类型。
- 以上内容提到的容量大小,指的是一个类型所能表示值范围的大小,而不是所占内存空间的大小。
- 当byte,char,short三种类型进行运算的时候,结果都为int类型。
- 类型提升的顺序为:byte/short/char -> int -> long -> float -> double
public static void main(String[] args)
{
byte byte1 = 2;//定义byte类型的变量并赋值为2
int int1 = byte1;//将byte类型所存储的2赋值给int类型,此时这个2已经被装在int空间中,类型自动提升。
System.out.println(int1);
}
public static void main(String[] args)
{
byte byte1 = 2;
int int1 = 120;
//byte byte2 = byte1 + int1;//编译不通过
int int2 = byte1 + int1;
System.out.println(int2);
}
强制类型转换(显式类型转换)
- 强制类型转所所指将某个变量中存储的值转换到另一个数据类型。
- 强制类型转换很可能面临丢失精度的问题。
- 不兼容的数据类型之间无法完成转换。
小数转换为整数会丢失精度:
public static void main(String[] args)
{
double double1 = 12.3;
//int int1 = double1;//编译错误,无法将大类型的值放在小类型的变量中。
int int2 = (int)double1;//这里进行强制类型转换
}
转换前的值超出了转换后的数据类型表示范围,丢失了精度:
public static void main(String[] args)
{
int int1 = 130;
byte byte1 = (byte)int1;
System.out.println(byte1);
}
内容总结
以上是互联网集市为您收集整理的【Java笔记4】变量,常量和数据类型全部内容,希望文章能够帮你解决【Java笔记4】变量,常量和数据类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。