1、注释
1.1单行注释:只能注释当前行,以//开始,直到行结束。
1.2多行注释:注释一段文字,以/*开始,*/结束,idea的注释快捷键crtl+/。
1.3文档注释:用于生产API文档,配合JavaDoc。
2、标识符
关于 Java 标识符,有以下几点需要注意:
2.1所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
2.2首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
2.3不能使用关键字作为变量名或方法名。
2.4标识符是大小写敏感的
合法标识符举例: age 、 $salary 、 _value 、 __1_value
【注】 JAVA 不采用通常语言使用的 ASCII 字符集,而是采用 unicode 这样的标准的国际字符集。因此,这里的 字母的含义:可以表示英文、汉字等等。可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low。
3、数据类型
Java 的数据类型分为两大类:基本类型( primitive type )和引用类型 (reference type)
【注】引用数据类型的大小统一为 4 个字节,记录的是其引用对象的地址!
4、类型转换
不能对boolean类型进行类型转换。
不能把对象类型转换成不相关类的对象。
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
转换过程中可能导致溢出或损失精度
4.1自动类型转换
自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。
例如 : short 数据类型的位数为 16 位,就可以自动转换位数为 32 的 int 类型,同样 float 数据类型的位数为32,可以自动转换为 64 位的 double 类型。
4.2强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型. 在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
如此处将double类型的x转换为int类型,并赋值给y
double x=10;
int y = (int)x;
【注】JDK7为我们直接提供了二进制整数的类型。我们只要以:0b开头即可。
int x = 0b0101;
int y = 1_0000_0000;//此处jdk7及以上都会自动识别这个_是个标识符,方便阅读
5、变量和常量
Java 是一种强类型语言,每个变量都必须声明其类型。
Java 变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量作用域
类变量(静态变量: static variable ):独立于方法之外的变量,用 static 修饰。
实例变量(成员变量: member variable ):独立于方法之外的变量,不过没有 static 修饰。
局部变量( local variable ):类的方法中的变量。
public class Variable{
static int allClicks = 0; //类变量
String str = "helloworld"; //实例变量
public void method(){
int i = 0; //局部变量
}
}
局部变量:方法或语句块内部定义的变量。
生命周期是从声明位置开始到”}”为止。 在使用前必须先声明和初始化(赋初值)。 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
实例变量:方法外部、类的内部定义的变量。
从属于对象,生命周期伴随对象始终。 如果不自行初始化,他会自动初始化成该类型的默认初始值。
类变量:使用static定义。
从属于类,生命周期伴随类始终,从类加载到卸载。
常量(Constant) :初始化 (initialize)后不能再改变值!不会变动的值, final 常量名 = 值 ;
6、运算符号
算术运算符 : + , - , * , / , % , ++ , --
赋值运算符 =
关系运算符 : > , < , >= , <= , == , != instanceof
逻辑运算符 : && , || , !
位运算符 : & , | , ^ , ~ , >> , << , >>>
条件运算符?:
扩展赋值运算符 :+= , -= , *= , /=
整数运算:
如果两个操作数有一个为 Long, 则结果也为 long
没有 long 时,结果为 int 。即使操作数全为 shot,byte ,结果也是 int
浮点数运算:
如果两个操作数有一个为 double, 则结果为 double.
只有两个操作数都是 float, 则结果才为 float.
java中的乘幂处理:
Math . pow ( 3 , 2 )=3^2。Math 类提供了很多科学和工程计算需要的方法和常数。
位运算: 位运算符 : & , | , ^ , ~ , >> , << , >>>
A = 0011
B = 1010
A&B 与 0010
| 或 1011
^ 异或(相同为0,不同为1)1001
~取反 ~A 1100
<< *2
>> /2 (运算速度快) 2<<3=2*2*2*2
字符串连接符:+
int a = 10;
int b = 20;
System . out . println (""+ a + b ); 1020 //字符串在前直接进行拼接
System . out . println ( a + b+"" ); 30 //字符串在后先进行了运算,后拼接
三元运算符?
y = x?a:b
如果x为真则y = a
否则y = b