自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试真题打卡(十九)

双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应有自己的父类加载器。双亲委派模型的工作过程是,如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到最顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己去完成加载。使用双亲委派模型来组织类加载器之间的关系,一个显而易见的好处就是Java中的类随着它的类加载器一起具备了一种带有优先级的层次关系。

2023-06-11 10:51:28 67

原创 面试真题打卡(十八)

更具体的处理思路是,让G1收集器去跟踪各个Region里面的垃圾堆积的“价值”大小,价值即回收所获得的空间大小以及回收所需时间的经验值,然后在后台维护一个优先级列表,每次根据用户设定允许的收集停顿时间,优先处理回收价值收益最大的那些Region,这也就是“Garbage First”名字的由来。3.重新标记阶段则是为了修正并发标记期间,因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,这个阶段的停顿时间通常会比初始标记阶段稍长一些,但也远比并发标记阶段的时间短。二、请你讲下G1垃圾回收器。

2023-06-10 16:19:32 64

原创 面试真题打卡(十七)

1. 标记清除算法 算法分为“标记”和“清除”两个阶段,首先标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未被标记的对象。3. 标记整理算法 针对老年代对象的存亡特征,1974年Edward Lueders提出了另外一种有针对性的“标记-整理”算法,其中的标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向内存空间一端移动,然后直接清理掉边界以外的内存。虚引用是最弱的一种引用关系。

2023-06-09 15:36:01 65

原创 面试真题打卡(十六)

虚拟机栈描述的是Java方法执行的线程内存模型:每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧用于存储局部变量表、操作数栈、动态连接、方法出口等信息。3. 本地方法栈 本地方法栈与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机栈为虚拟机执行Java方法服务,而本地方法栈则是为虚拟机使用到的本地方法服务。运行时常量池是方法区的一部分。在运行时数据区所包含的几块内存空间中,方法区和堆是线程之间共享的内存区域,而虚拟机栈、本地方法栈、程序技术器则是线程私有的区域,就是说每个线程都有自己的这个区域。

2023-06-07 23:08:43 49

原创 面试真题打卡(十五)

与传统的多线程/多进程模型比,I/O多路复用的最大优势是系统开销小,系统不需要创建新的额外进程或者线程,也不需要维护这些进程和线程的运行,降低了系统的维护工作量,节省了系统资源。目前支持I/O多路复用的系统调用有select、pselect、poll、epoll,在Linux网络编程过程中,很长一段时间都使用select做轮询和网络事件通知,然而select的一些固有缺陷导致了它的应用受到了很大的限制,最终Linux不得不在新的内核版本中寻找select的替代方案,最终选择了epoll。

2023-06-06 22:52:32 30

原创 面试真题打卡(十四)

BIO、NIO、O这五种模型中的三种,他们分别是阻塞I/O模型、非阻塞I/O模型、异步I/O模型的缩写。List和Set都是Collection接口的子接口,它们的主要区别在于元素的有序性和重复性:List代表有的元素的可以重复,集合中每个元素都有对应的顺序索引,并且可以通过索引来访问指定位置的集合元素。根据UNIX网络编程对I/O模型的分类,UNIX提供了5种I/O模型,分别是阻塞I/O模型、非阻塞I/O模型、I/O复用模型、型号驱动I/O模型、异步I/O模型。三、请你说说BIO、NIO、O。

2023-06-04 17:34:02 68

原创 面试真题打卡(十三)

ConcurrentHashMap ConcurrentHashMap是线程安全且高效的HashMap,并且在JDK8中进行了升级,使其在JDK7的基础上进一步降低了锁的粒度,从而提高了并发的能力。另外,如果计算出来的迁移数量小于16,则强制将其改为16,这是考虑到目前服务器领域主流的CPU运行速度,每次处理的任务过少,对于CPU的算例也是一种浪费。除此以外,Collections还提供了如下三类方法来返回一个不可变的集合,这三类方法的参数是原有的集合对象,返回值是该集合的”只读“版本。

2023-06-03 14:02:41 86

原创 面试真题打卡(十二)

