## java最新面试题2020# 一面 1. 手撕twosum代码,手撕归并排序,还有一个题忘了,我记得是用hashmap做2. 讲一下Java垃圾回收分代回收各种算法3. Java内存结构4. Java堆存哪些数据5. 讲一下四种引用6. Java语言的特性7. 抽象,多态8. 项目中一个模块具... ...
分类:
编程语言 时间:
2020-05-18 14:08:18
阅读次数:
147
一、定义 1、堆:FIFO队列优先,先进先出。jvm只有一个堆区被所有线程所共享!堆存放在二级缓存中,调用对象的速度相对慢一些,生命周期由虚拟机的垃圾回收机制定。 2、栈:FILO先进后出,暂存数据的地方。每个线程都包含一个栈区!栈存放在一级缓存中,存取速度较快,“栈是限定仅在表头进行插入和删除操作 ...
分类:
其他好文 时间:
2020-05-18 00:25:23
阅读次数:
89
话不多说,直接撸图: 1》Eden中通过可达性分析,存活下来的对象直接通过复制算法移动到From区域中,此时该对象的分代年龄加1: 2》当下一次虚拟机进行【Minor GC】时,会同时对【Eden】和【From】进行垃圾回收,如果搞对象还在使用中,则被移动到另一个【From】区,对象分代年龄再次加1 ...
分类:
其他好文 时间:
2020-05-17 13:12:00
阅读次数:
120
1.java内存模型注:JAVA中的堆栈和内存模型:,1.1内存模型:Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性来建立的(三个特性详解见10.)a.Java内存模型将内存分为了主内存和工作内存b.Java内存模型规定所有的变量都存储在主内存中,每个线程有自己的工作内存c.主内存主要包括:堆和方法区,主内存是所有线程共享的d.工作内存主要包括:该线程私有的栈和对主内存部分变量
分类:
编程语言 时间:
2020-05-16 09:22:36
阅读次数:
70
PoolingHttpClientConnectionManager是一个HttpClientConnection的连接池,可以为多线程提供并发请求服务。主要作用就是分配连接,回收连接等。同一个route的请求,会优先使用连接池提供的空闲长连接。 源码版本4.5.2,因为代码太多,很多不是自己关心的 ...
分类:
Web程序 时间:
2020-05-16 00:23:23
阅读次数:
73
一、Python基础 1. 变量常量 2. 基本数据类型 3. 垃圾回收机制 ...
分类:
编程语言 时间:
2020-05-15 20:01:53
阅读次数:
58
1. 什么是 “垃圾” ? x = 1 //把 “1” 这个值赋给 “x”,在计算机中,先是定义了一个变量x,然后在内存里面开辟了一块内存空间,用来存放x的值,也就是1,这个时候,x和1是绑定的。 这种绑定关系,叫做 “引用计数” 。,这时候,“1”的引用计数就是1. 如果在这个时候,再一次给x赋值 ...
分类:
其他好文 时间:
2020-05-15 19:55:19
阅读次数:
54
原文 Java 堆内存被划分为新生代和老年代两部分,因此 JVM 通常采用分代回收算法。新生代主要使用复制和标记-清除垃圾回收算法 ,老年代主要使用标记-整理垃圾回收算法。JVM 中针对新生代和年老代分别提供了多种不同的垃圾收集器。 根据线程特点,可以将收集器分为三类: 串行收集器:Serial 收 ...
分类:
其他好文 时间:
2020-05-15 10:05:25
阅读次数:
70
1|0如何确定垃圾 想要回收垃圾,必须得先知道,哪些对象可以被认定为垃圾。关于垃圾确定方式,主要有两种,分别是引用计数法与可访问性分析法,其原理分别如下: 1|1引用计数法 在 Java 中,引用与对象相关联,如果要操作对象,则必须使用引用。因此,可以通过引用计数来确定对象是否可以回收。实现原则是, ...
分类:
编程语言 时间:
2020-05-15 09:25:26
阅读次数:
85