1.标准输出流
/*standard output stream*/
PrintWriter stdout = new PrintWriter(System.out,true);
/*standard error stream*/
PrintWriter stderr = new PrintWriter(System.err,true);
2.遍历移除数组
Iterator<Student> i = vector.iterator();
while(i.hasNext()) {
int stuGrade = i.next().getGrade();
if(stuGrade < grade)i.remove();
}//不能使用vector.remove(i),因为删除过后会影响后面的判断
3.equals比较两个变量是否相同
equals是比较值是否相等
==
1.基本类型:比较值相等
2.引用类型:比较地址是否相等
类
1.object的tostring方法,会把对象的属性转化成Student[328,Galileo Galilei,80]这种格式
2.this 可以用来区分域变量与局部变量 this.name = name(this用在类中可以调用自己的方法与属性)
比如在类中有一个a属性,在类方法中有一个a属性。可以使用this区分
3.一个类只能有一个父类(class Student extends Person)
继承存在属性和方法
4.使用this super以区别父类与子类的属性和方法(父类用super)
5.构造方法是不能继承的 但可以在构造函数中调用父类的构造方法
Student(){
super(name,age); super必须放在第一句
this.school = school;
}
6.类的修饰符:public abstract
7.其他修饰符:
private:无法被外部访问,包括子类
protected:无法被外部访问,子类可访问
static:修饰全局变量、方法
final:不可改变
abstract修饰方法:表示该方法未被实现,需要子类实现 抽象方法只能存在于抽象类
8.静态代码块
public class Driver extends NonRegisteringDriver implements java.sql.Driver{
static{
try{
java.sql.DriverManager.registerDriver(new Driver());
}catch (SQLException E)
throw new RuntimeException("can not register driver!")
}
}
只要你用与这个类相关的东西,这个静态代码块就会执行
反射
java反射机制class类是java虚拟机在加载类时所创建的 class也可以叫做类的类
ClassLoader目前的个人理解,类加载器就是用来加载类的 那个视频里面有点问题 可以直接.Class.getResourceAsStream()
getResourceAsStream的几种情况 主要是看总结
接口
1.接口是一种引用类型 其中的方法都是自动public abstract
2.接口中的变量(type NAME = value)自动public static final
3.java8及以上接口中可以定义默认方法(default)引用的类中可以不用再实现
异常
1.如果是不可查异常(unchecked exception),即Error、RuntimeException或它们的子类,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在运行时会被系统抛出。
2.必须抛出或处理任何可能发生的可查异常(checked exception)。即如果一个方法可能出现受可查异常,要么用try-catch语句捕获,要么用throws子句声明将它抛出,否则会导致编译错误
3.throw总是出现在函数体中,用来抛出一个Throwable类型的异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
如果所有方法都层层上抛获取的异常,最终JVM会进行处理,处理也很简单,就是打印异常消息和堆栈信息。如果抛出的是Error或RuntimeException,则该方法的调用者可选择处理该异常。
线程
锁:访问对象实例和类变量的特权
1.Synchronized修饰类 修饰类行为
Synchronized(this)修饰代码块
迭代器
1.vector相当于现在的ArrayList 迭代器包含于集合数据类型(指定vector类型才能更好的使用)
IO
节点流:直接与节点(如文件)相连
处理流:对节点流或其他处理流的一些包装
一个流对象经过多次包装叫做流的链接或者链式处理
一些词语与注意
1.多态:一个程序中相同的名字表示不同含义的情况
重载 覆盖(子类中定义了与父类相同的行为)
2.封装:1.private2.创建一对赋取值方法 setvalue(){};getvalue(){};
3.单线程:一分钟只有一个程序使用
多线程:一分钟划为多份 多个程序单独使用
4.进程:一个程序的执行 线程:程序中单个顺序的控制流称为线程
5.java.lang(包名).Math(类名)包名以小写字母开头
6.java纯面向对象:java所有东西都是对象
7.break对于switch很重要 假如不加 会导致执行多个case(不会判断)