HashMap是基于哈希算法来确定元素的位置(槽)的,当我们集合中存入数据时,它会计算传入的Key的哈希值,并利用哈希值取余来确定槽的位置。java.util包下的集合类中,大部分都是非线程安全的,但也有少数的线程安全的集合类,例如Vector、Hashtable,他们都是非常古老的API。虽然它们是线程安全的,但是性能很差,已经不推荐使用了。对于这个包下非线程安全的集合,可以利用Collections工具类,该工具类提供的synchronizedXxx()方法,可以将这些集合包装成线程安全的集合类。

2023-06-01 22:52:57 39

原创 面试真题打卡(十一)

这些方法都有四个参数:var1、var2、var4、var5,其中var1代表要操作的对象,var2代表要替换的成员变量,var4代表期望的值,var5代表更新的值。Java提供了众多集合的实现类,它们都是这些接口的直接或间接的实现类,其中比较常用的有:HashSet、TreeSet、ArrayList、LinkedList、ArrayDeque、HashMap、TreeMap等。java.util包下的集合类中,也有少数的线程安全的集合类,例如Vector、Hashtable,它们都是非常古老的API。

2023-05-31 23:22:36 33

原创 面试真题打卡(十)

线程池需要依赖一些参数来控制任务的执行流程,其中最重要的参数有:corePoolSize(核心线程数)、workQueue(等待队列)、maxinumPoolSize(最大线程数)、handler(拒绝策略)、keepAliveTime(空闲线程存活时间)。JDK为我们提供了一个名为Executors的线程池的创建工具,该工具创建出来的就是带有无界队列的线程池,所以一般在工作中我们是不建议使用这个类来创建线程池的。ThreadLocal,即线程变量,它将需要并发访问的资源复制多份,让每个线程拥有一份资源。

2023-05-30 23:41:53 29

原创 面试真题打卡(九)

synchronized和Lock都是锁,都是线程同步的手段,它们的区别主要体现在如下三个方面: 1. 使用方式的区别 synchronized关键字可以作用在静态方法、实例方法和代码块上,它是一种隐式锁,即我们无需显式地获取和释放锁,所以使用起来十分的方便。偏向锁,顾名思义就是锁偏向于某一个线程。当一个线程访问同步块并获取锁时,会在对象头和栈帧中的锁记录里存储锁偏向的线程ID,以后该线程再进入和退出同步块时就不需要做加锁和解锁操作了,只需要简单地测试一下Mark Word里是否存储着自己的线程ID即可。

2023-05-29 22:54:59 75

原创 面试真题打卡(八)

通过名字就能看出他们的含义了,当通过Condition调用await()时当前线程释放锁并等待,当通过Condition调用signal()时则唤醒一个等待的线程,当通过Condition调用signalAll()时则唤醒所有等待的线程。AQS是队列同步器,是用来构建锁的基础框架,Lock实现类都是基于AQS实现的。2.加在静态方法上,则锁是当前类的Class对象。在具体的Lock实例中,锁的实现是通过继承AQS来实现的,并且可以根据锁的使用场景,派生出公平锁、不公平锁、读锁、写锁等具体的实现。

2023-05-28 13:19:03 44 1

原创 面试真题打卡(七)

进入等待状态的线程需要其他线程的通知才能返回到可运行状态,而超时等待状态相当于在等待状态的基础上增加了超时限制,除了其他线程的唤醒,在超出时间到达时也会返回运行状态。此外,线程在执行同步方法时,在没有获取到锁的情况下,会进入到阻塞状态。Condition对象是通过Lock对象创建出来的,它的await()方法会导致线程进入WTING状态,他的带超时参数的await()方法会导致线程进入TIMED_WTING状态,当调用它的signal()/signalAll()方法时,线程会被唤醒从而返回。

2023-05-27 15:19:06 72 1

原创 面试真题打卡(六)

而继承父类和实现接口这两种方式的优缺点是:- 采用接口的方式创建线程,优点是线程类还可以继承于其他类,并且多个线程可以共享一个线程体,适合多个线程处理同一份资源的情况。另外还有更极端的情况,例如程序在运行时接收到了外部传入的一个对象,这个对象的编译时类型是Object,但程序又需要调用这个对象运行时类型的方法,这种情况下,有两种解决方法:第一种做法是假设在编译时和运行时都完全知道类型的具体信息,在这种情况下,可以先使用instanceof运算符进行判断,再利用强制类型转换将其转换成其运行时类型的变量。

