------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、标示符
命名规则:由数字,字母,_,$组成,
其中数字不能开头,通常不使用$,这个一般是由厂商们的API中使用的。
变量
变量:
分为基本数据类型和引用数据类型。基本数据类型:int ,float,double 等,引用数据类型:数组,字符串,自定义类等。
变量:我们有时候需要一个空间来存储我们的数值,而且这个数值还是会随着程序的运行而有所变化的,这时我们就使用变量来存储数值,变量表示的是内存中的一块空间,通过变量名我们可以存取该空间中的数值。
变量类型:这块空间有大有小,那么如何确定大小呢?这时候就引出了变量类型,例如int i=1;此处变量名为i,变量类型为int,由于int占四个字节,因此这块空间就是四个字节,jvm看到i为int型,那么它存取i的时候就是到i的地址哪里存取四个字节的空间。
注意:变量的初始化,通常我们定义一个变量,即便不是立马使用它,也给它一个初始值,这主要是为了安全,如果访问了一个没有初始化的变量是否报错的。因此我们一般这样写
int i=0;而不是
int i;
命名规则:通常变量命名为全小写。
常量
常量:有时候我们需要在程序中使用一个固定不变的值,如果每次都用数字来表示太繁琐,而且容易写错,造成各个地方的该值不一样大,这个时候我们就需要用常量来表示它,
常量在程序中只能被赋值一次,之后就不能赋值了,也就是只能取,不能存。例如final int I=1;那么I在程序中就一直是1了,而不是再赋值了。
用处:例如数学中的PI,一般就用常量来表示final int PI=3.1415;
常量类型:常量当然也是有自己的类型的。
注意:
常量只能赋值一次。
命名规则:常量一般采用全大写的命名方式。
二、运算符
运算符分类:
按照参与运算的操作数个数分为单目运算符,双目运算符,三目运算符。
1.单目运算符:例如++,--,!等。
2.双目运算符:+,-,*,&&等。
3.三目运算符:java只有一个三目运算符? : 。例如:x==2?true:false;意思是:如果x等于2,返回true,否则返回false。
当然还有其他分类:
1.逻辑运算符:&&,||,!,&,|,^。
注意:&&,||和&,|在功能上是一致的,都是逻辑与和或,但是&&,||具有短路效果,就是说当运算符左侧能决定结果时,右侧就不执行了。
例如
class Demo
{
public static void main(String[] args)
{
int i=0,j=0;
if((i=2)==2||(j=3)==3)
System.out.println("i="+i+",j="+j);
if((i=4)==4|(j=5)==5)
System.out.println("i="+i+",j="+j);
}
}
运行图
从图可以看出,当运算符为&&时,j没有被赋值3,这是因为左侧(i=2)==2已经决定了表达式结果,所以右侧就没有被执行。而当运算符为&时,却没有这种情况,这就是短路。
2.位运算符:&,|,!,^。
特点:位运算一般要快于其他运算方式。
这几个是用于位运算的运算符,用的不多,
但是^运算符常用于交换两个数的值。
例如
class Demo
{
public static void main(String[] args)
{
int i=1,j=2;
System.out.println("i="+i+",j="+j);
i^=j;
j^=i;
i^=j;
System.out.println("i="+i+",j="+j);
}
}
运行图
3.组合运算符:+=,-=,*=等。
都是由其他运算符组合产生的,主要是
简化书写。
例如:i+=2;等价于i=i+2;
例如
class Demo
{
public static void main(String[] args)
{
int i=1,j=1;
i+=2;
j=j+2;
System.out.println("i+=2结果:"+i);
System.out.println("j=j+2结果:"+j);
}
}
运行图
4.模运算:符号只看左边,左边正,结果正,左边负,结果负,1%-5=1,-1%5=-1。
注意:模运算的两个操作数必须为int型。
5.instanceof:判断一个对象是否为某个类型。例如"123" instanceof String结果为true。
三、疑点难点
short a=2;编译通过,虽然2为int型,但是编译器有自动转换动作,将合适的数字转换为short型;
a=a+2;编译失败,当short和int相加时,结果为int型,再赋给short型,会 损失精度;
a+=2;编译通过,+=为一次运算,内部同样有自动转换动作;
a=a+2;编译失败,当short和int相加时,结果为int型,再赋给short型,会 损失精度;
a+=2;编译通过,+=为一次运算,内部同样有自动转换动作;
如果我们知道一定不会损失精度,那么可以采用强制转换将int赋给short变量
例如:a=(short)2;
四、总结
对于变量和常量的命名,一定要遵循Java的规则,见名知意,尽可能的使用有意义的名称,而不是简单的,x,y等,提高阅读性。运算符是Java非常重要的部分,毕竟程序的功能就是操作数据,而如何操作就看运算符的了。