Java面试
文章平均质量分 70
星前冷
不会就学,一遍不会,那就两遍,三遍,总能得到梦中花!
展开
-
redis缓存异常(字节、腾讯面试总结)
但在实际应用过程中,redis会存在**缓存穿透、缓存雪崩、缓存击穿、缓存预热和缓存降级**等异常情况,如果忽视这些情况可能会带来灾难性的后果,下面主要对这些缓存异常和常见处理方案进行相应分析与总结。原创 2022-05-25 16:06:30 · 562 阅读 · 0 评论 -
分布式日志设计,Java代码实现
在分布式系统下,用户一个请求通常需要先后调用(rpc、http)多个工程模块,依次处理数据,才能返回正确结果。日志变得越来越分散,如何更好地收集和分析日志,就变成了一个特别重要的问题。原创 2022-05-16 22:34:54 · 650 阅读 · 0 评论 -
分布式环境下限流器springboot实现,令牌桶
根据令牌桶算法,桶中的令牌是持续生成存放的,需要先从桶中拿到令牌才能开始执行请求,那么持续生成令牌存放应该这么实现呢?原创 2021-09-26 19:22:13 · 3014 阅读 · 0 评论 -
操作系统面试题
进程的调度算法:先到先服务(FCFS)调度算法:从就绪队列中选择一个最先进入队列的进程分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用CPU时再重新调度。短作业优先(SJF)调度算法:从就绪队列中选出一个估计运行时间最短的进程分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用CPU时再重新调度。时间片轮转(RR)调度算法:最简单,最公平且使用最广的算法,每个进程被分配一个时间段,称作时间片,即该进程允许运行的时间。优先级调度算法:为每个进程分配优先级,按优先级依次原创 2020-09-02 19:27:31 · 132 阅读 · 0 评论 -
二分查找细节讨论
二分查找框架二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。public int binarySearch (int[] nums, int target) { int left = 0; int rigt = ...; while (left ... rigt)...原创 2020-03-23 22:48:21 · 163 阅读 · 0 评论 -
JVM面试题
JVM垃圾回收机制垃圾回收(Garbage Collection,GC):释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。垃圾判断算法:引用计数法:给每个对象添加一个计数器,当有地方引用该对象时计数器加1,当引用失效时计数器减1。用对象计数器是否为0来判断对象是否可被回收。缺点:无法解决循环引用的问题。例子:pu...原创 2020-03-08 13:33:59 · 130 阅读 · 0 评论 -
内部类(静态与非静态)面试题
在Java中,可以将一个类定义在另一个类里面,这样的类称为内部类。内部类一般分为四种:成员内部类,局部内部类,匿名内部类和静态内部类。成员内部类成员内部类可以无条件访问外部类的所有成员属性和方法(包括private成员和静态成员)。需要注意:当成员内部类拥有和外部类的同名的成员变量或方法时,会发生隐藏现象,即默认情况下访问的是成员内部类的成员。如果要访问外部类的同名成员,则需要用如下形式访问...原创 2019-12-01 22:43:20 · 226 阅读 · 0 评论 -
Java面试基础
抽象类和接口有什么区别?抽象类可以有构造方法,但不能通过new创建实例对象,其构造函数是提供给子类创建对象的时候初始化父类的属性;接口中不能有构造方法。抽象类中可以用普通成员变量;接口中不能有普通成员变量,只能为静态成员变量。抽象类中有抽象方法,也可以有非抽象普通方法;接口中所有的方法必须是抽象的。抽象类中抽象方法的访问权限可以为public和protected;接口中的抽象方法只能是p...原创 2019-10-29 20:29:32 · 116 阅读 · 0 评论 -
String, StringBuffer and StringBuilder区别
String, StringBuffer and StringBuilder考点:可变性String 不可变StringBuffer 和 StringBuilder 可变线程安全String 不可变,因此是线程安全的StringBuilder 不是线程安全的StringBuffer 是线程安全的,内部使用 synchronized 进行同步String类在Java的ja...原创 2019-07-19 22:34:41 · 150 阅读 · 0 评论 -
集合相关面试题
Array和ArrayList有什么区别?Array大小是固定的,空间不够时也不能再次赛区,所以需要事前确定适合的空间大小;而ArrayList大小是动态变化的,它可以动态增长,如果空间不够,它会创建一个空间比原空间大约0.5倍的新数组,然后将所有元素复制到新数组中,接着抛弃旧数组,而且,每次添加新的元素都会检查内部数组的空间是否足够。Array可以包含基本类型和对象类型,ArrayList...原创 2019-07-09 19:50:57 · 236 阅读 · 0 评论 -
HashMap原理分析,大厂面试题
HashMap的工作原理是什么?HashMap内部是通过一个数组实现的,只是这个数组比较特殊,数组里存储的元素是一个Entry实体(在Java8中为Node),这个Entry实体主要包含Key、value以及一个指向自身的next指针。static class Node<K,V> implements Map.Entry<K,V> { final int hash;...原创 2019-07-09 16:56:37 · 1432 阅读 · 0 评论 -
线程面试题
什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理编程,可以使用多线程对运算密集型任务提速。线程和进程的区别?...原创 2019-07-09 10:13:08 · 250 阅读 · 0 评论 -
浏览器输入一个网址,打开网页,其中发生了什么,使用了什么协议?
DNS协议:将域名解析为IP。我们输入域名,将其发送给“DNS服务器”,就会返回相应的IP。本机在解析域名时首先从hosts文件中查找,如果查找到就直接使用,如果找不到才会从DNS服务器获取。TCP/IP协议:它们两通常放在一起,不过它们是两个不同的协议,所起的作用也不一样。IP协议是用来查找地址的(即要传输数据的目标节点),对应着网际互联层;TCP协议是用来规范传输规则的,对应着传输层。IP只...原创 2019-07-08 08:17:48 · 5767 阅读 · 0 评论 -
TCP三次握手,四次挥手
TCP三次握手是建立连接,四次挥手是关闭连接。TCP:TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义:IP地址+端口号,例如:192.3.4.16:80。TCP服务器进程先创建传输控制块TCB,进入LISTEN(监听)状态,时刻准备接受客户进程的连接请求。第一次:第一次握手:建立连接时,客户端进程创建传输控制块TCB,然后发送s...原创 2019-07-07 21:17:55 · 282 阅读 · 0 评论