标识符合法定义规则:1数字不可以开头 2不可以使用关键字
Java严格区分大小写。
main不是关键字,但被虚拟机所识别.
Java中的名称规范:
1. 包名:多单词组成时所有字母都小写。如xxxyyyzzz
2. 类名接口名:多单词组成时,所有单词首字母大写。如XxxYyyZzz
3. 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。如xxxYyyZzz
4. 常量名:所有字母都大写。多单词组成时每个单词用下划线链接。如XXX_YYY_ZZZ
八进制:满8进1,用0开头表示
十六进制:满16进1,用0x开头表示
负数的二进制表示。 6=110 -6: 6的二进制取反+1
负数的最高位都是1
变量:就是将不确定的数据进行存储。也就是需要在内存中开辟一个空间。
空间名称:变量名 空间的类型:数据类型
基本数据类型:
整数类型 byte, short , int , long
byte :8位二进制 short: 16位二进制 int: 32位二进制 long: 64位二进制
浮点类型float double
float: 32位二进制 double: 64位二进制
char : 16位二进制 (2个字节与C++不同,C++总char类型1个字节)
float d = 3.4f; double d = 3.4;
当数据不确定的时候,需要对数据进行存储时,就定义一个变量来完成存储操作。
byte b = 3; b = b +2 ;编译出错第二句 2是int型,b数据类型提升为int
正确的: b = (byte) (b +2);
(char)(‘A’ + 1) 输出B
转义字符:通过\来转变后面字母或者符号的含义
\n: 换行
\b: 退格,相当于backspace
\r: 按下回车键,windows系统,回车符是由两个字符组成\r\n
\t: 制表符,相当于tab键.
System.out.println(“ \”hello\””); 输出”hello”
System.out.println(“ \\hello\\”); 输出\hello\
short s = 4; s = s + 2; //编译失败
short s = 4; s += 2; //编译成功,右边只进行赋值语句,有自动转换
inta = 4 ; a > 3 & a < 6 与 a > 3&& a < 6 一样
inta = 2; a > 3 & a < 6 两者都运算, a >3 && a < 6 只运算前面,因为前面为假
& 与 &&的特点:
& 无论左边是真是假,右边都运算
&& 当左边为假时,右边不运算
&还有一个功能是位运算,&&效率高一点
| 两边都参与运算
|| 左边为真时,右边不运算
3<<2 = 12 3*2 *2
3<<3 = 24 3*2*2*2
6>>1 = 3 6/2
6>>2 = 1 6/2/2
位运算是对二进制操作。
>>(右移): 最高位补什么由原有数据的最高位而定,如果最高位为0,那么右移后用0补空位,如果最高位是1,右移后用1补空位
>>>(无符号右移):无论最高位是什么,右移后,都用0补。
高效:位运算
两个数交换:
① 日常开发所用(阅读性强):
temp = a;
a = b;
b = temp;
② 带有技巧性:
a = a ^ b;
b = a ^ b;
a = a ^ b;
获取一个数二进制的最低四位和次低四位
三元运算符格式 (条件表达式)? 表达式1 : 表达式2 ;
y = (x > 1)?’a’ : 200;
字符’a’会提升,因为和200(整数)做运算
switch ( ) 只接受四种类型 char,byte,int,short
int x = 2;
switch(x)
{
default:
System.out.println("b");
case5:
System.out.println("d");
case4:
System.out.println("a");
break;
}
输出:
b
d
a
switch语句碰到 } 或 break才跳出
if和switch语句很像,具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且符合byte,short,int ,char四种类型,建议使用switch语句。虽然两个语句都可以使用,switch效率稍高。
其他情况,对区间判断,对结果为boolean类型判断,使用if,if的适用范围更广