java学习总结

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(不会判断)

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值