1、注释
Java语言的注释一共有三种类型
- 单行注释:用双斜线 ”//” 表示
- 多行注释:用 /*------------------*/ 表示
- 文档注释:用 /**-----------------*/ 表示
如果编写Java源代码时添加了合适的文档注释,然后通过JDK提供的javadoc工具可以直接将源代码里的文档注释提取成一份系统的API文档。
javadoc默认只处理public 或 protected修饰的内容。如果开发者希望javadoc工具可以提取private修饰的内容,则可以在使用javadoc工具时增加 -private 选项。 使用javadoc可以生成自己的API文档 @author:指定Java程序的作者;@version:指定源文件的版本;@deprecated:不推荐使用的方法;@param:方法的参数说明信息;@return:方法的返回值说明信息;@see:“参见”,用于指定交叉参考的内容;@exception:抛出异常的类型;@throws:抛出的异常,和@exception同义2、分隔号
分隔符(6个):Java语言里的分隔符有分号; 、花括号{}、方括号[ ]、圆括号()、空格、圆点 .
- 分号“;” :Java使用分号“;”进行语句分隔而非回车,一行可以有多个语句,一个语句也可以跨多行 。Java语句可以跨多行书写,但一个字符串(可用“+”号连接)、变量名不能跨越多行。
- 花括号“{”“}” :用于定义代码块
- 方括号“[]” :用于访问数组元素,紧跟数组变量名,如:a[3] = 3;
- 圆括号“(”“)”
- 空格“ ” :可以任意出现多个空格,但不要使用空格把一个变量名分割开。空格包含:空格符(Space)、制表符(Tab)和回车(Enter)等
- 圆点“.” :通常用作类/对象和它的成员(成员变量、方法和内部类)之间的分隔符,表明调用某个类或某个实例的指定成员
3、标识符(用于给程序中的变量、类、方法命名的符号)规则
- 标识符可以由字母(Unicode所能表示的多种语言的字符)、数字、下划线和美元符号组成,但不能以数字开头
- 标识符不能是Java关键字和保留字,但可以包含关键字和保留字
- 标识符不能包含空格
- 标识符只能包含美元符和下划线两个符号,不能包含@、#等其它特殊符号
4、Java关键字(50+3个)
略5、数据类型分类
变量:相当于一个有名称的容器,该容器用于装各种不同类型的数据 两种分类:基本类型(Primitive Type)和引用类型(Reference Type) 八大基本类型:byte、short、int、long、char、float、double、boolean 四种引用类型:类、接口、数组和null6、整型
- byte:内存占8位(2的8次方,相当于256),范围是-128~127
- short:内存占16位,范围是-32768~32767
- int:内存占32位,范围是-2147483648~2147483647
- long:内存占64位,范围是-2的63次方~2的63次方-1,必须使用L后缀,否则数值巨大时,系统不会当作long类型来处理
7、进制
- 二进制的整数以0b或0B开头
- 八进制的整数以0开头
- 十六进制的整数以0x或0X开头,其中10~15分别以a~f或A~F来表示
8、字符型char
Java使用16位的Unicode字符集作为编码方式,支持世界上所有书面语言的字符,支持65536个字符编码。字符型值有三种表示形式:
- 直接表示 ‘A’
- 转义 ‘\n’
- 直接使用Unicode值来表示字符型值,格式是‘\uXXXX’,也可以不加‘’,格式是‘\uXXXX’
char类型在赋值时,可以选择赋值数字型或字符型,但是字符型需要加上单引号括住才可以,而赋值的数字必须符合Unicode字符集的范围即'\u0000'到'\uffff'。赋值为数字时会转化为对应编号的字符再赋值。
转义符:
\b:退格符\n:换行符\r:回车符\t:制表符\":双引号\':单引号\\:反斜线
9、浮点型
- float:单精度,占4个字节、32位,要跟F或f后缀
- double:双精度,占8个字节,64位,默认
两种表示形式:
- 十进制,如:5.12必须带小数点;
- 科学计算,如:5.12e2=5.12X10的二次方
正无穷大(正浮点数除以0):POSITIVE_INFINITY,负无穷大(负浮点数除以0):NEGATIVE_INFINITY,非数(0.0除以0.0):NaN
所有正无穷大相等,所有负无穷大相等,所有NaN不与任何数值相当包括NaN本身都不想等下划线可以分割数值,整数值和浮点型数值都可以,如:double pi = 3.14_15_92_65_36;10、布尔型
boolean只能是true或false,主要用于控制流程或三目运算的判断条件11、类型转换
- 自动类型转换:当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统可以进行自动类型转换
byte b = 10;int i = byte;
- 强制类型转换:当把一个表数范围大的数值或变量直接赋给另一个表数范围小的变量时,需要进行强制转换
强制类型转换的运算符是一对圆括号()
int i = 10;byte b = (byte)i;
强转时如果超出表数范围会造成溢出
int i = 233;byte b = (byte)i;// b将输出-23
-
表达式类型的自动提升:如果运算中有多种类型的,表达式将结果自动提升为最大的类型。
short s = 5;s = s - 2;// 将报错,因为表达式已经自动提升至int类型int i = s - 2;// 所以一般数据类型使用int
规则如下:
所有的byte、short、char类型将被提升到int类型
整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。12、基本类型的包装类
boolean->Booleanbyte->Byteshort->Shortint->Integerlong->Longchar->Characterfloat->Floatdouble->Double
13、直接量
直接量是指在程序中通过源代码直接给出的值,只支持三种类型:基本类型、字符串和null14、运算符
- 算术运算符,加、减、乘、除、求余(%)、自加(++)、自减(–)
- 赋值运算符,等于号(=)
- 比较运算符,大于(>),大于等于(>=),小于(<),小于等于(<=),等于(==),不等于(!=)
- 逻辑运算符
&&:与,短路&:与,非短路||:或,短路|:或,非短路!:非^:异或,当两个数不同时才返回true,相同则返回false
短路逻辑:前面条件符合时将不再运行后面的条件
- 位运算符
&:按位与,当两位同时为1时才返回1|:按位或,只要有一位为1时可返回1~:按位非,单目运算符,将操作数的每个位全部取反^:按位异或,当两位相同时返回0,不同时返回1<<:左移运算符>>:右移运算符>>>:无符号右移运算符
扩展后的赋值运算符
+=: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&=:x&=y相当于x=x&y|=:x|=y相当于x=x|y^=:x^=y相当于x=x^y<<=:x<<=y相当于x=x<>=:x>>=y相当于x=x>>y>>>=:x>>>=y相当于x=x>>>ybyte b = 5;b = b + 5;报错b += 5;不会报错,机制不同
- 三目运算符
expression ? if-true-statement : if-false-statement;5 > 3 ? "5大于3":"5小于3";
15、运算符优先级(从上至下)
分隔符 . [] () {} , ;单目运算符 ++ -- ~ !强制类型转换运算符 (type)乘法/除法/求余 * / %加法/减法 + -移位运算符 << >> << <关系运算符> < <= > >= instanceof等价运算符 == !=按位与 &按位异或 ^按位或 |条件与 &&条件或 ||三目运算符 ?:赋值 = += -+ *= /= &= |= ^= %= <<= >>= >>>= 关系运算符>