Java重点复习

Java重点复习

  • 访问权限修饰符【从大到小】------《Java编程思想》

    public---公共的

    protected

    default/friendly---包访问权限 package

    private---私有的


    Java四种访问权限修饰符.png
  • 关键字

    static、final、this、super

    class、abstract class、interface

    constructor---构造方法

    switch、case、break

    for、forEach---增强for循环、while、do-while、continue、break

    return

    toString、hashCode、equals---Object

  • 方法重写、重载

    @Override :在继承关系中,子类重写父类中的方法,【方法头部相同,方法体不同】。

    @Overload:在一个类中,有多个具有【相同名字】的方法,但是方法【参数列表不同:个数不同、顺序不同、类型不同】

  • 常用Java集合类

    Collection集合

    Iterator迭代器,集合专用遍历方式---hasNext、next方法

    List【ArrayList、LinkedList】

    Set【HashSet、TreeSet、Compartor、重写hashCode和equals方法】

    Map【HashMap、TreeMap、ConcurrentHashMap】

    Map遍历的2中方式:keySet、EntrySet

    Map常用方法:containsKey、containsValue

  • 数据结构:队列和栈

    Queue队列:First Input First Output---FIFO元素先入先出

    Stack栈-------十进制转换为二进制----

  • 类加载 和 反射机制

    • classloader 类加载器

    • 反射概述:运行状态中,任一类都能被知晓和调用,类的所有属性和方法(包括构造方法)。

    • Field

    • Constructor

    • Method

    • 类的私有构造方法,暴力反射---setAccessible(true)

  • 多线程

    • 进程---process名词、线程---thread,以及两者间的区别?

    • 并发和并行

    • 创建线程三种方式:继承Thread类、实现Runnable接口,同时重写run方法、实现Callable接口

    • thread.start() 、thread.run() ---两者区别?

    • thread.sleep()、thread.wait() ---两者区别?

    • currentThread---当前线程

    • ThreadLocal当前线程

    • synchronized关键字:一个时间内只能有一个线程得到执行,其他线程必须等待当前线程执行完后才能执行该代码块

    • 多线程协作:生产者-消费者模式 Producer Consumer

    • 线程之间的协作【经典场景-生产者消费者模式】:sleep、wait、notify、notifyAll、synchronized

    • 线程的6中状态 :

      1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。

      2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。

      3. 阻塞(BLOCKED):表示线程阻塞于锁。

      4. 等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。

      5. 超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。

      6. 终止(TERMINATED):表示该线程已经执行完毕

Java线程6中状态图.png
  • 文件流操作
Java文件流.png
*   绝对路径---absolute path、相对路径---relative path

*   file文件、directory目录

*   buffer缓冲

*   序列化---java.io.Serializable

    java对象-----序列化------>字节序列;

    java对象<-----反序列化------字节序列;【dubbo远程调用对象传输,也需要类其实现序列化接口】

*   java.util.Properties 属性、load、store
  • Java错误、异常

    • try-catch-finally【try包裹可能出现异常代码;catch捕获异常、处理异常;finally常用于资源关闭】
Java错误与异常.png
  • 线程池

    • ThreadPoolExecutor---线程池执行器

    • 线程池核心参数

      corePoolSize---核心线程数量 10

      maximumPoolSize---最大线程数 15

      ArrayBlockingQueue---数组阻塞队列 200

      AbortPolicy---拒绝策略【抛异常、直接丢弃】抛异常

      【corePoolSize---ArrayBlockingQueue---maximumPoolSize---AbortPolicy】

      keepAliveTime---空闲线程最大存活时间

      TimeUnit---时间单位 秒-seconds

      defaultThreadFactory---默认线程工厂


      Java线程池核心参数.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容