• Java学习总结


    先对自己脑海中能瞬间出现的知识做一个罗列,后续再详细展开。

    1.java环境变量,JAVA_HOME,PATH:$JAVA_HOME/bin

    2.java基础数据类型:byte,boolean,char short,int,long,float,double.

    3.String是final修饰的不可变类,string适合做map的键值,它生来就有hash值.构造String的类有StringBulder和StringBuffer,常用方法有append()和toString(),后者是同步,线程安全的,但是效率比较低。

    4.Java对象的创建,可通过new或者clone或者反射得到对象。

    5.类加载,BootstrapClassLoader,ExtensionClassLoader,以及Application ClassLoader即用户自定义类加载,即ClassPath中的类加载。双亲委托,java类加载会首先使用父类,若父类中加载不到才会自己加载。

    6.新建的对象都在堆内存中,对象的引用存储在栈中,指向堆中的对象。新建对象在青年代,大对象直接放进老年代。对象GC,引用计数法和可达性分析来判断对象是否可以回收。另外,GC算法有 标记清除法(标记然后清楚,会造成堆中空间稀疏,各种空闲区域),复制法(需要一半空间闲置用于复制),标记整理法(标记然后移动到堆的边缘,接着统一回收),分区法(对不同区采用不同的回收算法)。标记清楚或者标记整理适合青年代,而复制法适合老年代,青年代中多次GC未被回收的对象会转到老年代,空间可拆分。

    7.Java集合框架,集合的顶层接口为Collection,Set(集合中元素不能重复)、Queue以及List的分别继承Collection.Set有HashSet(可为null),LinkedHashSet等,List有ArrarList,Vector以及LinkedList,其中还有线性表链表,线程安全与非线程安全之分。另外一个关键的是Map,Map有HashMap(可为null),Hashtable(不为null,线程安全),linkedHashMap还有ConcurentHashMap(分段hashtable)(高级,concurent包中),

    8.Java接口和抽象类。具有抽象方法的类即抽象类,继承抽象类必须实现父类的抽象方法;接口中的非default方法全部是抽象方法,属性全部默认是static final型,实现接口必须实现其所有的抽象方法。

    9.Java多线程,实现Runable或者Callable接口,后者有返回类型,还可以直接继承Thread类,使用时用start()方法,run()只会执行操作而不会开启新线程。

    10.线程同步,Synchronized修饰方法或者代码块,实现内部锁。ReentrantLock,同步锁,可以多次过得锁,但要记得释放,获得几次就要unlock()几次。Semaphone,信号量,可以限制方法访问的线程数量,每次访问要获取信号量,然后release()。

    线程通信可以通过Synchronized,while轮询以及wait/notify实现。多线程编程注意死锁。

    11.Volatile修饰的变量具有多线程可见性,直接读内存,具有一定的同步效果,CAS(CompareAndSet)原子操作;ThreadLocal,顾名思义,其修饰的变量在各线程中都有复制存在,成为各线程独立使用的变量,不具有线程共享性。

    12.迭代器Iterator,常用使用是 while(i.hasNext()){

      func(i.next());

    }

    13.for,while,do...while,循环的三种方法。break 和 continue。

    14.switch case,现在也可对字符串做switch选择了。

    15.error exception,都可以捕获,但是一般error不捕获,exception选择性捕获,一些RuntimeException可以适当抛出

    16.数组。。。数组越界问题

    17.TimerTask

    18.日期操作,DateFormat,Calendar

    19.NIO,Socket

    20.泛型以及java 反射。

  • 相关阅读:
    jQuery使用工具集
    JQuery解决鼠标单双击冲突问题
    线程池
    配置文件application.properties参数详解
    SpringBoot整合SpringDataJPA
    获取数据库的自增主键(六)
    【使用篇二】邮箱自动化配置集成(18)
    Quartz自动化配置集成
    Cron表达式详解
    标准盒模型和怪异盒模型的区别
  • 原文地址:https://www.cnblogs.com/microbear/p/7465524.html
Copyright © 2020-2023  润新知