------- android培训、java培训、期待与您交流! ----------
一、 关键字与标识符
1.1 关键字
java中的关键字主要有以下几类:
1.2 标识符
java中的标识符由字母,数字,下划线_以及$组成,有一定的命名规则,主要包括四点:
①数字不能开头②不可以使用关键字③java中的标识符严格区分大小写④为了提高阅读性,最好将标识符名字起得"见名知意"!
二、 常量与变量
2.1 常量
所谓常量就是指数据不能改变的量,java中的常量我们用final关键字来声明
Java中常量的分类:
1,整数常量。所有整数
2,小数常量。所有小数
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5,字符串常量。将一个或者多个字符用双引号标识。
6,null常量。只有一个数值就是:null.
对于整数:java有三种表现形式。
十进制:0-9 ,满10进1.
八进制:0-7 ,满8进1. 用0开头表示。
十六进制:0-9,A-F,满16进1. 用0x开头表示
2.2 变量
变量就是指数据能够改变的量,包括变量名称,变量数据类型和变量数值三个部分。
对于变量的这三个部分,变量名称,前面已经说到,就是标识符的使用,对于另外的两个部分,我们有下图来表现:
2.3 变量之间的转换
自动类型提升:
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。
强制类型转换:
byte b = 3;
b = b + 4;//报错
b = (byte)( b+4) ;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。
1.①byte s1=3;s1=s1+3;②byte s1=3;s1+=3;对于①会出现强制转换错误,②是正确的2.byte s2=4;s3=5;byte s=s2+s3;
这道题也是很明显的强制转换类型错误,因为对于short,byte这些类型的变量,想要进行加减运算的时候需要进行强制转换!
三、 运算符
3.1算术运算符+ - * / %
①3+2=5;
②3+“2”=32;
对于①②的不同情况因为+不仅是一个运算符,+还是一个连接符。当运算中出现了字符时,如同②,此时会将数字3与字符2相连接,此时得到的结果就是字符串“32”。
再看一个例子:
③System.out.print(“5+5=”+5+5);
对于③的结果,答案应该是5+5=55。因为+连接符将字符串“5+5”与数字5都连接成了字符串。此时我们要想得到正确的结果。应该将其变为“5+5=”+(5+5)让加法运算先运算即可。
将一个数字转换为String类型的方法:
int a=1;
String b;我们数字1转换为字符串“1”。
①b=a+“”;
②Integer c=1;
b=c.ToString();
3.2 赋值运算符:
对于赋值运算符有以下经典例题:
Short s=4;
①s=s+4;
②s+=4;
对于①,由于s是short类型,在表达式的右边不能有变量运算。故①会报错“可能会损失精度”。对于②由于②这种格式会发生自动转换,故最终结果是8,不会报错。
3.3 instance of 检查是否是一个类的对象。
如:
Hello intance of String:表示判断hello是否是String类的对象
3.4 对于逻辑运算符中单与“&”与双与“&&”的区别:
①相比之下&&的效率比&稍微高一点。
①int a=3;
②System.out.prinrln(a>4 & a<6);
③System.out.prinrln(a>4 && a<6);
对于②和③,当左右两边的条件都为真的时候,两者相同。当a=4的时候,对于②,a>4和a<6都得判断,结果为假,而对于③,由于a>4是假的,后面的内容就不在判断了。
②&还有二进制位运算的功能,而&&没有。
总结:在java中我们 在进行逻辑与运算的时候,通常我们是用&&。对于逻辑|和逻辑||的区别于与运算符相似。
3.5 位运算符:
包括<<左移 >>右移 <<<无符号左移 &位于 |位或 ^位异或 ~取反
对于位异或^有以下用处:
对于一个数,异或同一个数两次,还是这个数。如:
数字5的二进制表示形式0000 0101来异或数字3的二进制表示形式0000 0011,得到的数字是6,其二进制形式是0000 0110。当这个数0000 0110再去异或0000 0011的时候,我们就可以得到原来的数字,即5:0000 0101。这种特点适合用作加密中。当我们将一个数以某一种算法通过异或运算来将其加密,之后只要记住这个异或的数,再进行一次异或就可以得到原来的数了。
3.6 两个数a和b交换值的方式:
int a=3,b=5,c;
①c=a;
a=b;
b=c;
②a=a+b;//a=3+5
b=a-b;//b=3+5-5=3
a=a-b;//a=3+5-3=5
③a=a^b;//a=3^5
b=a^b;//b=3^5^5=3
a=a^b;//a=3^5^3=5
对于以上三种方式,开发中最常用的是第一种,阅读性比较好,且比较简单。第二种方式我们我们不建议使用,因为a,b的数值要是都比较大,int容易出现精度溢出。第三种在面试中可能会出现,开发中一般不用,因为阅读性不强。