关键字、保留字和标识符
定义:关键字是对编译器有有特殊意义的单词;保留字是Java中没用使用的保留关键字,Java中goto是,下面不说介绍其;标识符在Java中的包、类、方法(函数)、参数和变量的名称叫Java标识符。
关键词注意点:关键字不能作为变量名、方法名、类名和包名。
掌握的重点是标识符的命令规则和规范。
标识符命名规则
- 必须以字母、下划线(_)、或者美元符号$开头
- 不能有空格
- 不能使用关键字或者保留字做为标识符
标识符命名规范
元素 | 规范 | 示例 |
---|---|---|
类名 | Pascal规则 | Person StudentDemo |
变量名 | Camel规则 | age height avgValue |
包名 | Camel规则 | getAge setUserName |
方法名 | 全部小写 | com.neusoft |
常量名 | 全部大写 | MAX_VALUE |
- Pascal规则:组成标识符的每个单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求全部大写。
- Camel规则:标识符的首字母小写,每个后面连接的单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求它们出现在标识符首部时全部小写,否则全部大写。
常量、变量和数据类型
定义:Java中常量指程序中持续不变;变量是指在程序中可以发现改变的量;两大数据类型,8大基本数据类型。
基本数据类型和引用数据类型存储位置:
声明变量不管是基本数据类型 还是引用数据类型就会在栈内存中开辟空间。
基本数据类型的数据存放在栈内存中,引用数据类型的数据存放在堆内存中。
堆存放所有对象,堆栈存放对象引用(地址)。
整型长度(这是Thinking in Java中 2.2.2的章节的图片):
- 基本类型具有包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。
运算符和表达式
-
左移、右移的剖析:
-
计算机种常用补码表示数据,移动是移补码
-
正数------原码=补码
-
负数------原码=补码-1再取反;补码=原码取反后+1
数据127,补码和原码一样:0111 1111
eg:左移1位:1111 1110----->对应原码1000 0010 对应十进制-2
左移右边空出的的位用0补,高位溢出的位舍弃。
右移1位:0011 1111------>对应原码0011 1111对应十进制63
左边空出的位用0或者1补。整数用0补,负数用1补。
低位溢出的位舍弃。
数据-1,原码:1000 0001---->补码为1111 1111
eg:左移1位:1111 1110------>对应原码1000 0010对应的十进制-2
右移动1位:1111 1111----->对应原码1000 0001对应的十进制-1 -
按位运算符和逻辑运算符的区别:
相同点:都可以参加逻辑运算
异同点:逻辑与或只能参与逻辑运算。
短路运算
逻辑表达式:- a>b&&c>d -假设a>b 为false,c>d为true ,那么整个表达式为false -假设a>b 为false,c>d为false ,那么整个表达式为false 所以a>b的结果已经决定了整个表达式的结果,后半部分不起作用,被短路了 - a>b||c>d -假设a>b为true,那么后半部分表达式被短路
-
三目运算符:
表达式:表达式1?表达式2:表达式3;
判断方式:表达式1的结果为true时,就为第二个表达式,如果为false时,就为第三个表达式。 -
i++与++i的区别:
++在后面叫后缀式,++在前面叫前缀式;(自己叫的方便记忆)
后缀式先使用后运算(加1);前缀式先运算(加1)后使用。 -
运算符优先级:
括号>一元运算符>算术运算符>关系运算符>逻辑运算符>条件运算符和赋值运算符
数据类型的转换
自动转换规则(小范围转大范围)
强制转换规则(大范围转小范围)
强制转换时,可能会丢失精度降低或溢出,要小心哦。