基础
打开CMD
- win + R 输入 cmd
- 文件夹里,shift + 右键 ,在此处打开命令行
- 资源管理器地址栏前加cmd
常用的dos
# dir 文件目录
# cd /d f: 切换f盘
# cd .. 上一级
# cls 清屏
# md/rd 创/删文件夹
# cd>/del 创/删文件
jdk包含jre包含jvm
注释
// 单行注释
/*
多行注释
多行注释
*/
/**
@Javadoc 文档注释
*/
进制
// 正常十进制
// 010 八进制前0 8
// 0x10 十六进制前0x 16
类型转换
// 强制转换 高->低 避免内存溢出
// 自动转换 低->高
/* 布尔不能转
不能转不相干的类型
内存溢出和精度问题
*/
// 精度问题,低转高,要在计算之前进行类型转换
scanner
scanner s = new scanner(System.in);
if(s.hasNextLine()){
String str = s.next();
System.out.println(str);
}
s.close();
//next() 空格结束
//nextLine() 回车符结束
//nextInt() / nextFloat() / nextDouble()
重载
参数必须不同
返回类型可以相同可以不同
可变参数
参数类型后加省略号(…)
一个方法只能有一个,且必须是最后一个
public void test(int... i){//变长
}
test(1,2,23,3,4);
test(new double[]{1,2,3});
递归
尽量不递归
俩个部分
递归头 出口
递归体 入口
Arrays 类
//静态方法
fill() //数组填充
sort() //冒泡排序
equals() //比较数组
binarySearch() //二分查找
继承
//ctrl+h 查看继承树
//super 访问父类
//super() 默认调用父构造器,且必先调用父构造器
// 无参数自动调用,有参数手动
重写
//继承关系下,重写方法
//参数必须相同
//修饰符:范围可以扩大不能缩小
//public > protected > default > private
//Alt + Insert :override
多态
//首先要在继承的情况下
//多态是方法的多态,属性没有多态
public static void main(String[] args) {
test t1 = new test();
testSon t2 = new testSon();
test t3 = new testSon();
// testSon t4 = new test(); 错误
t1.run(); //father
t2.run(); //son
t3.run(); //son
t2.runself(); //runself
((testSon)t3).runself(); //runself
//左边是引用,右边是类型,具体调用结果看右边
//能调用哪些方法看左边
//父引用子类型可以强制转换
//父引用父类型强制转换会出错
}
// A instanceof B 判断A是不是B的实例
抽象类和接口
//抽象类只能继承,不能实现
//抽象方法只能在抽象类中,抽象类中可以有普通方法
//类单继承,接口可以多继承
//接口中一般不写属性,接口中的属性默认且只能是
//public static final
//抽象类abstract,接口interface
异常和错误
//错误是不可预见的,脱离程序员控制的,栈溢出等
//异常有检查性异常和运行时异常
//检查性异常如用户输入引起,也是不可预见的
//运行时异常是可能被程序员避免的异常
//try catch finally throw throws
try{
}catch(Exception e){//要捕获多个异常,从小到大
e.printStackTrace();//打印栈信息
}finally{//处理善后工作,终究会执行,可以没有,通常用来关闭资源
}
if(){
throw new xxxException();//主动抛出异常,一般在方法中用
}
public void test() throws xxxException{}
//ctrl + alt + t 代码生成
//多重catch后,可以加一个catch(Exception e)处理可能被遗漏的
//尽量处理异常,切忌只是打印出来
//尽量用finally释放占用的资源