`

java基础——记录曾经的不知

阅读更多

 

转载的不错的java基础,但是错别字,语句不通,个别地方知识点错误,但整体不错 点击

 

  1. 构造器(构造函数)实际上是static方法,隐式的,所以构造器不具有多态性;
  2. 默认构造器创建对象:无参数构造器默认会调用父类(如果存在)无参数构造(super()默认执行);
  3. 向上转型继承中出现,Super s = new Sub(); s对象就是SUb子类的向上转型;疏忽点:成员变量初始化和静态方法的调用,将调用Super父类的。
  4. 由于垃圾回收器只知道经由new分配的内存。
  5. 垃圾回收机制原理:三种:引用计数、停止复制、标记清除;
  • 引用计数:缺点是互相引用将无法计数为0,则无法垃圾回收;
  • 停止复制:从堆中将活的对象复制到另外一个堆,新堆紧凑排列。缺点是浪费一倍空间;
  • 标记清除:从栈、静态存储区开始标记活的对象,完成标记后清理未标记的对象。缺点是不紧凑连续。
  1. 非RAM存储数据存于程序之外:流对象、持久化对象。
  2. 泛型:局限性:基本数据类型不能作类的泛型类型参数。
  3. 泛型:我们没有办法从java内部,获取到泛型参数类型的信息,只能得到自定义的泛型符号,如:Map得到〈K,V〉。
  4. 泛型:泛型类内部经过擦除(erased)后,泛型类内部是得不到任何泛型类型类的信息。解决方法,内部引入类型标签(构造函数中记录泛型类型 T.class);
  5. 泛型:边界解决擦除后,泛型类内部使用泛型类型类属性与方法:class Test〈T extends JavaBean1&JavaBean2〉
  6. 接口:接口中的成员变量默认都是static和final的,可以裸关键字,即便没使用static和final关键字
  7. 接口:接口中的方法默认都是public的,可以裸关键字,即便没使用public关键字
  8. 接口:接口中可以声明和创建对象
  9. 抽象类:抽象类有构造函数, 但是却不能new一个对象.抽象类的普通方法可以声明为private的, 但却不能被任何对象使用.
  10. Class类信息:int.class == Integer.TYPE;
  11. Class类信息:加载分三步骤 一、加载:由类加载器执行,查找字节码,并依据字节码创建一个Class对象; 二、链接:检验字节码,分配静态属性空间,对其他类的引用; 三、初始化:对其超类初始化,启动构造器和静态代码块。初始化推迟到静态方法(构造函数也是静态方法)或者静态非常数的域(属性:包含非final修饰的常数属性和非常数属性)首次引用之后。
  12. 动态代理:@Override
    public Object invoke(Object arg0, Method arg1, Object[] arg2)
    throws Throwable {
    // // TODO Auto-generated method stub
    System.out.println(arg0 instanceof Interface2);
    Object obj = arg1.invoke(kind,arg2);
    System.out.println("after");
    return obj;
    } Interface si = new SimpleImplement(); Proxy.newProxyInstance(Interface.class.getClassLoader(), new Class[]{Interface.class,Interface2.class},new DynamicProxyHandle(si));
  13. 上12 的输出结果是 true ***** after;

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics