关键字
关键字(keyword)的定义和特点
定义:被Java语言赋予了特殊含义
特点:关键字中所有字母都为小写
注意,关键字不能被用作标识符!
保留字
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使
用。
自己命名标识符时要避免使用这些保留字goto、const
一共有50个关键字。其中有两个保留字:const和goto。
需要注意的是,除了上述的50个关键字以外,true,false,null也不可以被用作标识符~
官方地址:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
1.1 标识符
标识符可以简单的理解成一个名字。凡事自己起的名字都成为标识符。
在Java中,我们需要给代码中的很多元素起名,包括类名、方法名、字段名、变量名等等。我们给对应元素起的名称就被称为标识符,
标识符需要遵循以下规则:如果不遵循规则就会报错
标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
不能以数字开头。如:123name 就是不合法
标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
标识符不能是Java的关键字
下面我们一起通过idea一起测试一下
Java中的名称命名规范:(习惯的命名,如果不遵循也不会报错)
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
这样写的优点就是容易区分类名,包名变量名
注意
1:标识符的命名最好能反映出其作用,做到见名知意。
2:java标识符也可以使用汉字声明,但是不建议使用。
注释
几乎所有编程语言都允许程序员在代码中写注释
因为编译器会忽略注释,所以注释并不会影响程序的运行结果。
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
Java的注释有3种:
单行注释: 注释单行内容.
格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释
多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.
格式: 以” /* ”开头, 以” * / ”结束.
快捷方式: 可以输入” /* ”之后按回车添加注释
文档注释: 一般用来注释类和方法,通过注释内容来记录类或者方法的信息.
格式: 以” /** ”开头。 以” * / ”结尾
快捷方式: 输入 “ /** ” 之后按回车添加注释
变量
在JAVA中,我们需要记录一些数据,但这些数据的值是不固定的,有时候需要改变,我们可以把这些数据理解为变量。
Java定义变量格式:变量类型 变量名以及变量值。
定义变量的两种格式:
格式一:声明变量时并且赋值:int age = 18;
格式二:先声明变量:String tel ; 然后给变量赋值:tel = 119;
注意:
不能使用没有被定义的变量
变量的数据类型
就像我们定义一个家庭的类,那么在这个类中会有不同类型的数据,比如:年龄 家庭住址 收入等所以在Java中就有了不同类型的数据类型
在Java中有八大基本类型
基本数据类型有八种,我们一般说八大基本数据类型,在这里一定要注意是基本数据类型,“基本“这两个字不要省略,因为除了基本数据类型还有引用数据类型。
在这里讲解一下基本数据类型的内存情况
除了八大基本类型之外还有引用类型
下面就是引用数据类型
注意:
string(字符串)也属于引用类型,这个是比较常见的变量类型
在idea里面进行写;
变量根据位置的不同也分为:局部变量和成员变量
,具体什么是成员变量什么是局部变量我们在这里不再进行详细讲解,在后面我们会详细讲解;
整数类型:byte、short、int、long
这四种整数它们最大的区别占用的内存空间不一样
Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
java的整型常量默认为int型,声明long型常量须后加‘l’或‘L’
java程序中整数变量通常声明为int型,除非不足以表示较大的数,才使用long
下面是八大基本数据类型:
注意:
1字节 = 8bit。 1bit存储0或者1两种情况
1T=1024M 1M=1024 1k=1024B
内存存储方式:
通过代码实现:
声明long型常量须后加‘l’或‘L’
通常定义整数变量时使用int类型
浮点类型:float、double
通俗的说就是带小数部分的成为浮点型
. 浮点型常量有两种表示形式:
. 十进制数形式:如:5.12 ,512.0f ,512(必须有小数点)
. 科学计数法形式:如:5.12e2 , 512E2 ,100E-2
. float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,、精度是float的两倍。通常采用此类型。
. Java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’。
问题:
float 和int都是占用4个字节,并且存放的数量比int大,为什么
答:实际上在float里面存储分为两个部分:一个部分是存储小数,另一部分是存储10的次幂
代码的实现:
字符类型:char
. char型数据用来表示通常意义上“字符”(2字节)
. Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
. 字符型变量的三种表现形式:
. 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = ‘a’; char c2= ‘中’; char c3 =‘9’;
. Java中还允许使用转义字符‘\’. 来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // ’ \n '表示换行符
. 直接使用Unicode值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a表示\n。
. char类型是可以进行运算的。因为它都对应有Unicode码。
代码实现
布尔类型:boolean
. boolean类型用来判断逻辑条件,一般用于程序程控制:
if条件控制语句;
while循环控制语句;
do-while循环控制语句;
for循环控制语句;
boolean类型数据只允许取值true和false,
我们通常情况下:true用1表示,false用0表示
基本数据类型转换:将容量大的数据类型转换为容量小的数据类型。
小到大(隐式转换)
byte m = 120;
int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用
float f = 3.2f; double d = f; -->可以执行
强制类型转换:将容量大的数据类型转换为容量小的数据类型。
使用时要加上强制转换符:(),但可能造成精度降低或溢出, 格外要注意。
通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类,则可以实现把字符串转换成基本类型。
如:String a = “43”; int i= Integer.parseInt(a);
int x = 999;
byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换
转换过程中可能导致溢出或损失精度
例如:int i =128; byte b = (byte)i; //打印的结果是-128
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
例如:float f = 32.7f; int a2 =(int) f; //打印的结果是32
不能对boolean类型进行类型转换。
在代码中可能会遇到的情况
如果我们使用long类型进行定义,不加L也不会报错,因为如果不加L底层会默认为int类型的数据(前提不能大于int类型的数据值,如果大于int类型的数据值就必须添加L);
如果是浮点型数据,如果不加f,底层默认为double类型的数据;所以不加f就会报错;