注释
- 单行注释: //
- 多行注释: /* 注释 */
- 文档注释: /** * */
数据类型
- 8大基本类型
//整数
byte num2 = 20; //(1个字节)
short num3 = 30; //(2个字节)
int num1 = 10; //(4个字节)---默认
long num4 = 40L; //加L (8个字节)
//小数
float num5 = 50.1F; //加F (4个字节)
double num6 = 3.1415926;//(8个字节)---默认
//字符
char name = '中'; //(2个字节)
//布尔值
boolean flag = false; //(1位)
- 3种引用类型
– 类
– 接口
– 数组
备注:
– 进制
//二进制
int i1 = 0b10; //0b开头
//八进制
int i2 = 010; //0开头
//十六进制
int i3 = 0x10; //0x开头
– 转义字符
\t 制表符(table)
\n 换行
类型转换
低 -----------------------------------------------------------> 高
byte,short,char --> int —> long —> float —> double
- 强制转换:(类型) 高—低 (省市关系)
- 自动转换: 低—高
变量作用域
- 类变量(static)
- 实例变量(类中,从属于对象,默认初始化)
- 局部变量(方法中,需手动初始化)
常量
- final 修饰,常量名大写和下划线
运算符
- 自增自减
a++ //先赋值,后自增
++a //先自增,后赋值
- 位运算符
& //与
| //或
~ //非
^ //异或
<< //左移:2<<3 表示2左移3位等于16---(2*(2^3))
- 三元运算符
x ? y : z //若x为真,则y,否则z: scope<60?"不及格":"及格"
JavaDoc
生成自定义API文档:javadoc -encoding UTF-8 -charset UTF-8 类.java
/**
*author 作者名
*version 版本号
*since 最早jdk版本
*/
用户交互Scanner
Scanner scan = new Scanner(System.in);
System.out.println("请输入");
String str = scan.nextLine();
System.out.println("输出为:"+str);
//关闭流
scan.close();
注:
.next() 和 .nextLine():前者不能得到带有空格的字符串,后者可以获得空白(常用)
选择结构Switch case
- switch匹配一个具体的值(jdk 7之后支持字符串)—反编译看底层(idea自带)
- 若无break,则会case穿透
- 整体没有匹配上,则会default
String str="abc"
switch(str){
case value1 :
//语句
break; //可选
case value2 :
//语句
break; //可选
case value3 :
//语句
break; //可选
default : //可选
//语句
}
流程控制
-
break: 强制退出循环
-
continue:跳出本次循环
-
return: 终止方法
方法
- 形参、实参:定义方法时的参数,为形参
- 重载:同一个类中,方法名相同,参数不同
- 可变长参数:传参时不确定参数个数,public void test(int x, int … i){ }
构造器
- 形式
– 1.和类名相同
– 2.没有返回值 - 作用
– 1.使用new关键字,本质是在调用构造器
– 2.用来初始化值 - 注意点
– 1.一旦定义了有参构造,无参就必须显式定义
– 2.快捷键:alt +insert
– 3.调用父类构造器super()(或者当前类构造器this()),必须要在子类构造器(当前类)的第一行
static
- 执行顺序:静态代码块>匿名代码块>父类构造器>子类构造器
- 注意点:
– 静态代码块:只执行一次
– 匿名代码块:一般赋初始值(对象每产生一次则执行一次)
super()
- 注意点:
– 1.super调用父类的构造方法,必须在构造方法的第一个
– 2.super必须只能出现在子类的方法或构造方法中
– 3.super和this不能同时调用构造方法 - 与this对比:
– 1.代表对象不同:super代表父类对象的引用
– 2.使用前提:super只能在继承条件下使用
– 3.构造方法:super():父类的构造
重写
- 1.方法名相同、参数列表相同
- 2.修饰符:范围可以扩大,但不能缩小: public>protected>default>private
- 3.抛出的异常:范围可以缩小,但不能扩大: ClassNotFoundException<Exception(大)
多态
- 父类的引用指向子类 Father f = new Son();
- 子类重写了父类的方法,执行子类的方法
- 注意点: 哪些方法不能被重写
– 1. static方法(属于类,不属于实例)
– 2. final常量
– 3. private方法 - 存在条件:(考)
– 1.有继承关系
– 2.子类重写父类方法
– 3.父类引用指向子类对象 - instanceof:判断两个类是否为父子关系
抽象类、接口
- 抽象类:
– 1.不能new实例化抽象类,只能靠子类去实现他(没有构造器)
– 2.抽象类中可以有普通方法,也可以没有(抽象方法) - 接口
– 1.接口中均没有方法的实现
– 2.多继承
– 3.实现了接口的类,就必须重写接口的方法
– 4.接口中的方法默认为 public abstract(常用) ,默认属性为 public static final(不常用)
– 5.不能实例化,没有构造器
– 6.只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化
内部类
- 成员内部类(大类中)
- 局部内部类(方法中)
– 匿名内部类 - 注:
– 使用内部类,可以获得外部类的私有方法
异常
- 超类Throwable
– Exception (运行时异常、非运行时异常)
– Error - 注:
– 大小:throwable>exception>error
– 假设要捕获多个异常:从小到大!
– 快捷键:ctrl+alt+T
– 五个关键字:try、catch、finally、throw、throws