java基础
main=public static void main(String[] args)
sout=System.out.println();
long和float类后面加L和F
二进制0b 八进制0 十六进制0x
char a=‘a’=97=’\u0061’
高到低强制转换 低到高自动转换
bool不能转换
类变量static从属于类方法
实例变量 局部变量
常量final
ctrl+D复制当前行到下一行
(byte)+(short)=(int)
短路运算&&
左移a<< n ==a*2^n 右移a>>n ==a/2^n
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
文档注释
/**
*@author 作者名
*@version 版本号
*@since 指明需要最早使用的jdk版本
*@param 参数名
*@return 返回值情况
*@throws 异常抛出情况
*/
java控制流程
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
scanner.close();
scanner.next() scanner.nextLine()
scanner.hasNext() scanner.hasNextLine()
数组:int[] nums = new int[10];
格式:dataType[] arrayRefVar = new dataType[arraySize];
public void func(int n,double… numbers)
numbers是一个数组
java面向对象
一旦定义了有参构造 无参就必须显示定义
父类的引用可以指向子类
(父类) test = new (子类)();
对象能执行哪些方法只看左边的类型
方法的重写:只有非静态(实例) 子类方法范围不能变小
父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的
父类中的一个方法只有在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用
对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。也可以叫做动态绑定。
想使用子类方法:
((son)obj).fuc();强制转换
静态代码块>匿名代码块>构造方法
静态代码块只运行一次(无论构造多少次)
抽象类无法实例化 抽象类可以写普通的方法
catch可以写多个
try{
}catch(Exception e){
}finally{
}
throw new Exception()主动抛出异常
try{
}catch(Exception e){
}finally{
}
throw new Exception()主动抛出异常
throws方法抛出