自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 面试基础题

float f=3.4;是否正确? 不正确,精度不准确,应该用强制类型转换,如:float = (float)3.4或float f = 3.4f。 在Java中,没有小数点的默认是int,有小数点的默认是double,int转成long系统自动转换没有问题,因为后者精度更高,但是double转成float就不能自动转换了,所以后面得加上一个f java的基本数据类型转换 自动类型转换:小–>大 byte–>short–>int–>long–>float–>double

2021-01-09 21:35:43 60

原创 2020-12-13

线程池 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动给这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。 主要特点:线程复用、控制最大并发数、管理线程 降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗 提过响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行 提高线程的客观理想。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的

2020-12-13 21:46:13 55

原创 2020-12-09

Semaphore信号量 信号量主要用于两个目的,一个是用于多个共享资源的互斥作用,另一个用于并发线程数的控制 import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; /** * @autuor caipc * @date 2020/12/9 21:51 **/ public class SemaphoreDemo { public static void main(String[] args)

2020-12-09 22:17:12 74

原创 2020-12-08

CyclicBarrier 可循环(Cyclic)使用的屏障。让一组线程到达一个屏障(也可叫同步点)时被阻塞,知道最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CycliBarrier的await()方法 案例: package com.jian8.juc.conditionThread; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent

2020-12-08 22:46:20 56

原创 2020-12-08

CountDownLatch 使用介绍 它允许一个或多个线程一直等待,知道其他线程的操作执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行 CountDownLatch主要有两个方法,当一个或多个线程调用await()方法时,调用线程会被阻塞。其他线程调用countDown()方法会将计数器减1,当计数器的值变为0时,因调用await()方法被阻塞的线程才会被唤醒,继续执行 下面展示一些 内联代码片。 案例: public class CountD

2020-12-08 22:30:47 124

原创 2020-12-07

读写锁(ReentrantReadWriteLock) 概念 独占锁:指该锁一次只能被一个线程所持有,对ReentrantLock和Synchronized而言都是独占锁 共享锁:只该锁可被多个线程所持有 ReentrantReadWriteLock:其读锁是共享锁,写锁是独占锁 互斥锁:读锁的共享锁可以保证并发读是非常高效的,读写、写读、写写的过程是互斥的 例子: import java.util.HashMap; import java.util.Map; import java.uti

2020-12-07 22:42:46 45

原创 2020-12-06

自选锁 【自选锁】:是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式尝试去获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗cpu. 案例: /** * 实现自旋锁 * 自旋锁好处,循环比较获取知道成功位置,没有类似wait的阻塞 * * 通过CAS操作完成自旋锁,A线程先进来调用mylock方法自己持有锁5秒钟,B随后进来发现当前有线程持有锁,不是null,所以只能通过自旋等待,知道A释放锁后B随后抢到 */ public class SpinLoc

2020-12-06 21:42:42 63

原创 Spring面试点整理

Spring事务传播机制 事务传播行为类型说明 PROPAGATION_REQUIRED: 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 PROPAGATION_SUPPORTS : 支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY: 使用当前的事务,如果当前没有事务,就抛出异常。 PROPAGA...

2020-04-18 17:22:46 126

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除