Java 学习001

来源:互联网 发布:linux命令 退出 编辑:程序博客网 时间:2024/06/16 04:03

值得注意的事情:

1)代码块执行顺序: 静态代码块 static{ }   > 构造代码块{ }> 构造函数
-----
finally{ }代码块的内容必须执行(除 System.out.exit(0)这种情况)
synchronized(对象){}同步锁代码块--锁定资源使之称为临界资源,一次仅限一个对象方问
2)线程:
1)创建线程:继承Thread类
2)实现Runnable接口---:
实现Runnable好处:避免但继承,资源共享【继承Thread类不能共享资源(锁定一个块蛋糕,而不是每个人发一个蛋糕),利用static可以做到,但是声明周期过长】,最好通过实现Runnable接口来创建线程

线程的各种构造:常见  new Thread(对象,线程名称)
currentThread()是Thread类中的静态方法   
getName()  setName()获取,设置线程名字--也可以通过构造方法设置线程名字
3)run方法时普通方法。调用start方法开启线程,并执行run方法
4)同步方法:synchronized 方法{}
      同步代码块:方法内部 synchronized(对象){//锁定资源的代码}对象一般用this代替
      对象锁:private Lock lock = new ReentrantLock();//创建Lock实例
lock.lock();  //锁定
需要上锁的代码
 lock.unlock();//释放锁
3)抽象类与接口中的不能描述的方法(抽象方法,接口中全是抽象方法),在其子类中实现
抽象类除了不能创建实例,多了抽象方法,其他与普通类一致;接口中有方法 public abstract,常量 public static 
接口特点:
 * 1.接中常见定义:常量,抽象方法
 * 2.接口中的成员都有固定默认修饰符
 * 常量  public static final  即全局常量
 *   方法 public abstract

4) static关键字
 *     特点:
 *      1.随着类的加载而加载,随着类的消失而消失
 *      2.优先于对象存在
 *      3.被所有对象所共享
 *      4.可以直接被类名所调用

 5) 多个对象当中存在共同数据--节约内存空间--初始化一次--static 
*===============面试点 
 * 在多态中成员函数的特点:
 * 在编译时期:参阅引用类型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败。
 * 在运行事情;参阅对象所属的类中是否有调用方法
 * 在成员函数在多态调用时,编译看左边,运行看右边
 * 
 * 在多态中,成员变量的特点
 * 无论编译还是运行都参考左边(引用变量所属的类)

6)第一行:super  this 【语句】位于构造函数第一行      package  包名位于程序文件第一行
super语句必须放在第一行:因此要么有super语句,要么只有this语句
父子类:子类所有构造方法第一行隐士存在super(),所以建立子类对象,首先访问的是父类的无参构造方法

7)fianl:最终,作为一个修饰符,
 *  1.可以修饰类,函数,变量
 *  2.被final修饰的类不可以被继承,为了避免被继承,被子类复写功能
 *  3.被fianl修饰的方法不可以被复写
 *  4.被fianal修饰的变量只能赋值一次(常量),既可以修饰成员变量,也可以修饰局部变量
 *  值不变的成员变量,需要加上static,全局常量 ,如圆周率public static final double PI = 3.14;
 *  5.内部类定义在类中的局部位置上,只能访问该局部被final修饰的局部变量

8)异常:将出现的问题描述并封装成对象
Throwable  子类:Error与 Exception
异常体系:
 * Throwable
 * --Error
 * --Exception
 * --RuntimeException
-------------------------------------------
 Exception:
  编译时被检测的异常
  编译时不被检查的异常(运行时异常RuntimeException及其子类)
-------------------------------------------
throw 和 throws用法
throw 定义在函数内,用于抛出异常定义
throws 定义在函数上,用于抛出异常,可以抛出多个异常用逗号隔开
-------------------------------------------
catch 捕获异常顺序:先捕获小的异常,在捕获到的异常
父子类中重写方法:子类抛出的异常只能时父类方法的子类或者子集(即抛出的异常比父类的异常范围小)
父类方法中没有抛出异常,子类重写的方法存在异常只能try异常
-------------------------------------------
自定义异常:继承Exception     对于不需要声明处理的异常:则继承RuntimeException

3中格式:
try{ }...catch(){ }
try{ }...catch(){ }finally{}
try{ }finally{}

------------------------------------------
System.err.println(e.getMessage());// 异常信息 / by zero
System.out.println(e.toString());//异常名称,异常信息
e.printStackTrace();//异常名称,异常信息 ,异常出现的位置
-----------------------------------------
9)equals()  对象比较的是地址  " ".equals(str)这种避免空指针错误

10)堆栈:
堆:对象,实体,数组等引用类型以及 非静态成员变量--存放
栈:局部变量,基本类型变量(地址存的是他的值),方法调用是会跑到栈里面(执行完就释放,从栈里删除)--存放
方法区:方法体,共享区(如类变量即静态成员变量),数据区--存放

0 0
原创粉丝点击