备战秋招001(20230625)

文章目录

  • 前言
  • 一、今天学习了什么?
  • 二、关于问题的答案
    • 1.三者的区别
    • 2.自定义线程池
  • 总结


前言

提示:这里为每天自己的学习内容心情总结;

Learn By Doing,Now or Never,Writing is organized thinking.

今天的学习状态还是不太好,总是喜欢看B站,但是一步一步来吧,前阵子太摆烂了,加油。


提示:以下是本篇文章正文内容

一、今天学习了什么?

  1. finalfinallyfinalize,三者的区别?
  2. 自定义线程池。

二、关于问题的答案

1.三者的区别

final关键字,既可以修饰变量、也可以修饰方法、还可以修饰类。

当修饰的为时,该类就不能被继承了,比如常见的StringInteger等,但是该类的方法可以重载不能被重写。

当修饰的为方法时,方法不能被重写,可以被重载。

当修饰的为变量时,分为两种情况:

  • 基本数据类型,变量初始化后就不能再更改值,相当于常量;
  • 引用数据类型,变量指向的对象/内存地址,不能变化,但是对象本身的属性可以变。

finally,这个是和try–catch–finally一起使用的。保证无论代码块是否发生异常,最后还可以执行相应的操作,比如释放连接、释放锁资源,关闭I/O流等。
难点:return语句位与不同的位置时,会有不同的效果。

finalize,是Object类的方法。负责最后资源的关闭,JVM 会自动进行垃圾回收,释放内存空间。在垃圾回收前,会先调用对象的*finalize()*方法,用于释放对象所占用的资源。

2.自定义线程池

线程池主要有两部分组成:工作线程、阻塞队列。

工作线程,负责处理任务,有最大核心数,线程池中的工作线程的数量不能超过这个最大核心数。

阻塞队列,负责添加任务,需要考虑阻塞队列所能容纳最大任务的个数、当阻塞队列已满时,新的任务如何处理,对应的拒绝策略是什么。


总结

提示:这里对文章进行总结:

目前为止没啥难的,加油,希望明天能更认真学习。

你可能感兴趣的:(秋招打卡,jvm,java,数据结构)