Java核心知识
文章平均质量分 82
Java核心知识
爱幻想-hjyp
遇到坎就得迈过去
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java核心知识】idea项目编译错误排查思路
在开始之前,我们需要知道idea对一个项目是如何维护和运行的?对于一个新的项目,首先需要重点关注两个地方,一个是。,在这里可以配置本项目编译所使用的。文件夹中,这里保存了许多缓存。路径,以及如何编译的选项;文件中的内容进行编译安装。会把用户自定义配置放在。,这里可以配置项目的。原创 2023-09-11 16:41:53 · 2183 阅读 · 0 评论 -
【Java核心知识】泛型和类型擦除
Java中的泛型是通过定义模板参数来处理一类操作,这类操作并不关心具体传入的参数类型。比如对于add()方法来说,我们可以使两个int相加,也可以使两个long相加,如果不使用泛型,因为函数签名是通过参数类型区分的,那么就会造成需要写两个方法的问题.但这两个方法内部的逻辑是一致的,只是传入参数不相同,况且方法内部也并不关心你传入的参数类型。针对这种情况,我们可以使用泛型``解决,泛型并不会限定你传入的参数类型,它只关心方法内部的逻辑操作`。常见的集合类都使用了泛型。原创 2023-09-03 17:33:59 · 582 阅读 · 0 评论 -
【Java核心知识】JUC包相关知识
比如线程A修改完变量后,准备刷回主存,这时发生了线程调度,线程B知道自己的数据失效了,但是从主存中重新获取的数据不一定是最新的,因为线程A只是在本地修改了数据,但还没有写入主存。线程在解锁时,需要把工作内存中最新的共享变量的值写入到主存,以此来保证共享变量的可见性。乐观锁本质上是无锁的,每次更新前都把原来的旧值和要更新的新值一块传入,如果发现传入的旧值和当前内存上的旧值一样,则更新成功;乐观锁就是一直调用CAS操作,不断获取旧值,计算新值,然后传入旧值和新值进行更新,线程一直在自旋,直到更新成功为止。原创 2023-09-03 17:15:25 · 984 阅读 · 0 评论 -
【Java核心知识】ThreadLocal相关知识
类可以为每个线程保存一份独有的变量,该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个key为变量的namevalue为变量的值。在日常使用中,我们可以通过set(value)方法设置值,然后通过get()方法获取值,示例代码如下:我们通过线程池执行了五个线程,每个线程都有一份自己独有的id变量,实现了线程间的数据隔离。传统的HashMap是链地址法,发生碰撞放入桶内;是开放地址法,发生冲突放到后一位。原创 2023-09-02 21:21:10 · 1050 阅读 · 0 评论 -
【Java核心知识】线程池相关知识
如果线程数已经等于核心线程数,如果排队队列还没满,提交新任务会放入队列中;如果对列已满,则会创建非核心线程,只有排队队列满了之后才会创建新的线程。当然还需要判断当前活跃的线程数,当线程数等于核心线程数之后,就不会回收线程了。当线程池中线程小于核心线程数时,每提交一个任务都会创建一个线程,无论是否有空闲线程;,运行过程中,线程会不断地尝试从阻塞队列中获取任务,如果获取到任务就执行,否则阻塞。当线程数超过核心线程后,这些多余的线程如何回收呢?,缓存队列会保存许多待完成的任务,最终存储队列过大会导致。原创 2023-09-02 14:35:13 · 361 阅读 · 1 评论 -
【Java核心知识】线程基础知识
如果使用第一种方法创建线程,创建线程时需要new Thread,如果采用继承方法,那么每个线程的数量都是各自享有的,不能共同合作;如果采用实现Runnable接口,创建线程时,可以多个线程共享一个Runnable接口实例,从而多个线程共享数据,相互合作。接口,该接口继承了Runnable和Future接口,可以作为Thread类的target。继承Thread类,创建一个新的线程类,同时重写run方法。,线程每进入一个方法,就会分配一个栈帧,栈帧保存着方法中的。(如进程ID和进程名称,进程状态。原创 2023-09-02 14:22:39 · 255 阅读 · 0 评论
分享