
java面试总结
java面试
行庵
人无癖不可与交,以其无深情也。人无疵不可与交,以其无真气也
展开
-
java多线程面试题整理及答案
java多线程面试题整理及答案(2019年)什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支 持,它也是一个很好的卖点。线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的原创 2020-09-16 21:15:32 · 318 阅读 · 0 评论 -
threadlocal
https://www.cnblogs.com/luxiaoxun/p/8744826.html原创 2020-08-17 10:29:56 · 217 阅读 · 0 评论 -
jsonp
JSONP前面的话 JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,常用于服务器与客户端跨源通信,在后来的Web服务中非常流行。本文将详细介绍JSONP基础 JSONP的基本思想是,网页通过添加一个当通过[1, 2, {“buckle”: “my shoe”}] JSONP看起来与JSON差不多,只不过是被包含在函数调用中的JSON,它会发送这样一个包裹后的JSON响应:handleResponse([l, 2, {“bu转载 2020-08-04 21:43:57 · 536 阅读 · 0 评论 -
servlet的本质是什么,它是如何工作的?
作者:柳树链接:https://www.zhihu.com/question/21416727/answer/339012081来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。https://www.zhihu.com/question/21416727这个提问的最大一个bug,就是以为servlet是很复杂的东西,事实上,servlet就是一个Java接口,interface! 打开idea,ctrl + shift + n,搜索servlet,就可以看到是一个只有转载 2020-07-23 15:34:20 · 147 阅读 · 0 评论 -
内核态(Kernel Mode)与用户态(User Mode)
内核态(Kernel Mode)与用户态(User Mode)内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取为什么要有用户态和内核态由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 – 用户态 和 内核态用户态与内核态的切换转载 2020-06-22 21:42:06 · 577 阅读 · 0 评论 -
为什么127+1是等于-128
字节长度是8位,最左位是符号位127的二进制: 0111 1111-1的二进制: 1111 1111,加一为全0,(二进制中负数是补码的形式表示)-2的二进制: 1111 1110……-128的二进制: 1000 0000这是二进制相加减的溢出问题溢出!最大的int + 1 = 最小的int...原创 2020-06-15 16:56:54 · 713 阅读 · 0 评论 -
Java 程序员,别用 Stack?!
Q:在 Java 语言中,不推荐使用 Stack 类?是的。实际上,这个不推荐不是某个技术专家或者某个企业的规范标准,而是来自 Java 官方。如果大家在 Java 中查询 Stack 的文档,就会看到如下的说明:简单翻译:一个更加完整,一致的,后进先出的栈相关的操作,应该由 Deque 接口提供。并且,也推荐使用 Deque 这种数据结构(比如 ArrayDeque)来实现。因此,如果你想使用栈这种数据结构,Java 官方推荐的写法是这样的(假设容器中的类型是 Integer):下面,我们.转载 2020-05-30 19:19:44 · 2287 阅读 · 5 评论 -
hashset去重原理
HashSet去重原理总结:A:HashSet底层数据结构是哈希表(是一个元素为链表的数组)B:哈希表底层依赖两个方法:hashCode()和equals()执行顺序:首先比较哈希值是否相同相同:继续执行equals()方法返回true:元素重复了,不添加返回false:直接把元素添加到集合不同:就直接把元素添加到集合...原创 2020-04-22 16:55:44 · 354 阅读 · 0 评论 -
hashmap底层为什么用红黑树而不用avl
RB-Tree和AVL树作为BBST,其实现的算法时间复杂度相同,AVL作为最先提出的BBST,貌似RB-tree实现的功能都可以用AVL树是代替,那么为什么还需要引入RB-Tree呢?红黑树不追求"完全平衡",即不像AVL那样要求节点的 |balFact| <= 1,它只要求部分达到平衡,但是提出了为节点增加颜色,红黑是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次...转载 2020-04-22 16:49:21 · 1854 阅读 · 1 评论 -
hystrix介绍
Hystrix是什么在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。Hystrix为了什么Hystrix被设计的目标是:对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行...转载 2020-04-21 09:55:44 · 138 阅读 · 0 评论 -
网络协议
https://zhangbinalan.gitbooks.io/protocol/content/httpsxie_yi.html原创 2020-04-20 14:53:33 · 137 阅读 · 0 评论 -
反射机制
一、反射1.1 框架半成品软件。可以在框架的基础上进行软件开发,简化编码。学习框架并不需要了解反射,但是要是想自己写一个框架,那么就要对反射机制有很深入的了解。1.2 反射反射机制:将类的各个组成部分封装为其他对象,这就是反射机制。反射的好处:1.可以在程序运行过程中,操作这些对象。2.可以解耦,提高程序的可扩展性。Java代码在计算机中经历的三个阶段(1)Source源代码阶段...转载 2020-04-15 14:21:56 · 308 阅读 · 0 评论 -
java反射解析
反射:框架设计的灵魂* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。* 获取Class对象的方式: 1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 * 多用于配置文...原创 2020-04-15 10:31:44 · 148 阅读 · 0 评论 -
二叉树学习笔记之B树、B+树、B*树
动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ),都是典型的二叉查找树结构,查找的时间复杂度 O(log2-N) 与树的深度相关,降低树的深度会提高查找效率,于是有了多路的B-tree/B±tree/ B*-tree (B~Tree)。关于这B树以及B树的两...转载 2020-04-13 21:59:24 · 207 阅读 · 0 评论 -
布隆过滤器
海量数据处理以及缓存穿透这两个场景让我认识了 布隆过滤器 ,我查阅了一些资料来了解它,但是很多现成资料并不满足我的需求,所以就决定自己总结一篇关于布隆过滤器的文章。希望通过这篇文章让更多人了解布隆过滤器,并且会实际去使用它!下面我们将分为几个方面来介绍布隆过滤器:什么是布隆过滤器?布隆过滤器的原理介绍。布隆过滤器使用场景。通过 Java 编程手动实现布隆过滤器。利用Google开源的...转载 2020-04-13 17:52:34 · 164 阅读 · 0 评论 -
什么是分布式锁
为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。分布式锁的实现有哪些Memcached:利用 Memcached 的 add 命令。此命令是原子性操作,只有在 key 不存在的情况下,才能 add成功,也就意味着线程得到了锁。Redis:和 Memcached 的方式类似,利用 Redis 的 ...转载 2020-04-11 00:39:20 · 191 阅读 · 0 评论 -
redis总结
主要内容redis 简介为什么要用 redis /为什么要用缓存为什么要用 redis 而不用 map/guava 做缓存?redis 和 memcached 的区别redis 常见数据结构以及使用场景分析redis 设置过期时间redis 内存淘汰机制redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)redis 事务缓存雪崩和缓存穿透问题解决方案...转载 2020-04-10 23:19:24 · 233 阅读 · 0 评论 -
http协议面试
WWW的核心——HTTP协议众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP、Archie Gopher等是建立在TCP/IP协议之上的应用层协议,不同的协议对应着不同的应用。 WWW服务器使用的主要协议是HTTP协议,即超文体传输协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,因而HTTP协议允许用户在统一的界面下,采用不同的协议访问不同的服务,如F...转载 2020-04-07 15:01:42 · 215 阅读 · 0 评论 -
Java面试--TCP和UDP
1、TCP和UDP的区别(1)TCP面向连接;UDP面向无连接(2)TCP保证数据正确性;UDP可能丢包(3)TCP传输速度慢;UDP速度快(4)每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信(5)TCP对系统资源要求较多,UDP对系统资源要求较少。2、三次握手三次握手的目的是建立可靠的通信信道。确认自己与对方的发送与接收机能正常。TCP三次握手...转载 2020-04-06 17:31:11 · 208 阅读 · 0 评论 -
TCP释放连接时为什么time_wait状态必须等待2MSL时间
第一,为了保证A发送的最后一个ACK报文能够到达B。这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。B会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内收到这个重传的FIN+ACK报文段。如果A在TIME-WAIT状态不等待一段时间,而是在发送完ACK报文段后就立即释放连接,就无法收到B重传的FIN+ACK报文段,因而也不会再发...原创 2020-04-06 17:28:01 · 2241 阅读 · 0 评论 -
http协议面试考点
**一.HTTP简介**1.HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。2.HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上...转载 2020-04-06 10:41:46 · 362 阅读 · 0 评论 -
索引的本质解析
索引的本质:帮助MySQL高效获取数据的排好序的数据结构。**不建索引需要多次磁盘IO。将根节点索引一次加载到内存中做比较,即:15,56,77同时加载到内存中,完成一次磁盘IO。MySQL规定一次加载大小为16k。MySQL索引底层数据结构为B+树:存储引擎是作用于数据表的:myisam:三个文件:(1)frm(2)MYD: data,存储数据(3)MYI:index,存储索引...原创 2020-04-01 17:42:28 · 256 阅读 · 0 评论