目录
⛳️IDE(集成开发环境)
⛳️注释
⛳️关键字
⛳️保留字
⛳️标识符
⛳️java变量
⛳️Java 数据类型
⛳️Java基本数据类型
1.整数类型
2.浮点型
3.布尔型(boolean 逻辑型)
4.字符型(char)
⛳️基本数据类型转换
强制转换可能会带来的问题
1.概念:用于提供开发环境的应用程序,一般包括编辑器、编译器、调试器和图形用户界面。
2.常用的Java开发工具有:
①IntelliJ IDEA
②Eclipse
1.概念:对代码功能进行说明,使用特定符号进行标注。
2.注释的类型:
①单行注释(//,快捷键:ctrl+/):对某一行代码进行说明。
②多行注释(/* */,快捷键:ctrl+shift+/):注释多行代码。
③文档注释(/*** */):对类、方法(函数)、属性的功能进行说明,可在调用时提
示。
附加作用:调试代码
1.定义:被Java语言赋予特定含义的字符串(单词),主要用来修饰包、类、变量、方法。
2.特点:关键字都是小写的。
1.定义:现有Java版本尚未使用的关键字,后期可能会用。
2.命名标记符时避免使用这些保留字: goto 、const
1.概念:对包、类、变量、方法等进行命名的字符序列(通俗的讲就是我们可以自己命名的名称)。
2.语法强制:
①由大小写字母、数字、下划线、或$组成,数字不能开头。
②不能是关键字和保留字,但可以包含关键字和保留字。
③严格区分大小写,长度无限制。
④不能包含空格。
3.约定俗成:
①见名知意:int age = 10; String name = "zhangsan";
②驼峰表示:userName、user_name
③包名:所有字母都小写:huawei、baidu、alibaba
④类名、接口名:首字母大写(为了和变量,方法区分):UserName
⑤变量名、方法名:userName、playGame()
⑥常量名:所有字母都大写,驼峰失效,多个单词时每个单词用下划线连接: USER_NAME
1.定义:程序中基本存储单位,运行时值可变。
2.本质:内存中的一块区域,使用变量名来访问这块区域。
3.使用:先声明,后赋值,必须进行赋值才能使用。
4.声明语法(Java是强类型语言):
[修饰符] 数据类型 变量名 = 值;
有以下几种声明类型:
int a;
a=21;
或者
int a = 21;
或者
int a,b,c;
a=12;
b=21;
c=20;
或者
int a=12,b=21,c=2000;
1.意义:对每一种数据都定义了具体的数据类型,在内存中分配了不同大小的内存空间,可以指导程序中的数据如何存储,以及如何计算。
2.分类:
a.基本类型(8种):byte,short,int,long;float,double;char;boolean
①数值型:
整数类型:byte,short,int,long;
浮点类型:float,double;
②字符型:char
③布尔型:boolean
b.引用类型:
①类:例如:String,class;
②接口:interface
③数组:[]
String是核心类库中定义好的一个类,所以首字母大写,表示字符串类型。
整形又分为byte(占用1个字节也就是8个比特位,-128 ~ 127 )、short(2字节)、int(4字节)、long(8字节)。
注意:Java语言的整型字面量默认为int型,声明long型常量可以加L(大写L和小写l都可以,但是为了与数字区分,一般用大写L)。
例如:
long a=1221L;
注: Java 各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。
查看表数范围(int中存储最大值的类为Integer,其余的为其本身的单词,只不过首字母大写):
System.out.println(Integer.MAX_VALUE);
System.out.println(Short.MAX_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println(Byte.MAX_VALUE);
整数其他进制表示方式:
二进制表示:整形字面值前加0b
byte a=0b11;//输出为十进制的3
八进制表示:整形字面值前加0
int a=011;//输出为十进制的9
十六进制表示:整形字面值前加0x
int a=0x11;//输出为十进制的17
浮点型分为float(四字节)、double(八字节),表示小数。
float为单精度,double为双精度,双精度的精度比单精度高。
注意:Java 浮点型常量默认为 double 型,如要声明一个常量为 float 型,则需在数字后面加 f 或 F。
例如:
float a = 10.0001f;
注:与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平
台影响。
浮点型有两种表示形式:
①十进制表示
②科学计数法表示
boolean 类型适于逻辑运算,一般用于程序流程控制 。
java语言中boolean 类型数据只允许取值 true 或 false 。
注意:不可以0或非 0 的整数替代false和true,这点和C语言不同。
可以表示一个字符,占两个字节的内存。
char类型可以参与算术运算,因为char类型存储时存储的不是字符,而是字符在Unicode编码表中的编码,运算时使用的是编码表中十进制对应的值。
例如:
char a = 'a';
System.out.println(a+0);
//输出为97
Unicode:一种编码,主要是存储对照字符,编号范围从0x000000 到 0x10FFFF (十六进制),有 110 多万,每个字符都有一个唯一的 Unicode 编号,这个编号一般写成 16 进制,在前面加上U+。
例如:
“马”的 Unicode 是U+9A6C
Java中的字符使用的是Unicode编码表,Unicode编码表可以表示世界上所有的语言。
UTF-8:Unicode 编码的一种具体实现,它规定了字符转换到二进制编码的一系列规则。
特点:它是一种可变(长度可变)的编码方式,可以使用 1~4个字 节表示一个符号,根据不同的符号而变化字节长度。
如:英文字符少,0-256,一个字节就可以存储,所以一个英文字母在UTF-8字符集中只占一个字节;而中文多,一个字节表示不了,UTF-8中一个中文占三个字节。
除boolean类型以外,java中其他7种基本数据类型之间可以相互转换。
分类:分为默认转换和强制转换 。
容量大小排序:byte short char ---->int---->long---->float---->double
byte,short,char之间不分大小,不会相互转换,在计算时首先会转换为int类型,强制转换 。
1.默认转换(隐式转换):由容量小的基本类型转换为容量大的基本数据类型。
例如:
byte a = 127;
short b = a;
int c = i;//8字节
float f = c;//4字节
思考: float在内存中占4个字节的空间,而long型占用的是8个字节的空间,为什么4个字节的float型的最大值会大于long型的最大值呢?
long整型数,在内存中占用8个字节共64位,而 float在内存中占4个字节共32位,但是浮点数在内存中是这样的:V=(-1)^s * M * 2^E
浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。
其中第1位,符号位,即S;接下来的8位,指数域,即E;剩下的23位,小数域,即M。
也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。
2.强制转换:由容量大的基本数据类型转换为容量小的基本数据类型。
例如:
int x = 10;
byte y = (byte)x;//byte y = x;会报错
编译系统认为int类型是比较大的,所以它认为byte放不下int,此时就需要强制转换。
1.数据溢出:当数据溢出时,把超出的字节去掉,最高位为符号位。
例如:
int x = 258;
byte y = (byte)x;
System.out.println(y);//-128
2.精度降低:比如在浮点型向整形转换时,由于整形只能存储整数,所以会损失掉小数部分,就造成了精度降低。
例如:
float a = 10.35f;
long b = (long)a;
System.out.println(b);//输出10
混合运算时,小容量类型会默认自动上升为大容量类型。