自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是可重入锁?

可重入锁是某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。再次获取锁的时候会判断当前线程是否是已经加锁的线程,如果是对锁的次数+1,释放锁的时候加了几次锁,就需要释放几次锁。代码中的锁的递归只是锁的一种表现及证明形式,除了这种形式外,还有另一种表现形式。同一个线程在没有释放锁的情况下多次调用一个加锁方法,如果成功,则也说明是可重入锁。

2023-11-02 09:38:04 42 1

原创 什么是AQS?

2、在AOS中,维护了一个信号量state和一个线程组成的双向链表队列。其中,这个线程队列,就是用来给线程排队的,而state就像是一个红绿灯,用来控制线程排队或者放行的。在不同的场景下,有不用的意义。1、AOS(AbstractQueuedSynchronizer)是一个JAVA线程同步的框架。是JDK中很多锁工具的核心实现框架。

2023-11-02 09:26:22 36 1

原创 Java如何让开启线程?怎么保证线程安全?

谈到线程,首先就应该想到进程。进程是操作系统进行资源分配的最小单元。线程是操作系统进行任务分配的最小单元。3、实现Callable接口,实现call方法。通过FutureTask创建一个线程,获取到线程执行的返回值。加锁:1、JVM提供的锁,也就是Synchronized关键字。2、JDK提供的各种锁Lock。2、实现Runnable接口,实现run方法。1、继承Thread类,重写run方法。4、通过线程池来开启线程。二、怎么保证线程安全?

2023-11-01 21:36:40 44 1

原创 为什么使用线程池?线程池中的参数?

③· keepAliveTime、unit 表示超出核心线程数之外的线程的空闲存活时间,也就是核心线程不会消除,但是超出核心线程数的部分线程如果空闲一定的时间则会被消除,我们可以通setkeepAliveTime 来设置空闲时间。②· maxinumPoolsize 代表的是最大线程数,它与核心线程数相对应,表示最大允许被创建的线程数,比如当前任务较多,将核心线程数都用完了,还无法满足需求时,此时就会创建新的线程,但是线程池内线程总数不会超过最大线程数。提高线程利用率,降低创建和销毁线程的消耗。

2023-11-01 15:42:56 40 1

原创 Java并发的三大特性

volatile保证可见性、禁止指令重排,但是不保证原子性;synchronized保证了有序,可见,原子性,volatile不会造成线程阻塞,synchronized可能会造成线程的阻塞,所以后面才有锁优化和无锁编程。3、有序性:指令重排是指在程序执行过程中,为了提高性能, 编译器和CPU可能会对指令进行重新排序,在单线程中这完全没问题,还能提高性能,而在多线程中却有很多问题,会出现重排后结果不一致问题。所有的子操作都是一个整体,要么同时全部执行,要么同时不执行,且在执行过程中,不能被挂起,直到执行完。

2023-11-01 15:27:38 127 1

原创 Java线程的初步理解(现成的生命周期和状态,以及sleep、wait、yield、join的理解)

1、线程通常有五种状态:新建、就绪、运行、阻塞、死亡。

2023-10-31 23:08:47 44 1

原创 Java面试:GC如何判断对象可以被回收

两种判断是否还存在引用的方法:可达性分析法(Java使用的)和引用计数器法(引用计数器法存在循环依赖的问题,会导致对象永远存在依赖而无法被回收)。jvm队中对象是否可以回收取决于该对象是否还在被引用,如果已经没有引用,则可以被回收。

2023-10-31 21:49:34 63

原创 面试:为什么重写equals()方法之后要重写hashcode()方法

3.如果两个对象相等,那么他们的 hashCode 就一定相同,在 Java 的一些集合类的实现中,在比较两个对象是否相等时,会根据上面的原则,先调用对象的hashCode()方法得到 hashCode 进行比较,如果 hashCode 不相同,就可以直接认为这两个对象不相同,如果 hashCode 相同,那么就会进一步调用equals()方法进行比较。2.如果两个对象的 hashCode 相同,不代表这两个对象一定是同一个对象,也可能是两个不同的对象;

2023-10-31 18:26:58 22

原创 Java面试题:jdk、jre、jvm

jdk包含了jre,同时还包括Java源码的编译器javac、监控工具jconsole、分析工具jvisualvm等。jvm:Java virtual machine(Java虚拟机)。jvm包含Java应用程序的类的解释器和类加载器等。jvm是实现跨平台的最核心部分,.class文件会在jvm上运行,jvm会解释给操作系统执行。jre:Java runtime environment(Java运行时环境)。即Java程序的运行时环境,包含了Java虚拟机,Java基础类库。

2023-10-30 20:21:23 62 1

原创 java面试题:面向对象的特征

2、继承是从已有的类中派生出新的类,新的类继承父类的属性和行为,并能扩展新的能力,大大增加程序的重用性和易维护性。在Java中是单继承的,也就是说一个子类只有一个父类。3、多态是同一个行为具有多个不同表现形式的能力。在不修改程序代码的情况下改变程序运行时绑定的代码。实现多态的三要素:继承、重写、父类引用指向子类对象。1、封装就是将类的信息隐藏在类内部,不允许外部程序直接访问,而是通过该类的方法实现对隐藏信息的操作和访问。良好的封装能够减少耦合。面向对象三大特性:封装,继承,多态。

2023-10-30 20:11:03 31

空空如也

空空如也

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

TA关注的人

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