Java的命名规范
- 名称只能由字母,数字,下划线,$符合组成
- 不能以数字开头
- 不能使用Java关键词
- 变量名,方法名首字母小写,常量名全部大写
Java中的注释方法
- 单行注释 //注释的内容
- 多行注释(块注释) /…/
- 多行注释(Javadoc注释) /**…*/
Javadoc注释的作用是生成注释文档
Java中的八大基本数据类型
- 整数型:byte(字节),short(短整型),int(整数形),long(长整形)
- 浮点类型:float(单精度浮点类型),double(双精度浮点类型)
- 字符类型:char
- 布尔类型:Boolean(true/false)
byte(字节):数据类型是8位,1个字节,默认值为0,最大值:127,最小值:-128
short(短整型):数据类型:16位,2个字节
int(整数形):数据类型:32位,4个字节
long(长整形):数据类型:64位,8个字节
float(单精度浮点类型):数据类型:32位,4个字节
double(双精度浮点类型):数据类型:64位,8个字节
字符和布尔类型:Boolean数据类型:1位,char占用2个字节
长整形的赋值要在结尾处加l作为标识 例如:long a = 100l;
单精度浮点类型的赋值要在结尾处加f作为标识 例如:float a = 100.2f;
double强制转成int小数部分精度损失 double a = (int)100.2; System.out.println(a); 输出结果为100.0
强制装换的规则:在原类型大于目标类型的时候损失精度
发生自动类型装换的条件是:
- 这两种类型是相互兼容的
- 目标类型数的范围比原来类型大
结论:当容量晓得数据类型的变量与容量大的数据类型的变量做运算时: byte、char、short -->int -->long
–>float -->double -->string 特别的:当byte、char、short三种类型的变量做运算时,结果为int型
Java中双引号和单引号的区别
双引号:用来引用字符串 单引号:用来表示单子字符
Java中的运算符
1,一元运算符:因操作数是一个,故称为一元运算符。
++x 因为++在前,所以先加后用。
x++ 因为++在后,所以先用后加。
~ 逐位取反,属于位运算符 ~x
n=10;
m=~n;
变量n的二进制数形式: 00000000 00000000 00000000 00001010
逐位取反后,等于十进制的-11: 11111111 11111111 11111111 11110101
2,算术运算符
% 取模运算(求余运算) x%y 例如:10 % 3=1
3,移位运算符
移位运算符操作的对象就是二进制的位,可以单独用位运算符来处理int类型整数
<< 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
例如 10<<3 10的二进制位1010 左移三位就是1010000
(>>) 右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
例如 10>>3 10的二进制位1010 右移三位就是1
(>>>)右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.
例如 10>>>3 10的二进制位1010 右移三位就是1
位运算操作符
<<:在一定范围类,每向左移1位,相当于*2
>>:在一定范围内,每向右移1位,相当于/2
面试题:
1, 最高效方式计算2 * 8? 2 << 3 或 8 << 1
2, num1 = 10 ,num2 = 20,如何把num1的值赋值到num2?
num1 = num1 ^ num2;
num2 = num1 ^ num2;(num2 = num1)
num1 = num1 ^ num2;(num1 = num2)
结论:
凡是可以使用三元运算符的地方,否可以改写为if-else,反之不成立
如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁,执行效率高
4,逻辑运算符
&&(逻辑与):表示条件都满足时,返回true,不满足时返回false
||(逻辑或):有一个条件满足时,返回true,不满足时返回false
^是位异或运算符,按二进制位每个对应为异或(面试)
1^0=0;
0^0=1;
也就是说对同一个字符进行两次异或运算就会回到原来的值。
三目运算符(面试)
布尔表达式?表达式1:表达式2
例如:a>b?(如果为true)返回表达式1,如果为false返回表达式二
&&和&的区别(面试)
- 同:&&和&都可以表示逻辑与,相当于运输符and,当整个运算结果为true,才为true否则为false
- 异:&&具有短路的功能,当第一个表达式的值为false的时候,则第二个表达式不执行;&则两个表达式都执行
- &可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作。
String类型变量的使用:
String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+,运算的结果仍然是String类型
char c = ‘a’;
int num = 10;
String str = “b”;
System.out.println(c + num + str) -->结果为107b a–>97 A–>65
计算机种不同进制的使用
对于整数,有四种表示方式:
二进制(binary):0,1,满2进1,以0b或0B开头
十进制(decimal):0-9,满10进1
八进制(octal):0-7,满8进1,以数字0开头表示
十六进制(hex):0-9及A-F,满16进1,以0x或者0X开头表示,此处的A-F不区分大小写。如:0x21AF +1 = 0X21B0
二进制转十进制
0 0001 110 --> 1 * 2^3 + 1 * 2^2 + 1 * 2^1 = 14
原码:
1 0001 110 --> -14的原码
反码(除符号位外,各个位取反):
1 1110 001 --> -14的反码
补码(反码加一):
1 1110 010 --> -14的补码
计算机的底层都以补码的方式来存储数据