叶秋学长
Stay hungry,stay foolish. 求知若饥,虚心若愚。CSDN内容合伙人,蓝桥云课签约作者,阿里云大咖问答开发与运维版板主,阿里云专家博主,华为云享专家博主,全栈领域新星创作者,新星计划第三季人工智能赛道TOP2;全栈领域创作者
展开
-
阿里巴巴面试题- - -Spring篇(四十五)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-10 12:36:42 · 10712 阅读 · 139 评论 -
阿里巴巴面试题- - -JVM篇(十四)
Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~...原创 2022-10-18 00:04:13 · 6638 阅读 · 102 评论 -
阿里巴巴面试题- - -多线程&并发篇(二十九)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-25 00:24:59 · 8420 阅读 · 8 评论 -
阿里巴巴面试题- - -Spring篇(四十七)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-11-08 23:55:51 · 4990 阅读 · 3 评论 -
阿里巴巴面试题- - -Spring篇(四十六)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-11-07 11:15:39 · 4238 阅读 · 2 评论 -
阿里巴巴面试题- - -Spring篇(四十四)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-11-05 11:40:52 · 1317 阅读 · 2 评论 -
阿里巴巴面试题- - -Spring篇(四十三)
Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。...原创 2022-11-03 00:11:22 · 269 阅读 · 5 评论 -
阿里巴巴面试题- - -多线程&并发篇(四十二)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-31 00:52:27 · 9136 阅读 · 15 评论 -
阿里巴巴面试题- - -多线程&并发篇(四十一)
在上下文切换过程中,CPU会停止处理当前运行的程序,并保存当前程序运行的具体位置以便之后继续运行。从这个角度来看,上下文切换有点像我们同时阅读几本书,在来回切换书本的同时我们需要记住每本书当前读到的页码。在程序中,上下文切换过程中的“页码”信息是保存在进程控制块(PCB)中的。PCB还经常被称作“切换桢”(switchframe)。“页码”信息会一直保存到CPU的内存中,直到他们被再次使用。上下文切换是存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行。...原创 2022-10-15 09:51:10 · 2635 阅读 · 5 评论 -
阿里巴巴面试题- - -多线程&并发篇(四十)
Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值。可以认为是带有回调的Runnable。Future接口表示异步任务,是还没有完成的任务给出的未来结果。所以说Callable用于产生结果,Future用于获取结果。阻塞队列。...原创 2022-10-14 01:28:03 · 2273 阅读 · 2 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十九)
简单说一下AQS,AQS全称为AbstractQueuedSychronizer,翻译过来应该是抽象队列同步器。如果说java.util.concurrent的基础是CAS的话,那么AQS就是整个Java并发包的核心了,ReentrantLock、CountDownLatch、Semaphore等等都用到了它。AQS实际上以双向队列的形式连接所有的Entry,比方说ReentrantLock,所有等待的线程都被放在一个Entry中并连成双向队。...原创 2022-10-30 09:27:11 · 9108 阅读 · 1 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十四)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-29 00:04:22 · 4518 阅读 · 0 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十三)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-28 10:48:49 · 2644 阅读 · 2 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十一)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-27 00:08:34 · 247 阅读 · 2 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十)
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量 的值也和预期的是一样的,就是线程安全的。一个线程安全的计数器类的同一个实例对象在被多个线程使用的情况下也不会出现计算失误。很显然你可以将集合类分 成两组,线程安全和非线程安全的。Vector 是用同步方法来实现线程安全的, 而和它相似的ArrayList不是线程安全的。...原创 2022-10-26 08:33:50 · 2249 阅读 · 5 评论 -
秋招面试- - -Java体系最新面试题(8)
2)类名.class 3)对象名.getClass() 4)基本类型的包装类,可以调用包装类的Type属性来获得该包装类的Class对象。配合 synchronized 使用,wait 方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。配合 synchronized 使用,该方法唤醒在该对象上等待队列中的某个线程(同步队列中的线程是给抢占 CPU 的线程,等待队列中的线程指的是等待唤醒的线程)。原创 2022-10-05 12:17:16 · 2161 阅读 · 1 评论 -
秋招面试题- - -Java体系最新面试题(9)
Java 集合框架中的一种存放相同类型的元素数据,是一种变长的集合类,基于定长数组实现,当加入数据达到一定程度后,会实行自动扩容,即扩大数组大小。优点:ArrayList 是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。当然,绝大数业务的场景下,使用 ArrayList 就够了,但需要注意避免 ArrayList 的扩容,以及非顺序的插入。如果 add(o),添加到的是数组的尾部,如果要增加的数据量很大,应该使用 ensureCapacity()原创 2022-10-04 15:25:50 · 215 阅读 · 0 评论 -
阿里巴巴面试题- - -多线程&并发篇(二十八)
线程安全就是说多线程访问同一段代码,不会产生不确定的结果。又是一个理论的问题,各式各样的答案有很多,我给出一个个人认为解释地最好的:如果你的代码在多线程下执行和在单线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。(1)不可变像String、Integer、Long这些,都是final类型的类,任何一个线程都改变不了它们的值,要改变除非新创建一个,因此这些不可变对象不需要任何同步手段就可以直接在多线程环境下使用(2)绝对线程安全不管运行时环境如何,调用者都不需要额外的同步措施。...原创 2022-10-17 13:15:48 · 6713 阅读 · 2 评论 -
阿里巴巴面试题- - -Java体系最新面试题(十一)
目录进阶篇43、红黑树有哪几个特征?44、说说你平时是怎么处理 Java 异常的45、说说深拷贝和浅拷贝?紧接上个问题,面试官很有可能会问红黑树,下面把红黑树的几个特征列出来: try-catch-finallytry 块负责监控可能出现异常的代码catch 块负责捕获可能出现的异常,并进行处理finally 块负责清理各种资源,不管是否出现异常都会执行其中 try 块是必须的,catch 和 finally 至少存在一个标准异常处理流程 抛出异常→捕获异常→捕获成功(当 catch 的异常类型与抛出的异常类型匹原创 2022-09-02 09:59:35 · 13019 阅读 · 26 评论 -
阿里巴巴面试题- - -多线程&并发篇(二十六)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-22 00:14:56 · 3902 阅读 · 1 评论 -
阿里巴巴面试题- - -Spring篇(四十五)
Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring AOP:AOP服务;...原创 2022-09-24 06:00:00 · 227 阅读 · 2 评论 -
阿里巴巴面试题- - -多线程&并发篇(二十五)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-21 08:51:14 · 4239 阅读 · 56 评论 -
阿里巴巴面试题- - -多线程&并发篇(二十四)
目录多线程&并发篇3、notify()和notifyAll()有什么区别?4、sleep()和wait() 有什么区别?5、volatile 是什么?可以保证有序性吗?6、Thread 类中的start() 和 run() 方法有什么区别?7、为什么wait, notify 和 notifyAll这些方法不在thread类里面?8、为什么wait和notify方法要在同步块中调用?本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~notify可能会导致死锁,而notifyAll则不会任何时候只有一个线原创 2022-10-20 09:20:47 · 5618 阅读 · 61 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十八)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-09-24 11:00:00 · 1889 阅读 · 0 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十七)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-10-06 12:56:36 · 3693 阅读 · 1 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十六)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-09-18 13:02:02 · 1663 阅读 · 1 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十五)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-09-08 00:09:37 · 14721 阅读 · 3 评论 -
阿里巴巴面试题- - -多线程&并发篇(三十二)
再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏。原创 2022-09-23 22:35:21 · 646 阅读 · 1 评论 -
阿里巴巴面试题- - -JVM篇(十九)
进行垃圾回收的过程中,会涉及对象的移动。为了保证对象引用更新的正确性,必须暂停所有的用户线程,像这样的停顿,虚拟机设计者形象描述为「Stop The World」。也简称为STW。在HotSpot中,有个数据结构(映射表)称为「OopMap」。一旦类加载动作完成的时候,HotSpot就会把对象内什么偏移量上是什么类型的数据计算出来,记录到OopMap。在即时编译过程中,也会在「特定的位置」生成 OopMap,记录下栈上和寄存器里哪些位置是引用。...原创 2022-10-12 13:27:09 · 2438 阅读 · 3 评论 -
阿里巴巴面试题- - -JVM篇(二十一)
目录进阶篇29、你知道哪些JVM调优参数?30、说一下 JVM 有哪些垃圾回收器?本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~「堆栈内存相关」「垃圾收集器相关」「辅助信息相关」如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。下图展示了7种作用于不同分代的收集器,其中用于回收新生代的收集器包括Serial、PraNew、ParallelScavenge,回收老年代的收集器包括Serial Old、Parallel Old、CMS,还有用于回收整个Java堆的G1收集器原创 2022-09-08 05:30:00 · 372 阅读 · 3 评论 -
阿里巴巴面试题- - -JVM篇(二十)
如果Java堆内存中的内存并不是规整的,已被使用的内存和空闲的内存相互交错在一起,不可以进行指针碰撞啦,虚拟机必须维护一个列表,记录哪些内存是可用的,在分配的时候从列表找到一块大的空间分配给对象实例,并更新列表上的记录,这种分配方式就是空闲列表。可以把内存分配的动作按照线程划分在不同的空间之中进行,每个线程在Java堆中预先分配一小块内存,这就是TLAB(Thread Local Allocation Buffer,本地线程分配缓存)。虚拟机通过-XX:UseTLAB设定它的。...原创 2022-09-24 12:00:00 · 541 阅读 · 1 评论 -
阿里巴巴面试题- - -JVM篇(十八)
目录进阶篇21、 对象一定分配在堆中吗?有没有了解逃逸分析技术?22、虚拟机为什么使用元空间替换了永久代? 本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~「对象一定分配在堆中吗?」 不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。「什么是逃逸分析?」逃逸分析(Escape Analysis),是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围,从而决定是否要将这原创 2022-10-09 01:02:56 · 4932 阅读 · 2 评论 -
阿里巴巴面试题- - -JVM篇(十五)
目录JVM篇8、Java内存结构9、说说对象分配规则10、描述一下JVM加载class文件的原理机制?方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。方法区(Method Area),方法区(Method Area)与Java堆一样,是各个线程共享的内存区原创 2022-10-01 20:32:11 · 1701 阅读 · 2 评论 -
阿里巴巴面试题- - -JVM篇(十七)
目录JVM篇15、JVM的永久代中会发生垃圾回收么?16、你知道哪些垃圾收集算法17、调优命令有哪些?18、常见调优工具有哪些19、Minor GC与Full GC分别在什么时候发生?20、你知道哪些JVM性能调优参数?(简单版回答)垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(FullGC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。请参考下Java8:从永久代到元数据区 (注:Jav原创 2022-10-19 11:33:19 · 2313 阅读 · 4 评论 -
阿里巴巴面试题- - -JVM篇(十六)
目录JVM篇11、说说Java对象创建过程12、知道类的生命周期吗?13、简述Java的对象结构14、如何判断对象可以被回收?本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~1.JVM遇到一条新建对象的指令时首先去检查这个指令的参数是否能在常量池中定义到一个类的符号引用。然后加载这个类(类加载过程在后边讲)2.为对象分配内存。一种办法“指针碰撞”、一种办法“空闲列表”,最终常用的办法“本地线程缓冲分配(TLAB)”3.将除对象头外的对象内存空间初始化为04.对对象头进行必要设置类的生命周期包括这几个原创 2022-09-08 09:30:00 · 236 阅读 · 5 评论 -
阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
但是性能上来说,比面向过程要低。使用int的原因是,对于当下32位的处理器(CPU)来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),具有高效存取的特点。其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。标识符的含义: 是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等等,都是标识符。...原创 2022-08-22 09:24:59 · 32826 阅读 · 33 评论 -
阿里巴巴面试题- - -Java体系最新面试题(2)
子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。重写 总结: 1.发生在父类与子类之间 2.方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同 3.访问修饰符的限制一定要大于被重写方法的访问修饰符。......原创 2022-08-23 08:40:08 · 28692 阅读 · 56 评论 -
阿里巴巴面试题- - -Java体系最新面试题(十)
fail-fast 机制是 Java 集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生 fail-fast 事件。例如:当某一个线程 A 通过 iterator 去遍历某集合的过程中,若该集合的内容被其他线程所改变了,那么线程 A 访问集合时,就会抛出 ConcurrentModificationException 异常,产生 fail-fast 事件。这里的操作主要是指 add、remove 和 clear,对集合元素个数进行修改。原创 2022-09-08 16:30:00 · 406 阅读 · 3 评论 -
阿里巴巴面试题- - -Java体系最新面试题(3)
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object。虽然HashMap是线程不安全的,但是它的效率远远高于Hashtable,这样设计是合理的,因为大部分的使用场景都是单线程。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为。== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。..原创 2022-08-24 09:26:51 · 22203 阅读 · 58 评论 -
阿里巴巴面试题- - -Java体系最新面试题(7)
目录基础篇26、 简述线程、程序、进程的基本概念。以及他们之间关系是什么?27、Java 序列化中如果有些字段不想进行序列化,怎么办?28、说说Java 中 IO 流29、 Java IO与 NIO的区别(补充)线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。程序是含有指令和数据的文件,被存原创 2022-09-08 18:30:00 · 231 阅读 · 6 评论