关键字:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
保留字:byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const
标识符:凡是自己可以起名字的地方都叫标识符
命名的规则:(一定要遵守,不遵守就会报编译的错误)
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
Java中的名称命名规范:(不遵守,也不会出现编译的错误)
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
1.java中变量按照数据类型来分类:基本数据类型 vs 引用数据类型(数组 类 接口)
>基本数据类型:
整型:byte(8 bit) short int(默认类型) long
浮点型:float double (默认类型)
字符型:char(‘ ’)
布尔类型: boolean(只能取值为true 或false,不能取null)
补充:按照在类中存在的位置的不同:成员变量 vs 局部变量
2.进制(了解)
十进制 二进制 八进制 十六进制
二进制:计算机底层都是用二进制来存储、运算。
>二进制 与十进制之间的转换。
>二进制在底层存储:正数、负数都是以补码的形式存储的。(原码、反码、补码)
>四种进制间的转换
3.变量的运算:
①自动类型转换:容量小的数据类型自动转换为容量大的数据类型。
short s = 12;
int i = s + 2;
注意:byte short char之间做运算,结果为int型!
②强制类型转换:是①的逆过程。使用“()”实现强转。
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
算术运算符:
+ - + - * / % ++ -- +
注意:1) /: int i = 12; i = i / 5;
2) %:最后的符号只跟被模数相同
3)前++:先+1,后运算 后++:先运算,后+1
4)+:String字符串与其他数据类型只能做连接运算,且结果为String类型。sysout('*' + '\t' + '*'); vs sysout("*" + '\t' + '*');
赋值运算符:
= += -= *= /= %=
int i= 12;
i = i * 5;
i *= 5;//与上一行代码同样的意思
【特别地】
short s = 10;
s = s + 5;//报编译的异常
s = (short)(s + 5);
s += 5;//s = s + 5,但是结果不会改变s的数据类型。
比较运算符(关系运算符)
== > < >= <= instanceof(检查是否是类的对象)
【注意】区分== 与 = 区别。
进行比较运算操作以后,返回一个boolean类型的值
4>=3 表达的是4 > 3或者 4 = 3.结果是true。
if(i > 1 && i < 10){ }
不能写为:if(1 < i < 10){}
逻辑运算符(运算符的两端是boolean值)
& && | || ^ !
【注意】区分 & 与 && 的区别,以及 | 与 || 的区别
“&”和“&&”的区别: 单&时,左边无论真假,右边都进行运算; 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。 异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
我们使用的时候,选择&& , ||
位运算符(两端是数值类型的数据)
<< | 左移 |
>> | 右移 |
>>> | 无符号右移 |
& | 与运算 |
| | 或运算 |
^ | 异或运算 |
~ | 反码 |
【例子】1.如何交换m = 12和n = 5的值
2.将60转换为十六进制输出。
位运算符的细节 | |
<< | 空位补0,被移除的高位丢弃,空缺位补0。 |
>> | 被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,空缺位补1。 |
>>> | 被移位二进制最高位无论是0或者是1,空缺位都用0补。 |
& | 二进制位进行&运算,只有1&1时结果是1,否则是0; |
| | 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1; |
^ | 相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1 |
~ | 正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反 |
三元运算符
(条件表达式)? 表达式1 : 表达式2;
1)既然是运算符,一定会返回一个结果,并且结果的数据类型与表达式1,2的类型一致
2)表达式1与表达式2 的数据类型一致。
3)使用三元运算符的,一定可以转换为if-else。反之不一定成立。
例子:获取两个数的较大值;获取三个数的最大值。。