1.Java对大小写敏感。
2.Java类名必须以字母开头,后面可以是字母和数字的任意组合,不能使用Java保留字。
Java关键字:
abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,
final,finally,float,for,goto,if,implements,import,instanceof,int,interface,long,native,new,null,package,private,protected,
public,return,short,static,strictfp,super,switch,synchronized,this,throw,throws,transient,try,void,volatile,while
标准命名规范:类名是以大写字母开头的名词,如果名字有多个单词组成,每个单词的第一个字母都应该大写。
main方法必须声明为public。
3.在Java中,/* */注释不能嵌套。
4.Java数据类型
4.1 整型
类型 | 存储需求 | 取值范围 |
int | 4字节 | -2147483648 ~ 2147483647 |
short | 2字节 | -32768 ~ 32767 |
long | 8字节 | -9223372036854775808 ~ 9223372036854775807 |
byte | 1字节 | -128 ~ 127 |
4.2 浮点类型
类型 | 存储需求 | 取值范围 |
float | 4字节 | 大约±3.40282347E+38F(有效位数为6~7位) |
double | 8字节 | 大约±1.79769313486221570E+308(有效位数为15位) |
(1)float类型后缀F,没有后缀的为double类型,也可以加后缀D表示double类型
4.3 char类型
转义序列 | 名称 | Unicode值 |
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\" | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
在Java中,char类型用UTF-16编码表示一个代码单元,建议不要使用char类型
4.4 boolean类型
true/false。整型和布尔值不能相互转换。
5.变量
变量名必须是以字母开头的由字母或数字构成的序列,可以包含‘_’、‘$’或某种语言中代表字母的任何Unicode字符。‘$’只用在Java编译器及其他工具生成的名字中。
不能用Java保留字作为变量名。
5.1 变量的初始化
不要使用未初始化的变量。
Java中不区分变量的声明和定义。
5.2 常量
(1)利用final表示常量,常量只能赋值一次,一旦被赋值之后,就不能更改。常量名使用全大写。
(2)static final设置类常量,类常量定义位于main方法外部。
(3)Java必须使用final定义常量,const没有使用。
6.运算符
6.1 自增、自减
前缀方式先进行加一或减一运算,后缀则使用变量原来的值。
6.2 关系运算符、boolean运算符
逻辑与:e1&&e2
逻辑或:e1||e2
逻辑非:!e
三元运算符:c?e1:e2(满足条件c执行e1,否则执行e2)
6.3 位运算符
&(“与”),|(“或”),^(“异或”),!(“非”),>>(“右移,符号位填充高位”),<<(“左移”),>>>(“右移,用0填充高位”)
6.4 数值类型转换
·如果两个操作数中有一个是double类型,另一个操作数就会转换成double类型(long转double会有精度损失)
·否则,如果其中一个操作数是float类型,另一个操作数就会转换成float类型(int,long转float会有精度损失)
·否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型
·否则,如果其中一个操作数是int类型,另一个操作数将会转换为int类型
6.5 强制类型转换
(1)浮点数转化为int只保留整数部分,四舍五入使用Math.round方法,round方法返回类型为long。
(2)强制转换超出目标类型表示范围,将被截断成一个完全不同的值。
6.6 运算符优先级
运算符 | 结合性 |
[ ].( )(方法调用) | 从左向右 |
! ~ ++ -- +(一元运算) -(一元运算) ( )(强制类型转换) new | 从右向左 |
* / % | 从左向右 |
+ - | 从左向右 |
<< >> >>> | 从左向右 |
< <= > >= instanceof | 从左向右 |
== != | 从左向右 |
& | 从左向右 |
^ | 从左向右 |
| | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从右向左 |
= += -= *= /= %= &= |= ^= <<= >>= >>>= | 从右向左 |
6.7 字符串
String类
6.7.1 子串 substring方法
6.7.2 拼接 +
6.7.3 String类对象为不可变字符串,不能修改其中的任何一个字符
6.7.4 判断相等 equals方法 compareTo方法 不能用==
6.7.5 空串与Null串 空串是长度为0的字符串,null串表示没有任何变量与该变量关联
判断空串:if(str.length()==0)或if(str.equals(""))
判断null串:if(str==null)
7.输入输出
7.1 读取输入
import java.util.*;
...
Scanner in=new Scanner(System.in);
int i=in.nextInt();
double d=in.nextDouble();
String str=in.nextLine();
...
//Java SE 6引入 输入密码时用Console类,每次只能读取一行输入
Console con=System.console();
char[] passwd=con.readPassword("Password:");
7.2 格式化输出
System.out.print();
System.out.println();
System.out.printf();
8.控制流程
8.1 块作用域
8.2 条件语句if else
8.3 循环 while( ){ }; do{ }while( ); for( ){ };
8.3.1 while
while循环先检测循环条件,因此循环体中的代码有可能不被执行。
do while循环先执行语句,在检测循环条件,因此循环体至少被执行一次。
8.3.2 for
for语句第一部分通常用于计数器的初始化,第二部分给出每一轮循环执行前需要检测的循环条件,第三部分指示如何更新计数器。
8.4 switch多重选择
switch(){
case c1:
...
break;
...
default://未找到对应的case将执行default
...
break;
}
case标签可以是:char、byte、short、int、枚举常量、字符串字面量(Java SE 7)。
8.5 中断控制break continue
9.大数值 BigInteger BigDecimal
9.数组
9.1 for each循环
for(variable:collection){ statement }
collection必须是一个数组或者实现了Iterable接口的类对象
9.2 多维数组
9.3 不规则数组
Java实际上没有多维数组,多维数组解释为“数组的数组”