2023-05-26 14:07:31 47 1

原创 面试真题打卡(五)

提高代码的可扩展性,很多开源框架的扩展接口都是通过继承父类来完成的。其中,封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,让外部程序通过该类提供的方法来实现对内部信息的操作和访问,这种做法有助于规范使用者的行为,让使用者只能通过事先预定的方法访问数据,提高了代码的可维护性;继承是面向对象实现代码复用的重要手段,Java通过extends作为关键字实现类的继承,实现继承的类被称为子类,被继承的类称为父类(有的也被称为积累和超类),父类和子类的关系是一种一般和特殊的关系;

2023-05-25 16:25:58 70 1

原创 面试真题打卡(四)

比如,所有的引用类型的变量都继承于Object类,都可以当做Object类型的变量使用,但基本数据类型却不可以。如果业务代码放生异常,系统就会创建一个异常对象,并将这个异常对象提交个JVM,然后由JVM寻找可以处理这个异常的catch块,并将异常对象交给这个catch块处理。- 表示当前方法不知道如何这个异常,这个异常由该方法的调用者处理(如果mn方法也不知该怎么处理异常,这个异常就会交给JVM处理,JVM处理异常的方式是,打印异常跟踪栈信息并终止程序运行,这也就是为什么程序遇到异常会自动结束的原因)。

2023-05-23 23:45:19 34 1

原创 面试真题打卡(三)

EQUALS()方法时OBJECT类提供的一个实例方法,所以所有的引用变量都能调用EQUALS()方法来判断是否与其他引用变量相等,但使用这个方法来判断两个引用对象是否相等的判断标准与使用==运算符没有区别,它同样要求两个引用变量指向同一个对象才会返回TRUE,但如果这样的话EQUALS()方法就没有了存在的意义,所以如果我们希望自定义判断相等的标准时,可以通过重写EQUALS方法来实现。重写EQUALS()方法时,相等条件是由业务要求决定的,因此EQUALS()方法的实现是由业务要求决定的。

2023-05-22 11:24:31 50 1

原创 面试真题打卡(二)

加分回答 对于final修饰的成员变量而言,一旦有了初始值就不能被重新赋值,如果既没有在定义成员变量时指定初始值,也没有再初始化块、构造器中为成员变量指定初始值,那么这个成员变量就一直是系统默认分配的0、‘\u0000’、false或者null,那么这个成员变量就失去了存在的意义,所以Java语法规定:final修饰的成员变量必须由程序员显示的指定初始值。类变量不能在普通初始化块中指定初始值,应为类变量在类初始化阶段已经被初始化了,普通的初始化块不能为其重新赋值。类成员属于整个类,不属于单个对象。

2023-05-21 08:30:00 33 1

原创 面试真题打卡(一)

抽象类作为多个子类的父类,它可以被当作系统实现过程中的中间产品,这个中间产品已经实现了系统的部分功能,但这个产品依然不能当作最终产品,必须要有更进一步的完善。其中int是最常用的整数类型,double是最为常用的浮点类型,除了布尔类型之外的其他7个类型,都可以看作是数字类型,它们之间可以进行类型转换。Java还提供了很多内置的类库,通过这些类库,简化了开发人员的程序设计工作,缩短了项目的开发时间,最重要的是Java提供了垃圾回收器,这也将开发人员从对内存的管理中解脱出来。三、请你说一下抽象类和接口的区别?

2023-05-20 10:25:30 37

原创 nacos下载与安装教程windows版

Nacos是SpringCloudAlibaba架构中最重要的组件。Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。能够无缝对接Springcloud、Spring、Dubbo等流行框架。nacos支持a(高可用)p(分区容错)和c(一致性)p的切换默认为ap, eureka仅支持ap,zookeeper仅支持cp。

2023-03-17 23:37:17 1713 1

空空如也

空空如也

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

TA关注的人

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