1、访问修饰符(public protected default private)
用于控制其他部分对这段代码的访问级别。
2、类(class)
表明java程序中的全部内容都包含在类中。刚开始 的学习仅仅将类作为一个加载程序逻辑的容器,程序逻辑定义了应用程序的行为。
3、类名命名规范
类名是以大写字母开头的名词。,若由多个单词组成,每个单词的第一个字母应该大写。
4、源代码的文件名必须与公共类名相同。
5、根据Java语言规范,main方法必须声明为public,不过部分Java解释器也可以执行不是public的main方法,在Java SE 1.4后强制要求main方法为public的。
6、注释
在java里,/**/不能嵌套,
有三种注释方法,①://②:/**/③以/**开始 以*/结束这种方法会生成文档。
7、java 整型
类型 | 存储需求 |
int | 4B |
short | 2B |
long | 8B |
byte | 1B |
8、java7开始,加上0b就可以写二进制数,例如,0b1001就是9。同样,在数字字面加下划线,java编译器会自动剔除,比如用1_000_000(0b1111_0100_0010_0100_0000)表示一百万。
9、浮点数
double 表示这种数值精度是float精度的二倍,float数值有后缀F,没有后缀的浮点数,默认为double类型。
溢出和出错的三种情况的三个特殊值,正无穷大(正整数/0),负无穷大(负整数/0),NAN(0/0)。
注:常量Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NaN分别表示这三个特殊值。
检测一个特定值是否为Double.NaN:
if(x == Double.NaN)//is never true
所有非数值的值都认为是不相同的,可以这样检测
if(Double.isNaN(x))//check whether x is "not a number"
警告:如果数值计算不能有任何舍入误差,使用BigDecimal类。
10、char 类型
转义字符\u可以出现在字符常量或字符串引号内外;而转义序列(\n,\t等)只能出现在字符常量或字符串引号内,
public static void main(String \u0005B\u0005D args)
完全符合语法规则,\u0005B \u0005D分别是[和]的编码。
强烈建议不要在程序中使用char类型。
11、boolean 类型
两个值:true和false
if(x = 0)//opps...meant x == 0
在Java中,编译不通过,原因x不能转换为布尔类型。
12、变量
Java中,每一种变量属于一种类型。变量名必须是一个以字母开头的由字母和数字构成的序列。大小写敏感。
提示:尽管$是一个合法的Java字符,一般用于Java编译器或其他工具生成的名字。
int i,j;//both are integers
注:一般的对于两个不同的变量命名时,尽量不要仅仅是大小写不同。
①变量初始化:在Java中变量的声明尽可能靠近变量第一次使用的地方。
②常量:在Java中,利用关键字final指示常量,关键字final表示这个变量只能被赋值一次。一旦被赋值就不能更改。
③在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常把此类常量叫类常量。
注:const 是Java的保留的关键字,目前并没有什么用。在Java中必须使用final定义常量。
13、运算符
在/运算中,两数为整数,表整数除法;否则,为浮点数除法。例如:15/2=7,15.0/2=7.5
①关系运算符与boolean运算符
&&和||按照“短路”方式求值,如果第一个操作数能够确定表达式的值,第二个操作数就不需要计算了。
②位运算符
可以使用屏蔽技术获得整数的各个位。位运算符有:&、|、^、~
例如:如果一个n是一个整型变量并用二进制表示从右到左数第四位为1,那么
int fourthBitFromRight = (n&0b1000)/0b1000;
返回1;否则返回0。
“>>”和“<<”将二进制位进行左右移位。
最后,“>>>”运算符将用0填充高位,“>>”运算符用符号位填充高位。
警告:对于移位运算符右侧参数要模32的运算(如果是long 则右侧模64)例如:1<<35与1<<3或8是相同的。
14、数学函数与常量
Java中没有幂运算,借助Math类的pow方法。
如果在源文件的 顶部加上"import java.lang.Math.*;",就不用在数学方法名及常量前加Math了。
15、强制转换类型
对浮点数进行舍入,使用Math.round();//转换为long类型。
double x = 9.997;int nx = (int) Math.round(x);