一、标识符和关键字
分隔符:
java语言里面主要的分隔符有分号(;),花括号({}),方括号([ ]),圆括号(( )),空格,原点(.);
分号:java里面用分号作为语句的分隔;
花括号:用来定义代码块。花括号一般情况下是成对出现的;
方括号:主要作用是用于访问数组元素,方括号通常紧跟数组变量名,而方括号里面指定希望访问的数组元素索引;
圆括号:主要有几个用途,首先是定义方法时必须使用圆括号来包含所有的形参声明;调用方法时必须使用圆括号传入实参值;用圆括号把算术表达式某一部分扩成一个整体,保证这个部分优先计算;强制类型转换的元算符;
空格:空格包含空格符,制表符,回车等。可以随意组合。
圆点:通常用于类/对象和其成员之间的分隔符,表明调用某个类或某个实例指定的成员。
标识符规则:
标识符可以有字母,数字,下划线和美元符号($),其中不能用数字开头;
标识符不能是java关键字或者java保留字。可以包含它们;
标识符不能含有空格;
标识符只能包含美元符号,不能包括其他特殊字符如#,@,*,&等等;
关键字:
关键字有很多,但都是小写的。java一共有48个关键字,说几个不常用的。
assert,native,strictfp,transient,volatile。
java包含两个保留字分别为goto和const, 这两个是c语言中的关键字,java从c语言中继承了很多关键字,enum是从java5 新增的关键字。
二、数据类型
java把数据类型分为两类:基本类型和引用类型。
有个特殊的类型是空类型,空类型就是null值的类型。空引用是null类型变量唯一的值,空引用可以转换成任何引用类型。
基本数据类型:
基本数据类型包括整数类型,字符类型,浮点类型和布尔类型。
整数类型中包括byte(一个字节),short(两个字节),int(四个字节),long(八个字节);
字符类型只有一个char(两个字节);
浮点类型包括float(四个字节),double(八个字节);
布尔类型只有boolean(一位,注意是一位);
基本数据类型常量的几种表示方式:
八进制通常用0开头;
十六进制0x或者0X开头;
java7新增的二进制整数表示方式,
用0b或者0B开头;
long类型在数字后面添加l或者L。
float类型在数字后面添加f或者F。
boolean类型只有false和true两个值。不能用0或者非0来代表。其他语言却支持0或者非零来代表,比如c/c++,javascript等。
注意:
关于无穷大,无穷小,非数。
在java中0.0/0.0 会得到非数(NaN);
任何一个不为零的数除以0.0得到无穷大,至于是正无穷还是负无穷,看数是大于零还是小于零;
任何一个为零的数除以0.0都会得到非数(NaN);
基本类型转换:
说一下System.out.println(3+4+"hello");和System.out.println("hello"+3+4)的区别。
第一个会先执行3+4然后得到7,在执行7+“hello”,结果为7hello;
第二个先执行hello+3,得到hello3这个字符串在去执行+7的操作,得到hello34。
表达式类型自动提升:
当一个算术表达式中包含多个基本类型的值时,整个算法表达式的数据类型将发生自动提升。java中定义了如下的提升规则。
所有byte,short,char类型被自动提升到int类型。
整个算术表达式的数据类型自动提升到与表达式中最高的等级操作数同样的类型。
操作数等级如下byte-->short -->int ,char-->int,int-->long-->float-->double。
最经典的例子:
short s = 5;
s+=5;//这句话正确
s = s +5;// 这句话错误。
三、运算符
java中元算符可分为一下几种:
①算术运算符
②赋值运算符
③比较运算符
④逻辑运算符
⑤位运算符
⑥类型相关运算符
算术运算符:
+ - * / 略过,
% :求余运算符,得到一个整除的结果后剩下的值。
++:自加,单目元算符,运算符可以放在操作数的左边或者右边。但是效果不一样,
int a = 3; int b = a++; // 运行步骤 把a的值先赋值给b,然后a在加一
int a = 3; int b = ++a; //运行步骤 把 a的值先加一,然后在赋值给b
--:自减,和自己基本一致。
赋值运算符:
int a ;
int b;
int c;
a = b = c = 7;
java支持这种一次为多个变量赋值的写法,但是该写法导致程序可读性降低;
位运算符:
&:按位与。
|:按位或。
~:按位非。
^:按位亦或。
<<:左移运算。
>>:右移元算。
扩展后的赋值运算符:
+=; x+=y --> x = x + y;
-=; x-=y --> x = x - y;
*=; x*=y --> x = x * y;
/=; x/=y --> x = x / y;
%=; x%=y --> x = x%y;
不一一枚举。
剩下的有 &=,|=,^=,<<=,>>=,>>>=;
比较运算符:
>; 大于 如果前面的大于后面的返回true;
>=; 大于等于 如果前面的大于等于后面的返回true;
<:小于 如果前面的小于后面的返回true;
<=:小于 如果前面的小于等于后面的返回true;
==:如果两边的操作数都是数值类型,即使他们的数据类型不同也会返回true, 97 == 'a' 5.0 ==5 都会返回true;
!=:不等于,如果两边操作的都是数值类型,无论数据类型是否相同,只要他们的值不想等,都将放回true;如果操作数都是引用类型 ,只有当两个变量都是相同类的实例时才可以比较。只要两个引用指向不是同一个对象就会返回false;
逻辑运算符:
&&: 与 前后两个必须都是true才会返回true;
&:不断路与, 作用与&& 相同,不会短路
||:或 只要两个操作数有一个是true就会返回true
|:不短路或 作用|相同, 不会短路
!:非 如果操作数为true返回false ,否则返回true;
^:疑惑,当两个操作数不同时才会返回true;
不短路与和不短路或, 程序会执行完( | ) 或者( & ) 运算符号两边的表达式 。
三目运算符:
目前只有一个 : ? ;
( 1) : (2) ? (3);
如果表达式 1 成立则 表达式 2 ,否则返回 表达式 3 ;
表达式中可以嵌套 三目运算符
------- android培训、 java培训、期待与您交流! ----------