java基础

Java基础

  1. 基本数据类型

Name | 字节数 | 初始值

  • | :-: | -:
    byte | 1| 0
    char | 2 | 空格
    short | 2 | 0
    int | 4| 0
    float | 4 | 0.0f
    long | 8 | 0L
    double | 8| 0.0d
    char | 2 | 空格
    boolean | 不明确 | false
  1. 获得变量类型:
    1.System.out.println(TypeToolsTest2.class.getDeclaredField("ii").getType()); //成员变量
    2.System.out.println(Integer.class.isInstance(ii));
    3.泛型T.getClass().getName();

  2. Java 会对 -128~127 的整数进行缓存
    因此Integer a=128;Integer b=128;xx c=127;xx d=127
    a!=b but c==d (IntegerCache.class)
    == 它比较的是对象的地址;equals 比较的是对象的内容

  3. IO:
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));br.read();/br.readLine();
    类图

  4. 类的实例化顺序:父类static,子类static,父类普通代码,父类构造,子类普通,子类构造

  5. 强引用:用关键词new出来的对象,强引用锁指向的对象在任何时候都不会被回收 ,即使内存不足,抛出错误。

  6. 集合:根接口Collection,List(有序可重复),Set(无序不重复)接口都继承他。Map是单独的。

    LinkedList:底层用双链表实现:增加删除效率高
    ArrayList:底层用数组实现:查找效率高
    Vector:实现了一个动态数组。和ArrayList相似,但是有以下不同:vector是同步的; vector包含了许多传统方法,或者只是需要一个可以改变大小的数组的情况。
    Stack:先进后出
    HashSet:HashSet不存入重复元素的规则.使用hashcode和equals
    LinkedHashSet:是对LinkedHashMap的简单包装,对LinkedHashSet的函数调用都会转换成合适的LinkedHashMap方法
    TreeSet:让存入的元素自定义比较规则;给TreeSet指定排序规则
    7.HashMap和HashSet的区别
    前者可以接受键和值为null,线程不安全,单线程效率高;后者线程安全,Java5后可以由CurrentHashMap替代。前者不能保证数据的顺序随着时间的推移不变。

comments powered by Disqus