- 浏览: 60609 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (117)
- RPC相关 (4)
- mvc_controller (3)
- mvc_model (3)
- maven (4)
- mvc_view (5)
- IO (2)
- 业务相关 (2)
- MQ (7)
- 搜索引擎 (3)
- zookeeper (2)
- 工具相关 (4)
- 编辑错误 (1)
- tomcat (1)
- 单元测试 (1)
- 负载均衡 (1)
- ubuntu (1)
- nginx (1)
- dubbo (2)
- 网络站点分发 (1)
- 电商-支付相关 (10)
- 电商订单业务相关 (3)
- Core java1 (3)
- Core Java (12)
- 多线程高并发(并发包/线程/锁) (10)
- 数据库+缓存 (17)
- springcloud (2)
- jvm (5)
- 日志相关 (1)
- 算法 (3)
- spring (2)
- 分布式一致性算法 (1)
最新评论
https://572327713.iteye.com/admin/blogs/2389759
https://572327713.iteye.com/admin/blogs/2407978
ThreadPoolExecutor 7个参数作用 newCachedThreadPool特点,使用场景;
https://572327713.iteye.com/admin/blogs/2427908
核心线程数:默认开启线程数
最大线程数:最多开启线程数
超时时间:当启动的线程数大于核心线程数时,如果某个线程空闲超过超时时间时,进行关闭。
时间单位:
队列属性:如无界有界阻塞队列等
执行策略:线程满时,提交线程采取的策略
线程工厂:生产线程
永久区,然后1.8做了什么改进
永久区在1.8后移除了,同时增加了元区,存储的位置发生变化(元空间不在虚拟机中,在本地内存)。
hashmap冲突get 1.8
在同一个槽点,链表超过8个会转为红黑树。
spring ioc类相互依赖层级关系怎样实现 --不大明白,有没有好的博客?
就是Spring 原理里面涉及到的,需要了解工作原理,熟悉主要源码
https://www.cnblogs.com/ITtangtang/p/3978349.html
spring bean A依赖B B依赖A,spring如何解决的:
https://blog.csdn.net/bsg_24/article/details/84782382
spring AOP原理代理模式 proxy和cglib区别
JDK动态代理只能为接口创建动态代理实例,而不能对类创建动态代理。需要获得被目标类的接口信息(应用Java的反射技术),
生成一个实现了代理接口的动态代理类(字节码),再通过反射机制(运行时打开和检查.class文件)获得动态代理类的构造函数,利用构造函数生成动态代理类的实例对象,
在调用具体方法前调用invokeHandler方法来处理。
cglib是针对类来实现代理的,需要依赖asm包,他的原理是对指定的目标类生成一个子类(把被代理对象类的class文件加载进来,修改其字节码生成子类),
并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理
final修饰的实现类,jdk/cglib动态代理是否可以代理。
jdk动态代理可以,cglib代理不可以。
首先实现类,jdk近可以用于接口实现类的动态代理,而cglib是对类的动态代理,但是呢在spring,也可以设置cglib去代理实现类,那为什么final实现类不可以呢。final的类不能被继承了,jdk新生成的代理类原理是重新封装实现的接口,没继承那个final类,而cglib新生成的代理类是直接继承finale类作为子类,所以报错。
方法区会不会gc
会,方法区存放永久区
对方法区和永久区的理解,之间的关系
方法区:类的方法代码,常量,静态变量,方法名,访问权限,返回值
方法区是jvm标准中定义的一部分,永久区是hotspot实现方法区的方式,在hotspot中方法区等同永久区
永久带(实现)是对方法区(标准)的实现,是实现层面的东西
读写锁是怎样互斥的
读写相互独立
生产者消费者模型
https://blog.csdn.net/a491857321/article/details/79262996
空指针处理,java8引入了opional,写法要注意不能有以前的特性
spring 加载层级关系 是否加载到私有方法 能的话是通过反射
synchronized 实现原理,如何实现加锁的效果
monit enter 和monit exit 标记位加上计数器
jdk的锁是如何实现的呢
那是java类实现的,底层主要靠CAS 和 AQS
前者是关键字后者是具体的java类
非公平锁为什么比公平锁费时
对方法区和永久区的理解,之间的关系
ReadWriteRock 读写互斥吗
ReentrantLock 是可重入锁,什么是可重入锁
Semaphore拿到执行权的线程间互斥吗
写一个你认为最好的单例模式
各大排序算法
redis可以实现事务吗,怎样实现分布式锁
B树和B+树是解决什么样的问题的,怎样演化过来,之间区别
java的private类型可以通过反射访问,那么private的意义是什么
进程间通信的方式有哪些
写一个生产者消费者模型
既然Java反射可以访问和修改私有成员变量,那封装成private还有意义么?
https://www.zhihu.com/question/28161668/answer/518225224
枚举是如何保证线程安全的,为什么序列化和反序列化的操作中是单例的?
enum类型是线程安全的,static类型的属性会在类被加载之后被初始化,Java类的加载和初始化过程都是线程安全的。序列化和反序列化的操作中是单例的:序列化的时候Java仅仅是将枚举对象的name(name为普通对象,非枚举属性)属性(非value值)输出到结果中,反序列化的时候则是通过java.lang.Enum的valueOf方法来根据名字查找枚举对象。所以操作枚举中可变对象不影响序列化和反序列化的对象变化。
jvm 317页
因为== 在进行算数运算时会进行拆箱,拆箱后 值是相等的
equals方法不处理数据转型关系
java的private类型可以通过反射访问,那么private的意义是什么
private主要抓住两点:1.java的private修饰符并不是为了安全性设计的;2.从外部对对象进行常规调用时,能够看到清晰的类结构。
1. dispatchservlet请求任务分发流程
2. String a = "ab";
String b = "a" + "b";
a == b 是false还是true
3. 怎样破坏双亲委派模型
4.常用设计模式,写一个策略模式
5.冒泡排序和快排选一个写一下
6. int i = 1;这是原子操作吗
7. volatile 问了很多,从java内存模型问到实际使用
8.写了各种变量,引用,new出对象,方法调用,问这些分别涉及到哪些jvm内存区域
9.Collection子类有哪些,Hashmap和ArrayList有继承上的交集吗
10.HashMap put的过程, HashTable原理, concurrentHashMap 怎样实现线程安全的
http://www.importnew.com/28263.html
11.数据结构 图有最小生成树,涉及哪两种算法
12.AOP IOC 原理
13.索引什么时候失效,索引原理
14.k-means聚类算法 有没有了解
15. 多线程在业务中使用场景,问到countdownlatch cyclicbarrier,线程池作用,几种线程池,区别,7个参数
16.synchronized实现的原理,问的很细,具体到要实现需要有哪些东西组成,计数器放哪里...
https://blog.csdn.net/javazejian/article/details/72828483
17.普通的for循环和foreach区别
18。java8 stream有什么优势
19.Optional作用,用来判空,这样回答,java涉及色初衷不想用户暴露内存,但是设计上有一点,需要判断空指针异常,这违背了java设计初衷,Optinal来判空弥补这一缺陷
20.问题1:判断如下代码片段在具体的业务场景下都有哪些潜在问题,StringUtils、Money内部实现可忽略。
/**
* <pre>
* 金额分的转化 例如10000 会转化为 100.00
* <code>
* CentAmountFieldValueConverter.convert("10000") = 100.00
* </code>
* </pre>
*/
public class CentAmountFieldValueConverter implements FieldValueConverter {
public void convert(Field field) {
String value = (String) field.getDestValue();if (StringUtils.isBlank(value)) {
return;
}
try {
long cent = Long.parseLong(value); //value转化为Long型不能越界
Money amount = new Money(cent);
amount.setCent(cent);
field.setDestValue(amount.toString());
} catch (Exception e) {
field.setDestValue(value);
}
}
}
21.二叉树按照层级遍历
借助队列
22.String s = new String("abc");
分别在哪些区域做了哪些工作
23.运行时异常和受检异常区别,各自在什么情况下使用,使用特点。
运行时异常runtimeException,包括空指针,数组越界,运行时异常都继承runtimeException,受检异常包括io异常,notfindclass异常,使用时需要加trycatch才能编译。
24.Linux内核 不同版本特点 ,springcloud,springboot 事务使用,可以放在类上吗,redis 分布式锁,红锁,redis 挂了怎么办,单例我写了双检锁,问为什么要这么写呢,这样不好,jvm各垃圾收集器,使用了什么算法,几个工具,jstat等,springboot 加载过程,docker,tomcat,redis 持久化方式,用什么语言实现的,怎样运行,放在怎样的数据结构里
25.二叉树怎样查找最近的父节点,二个数组怎样找出公共部分,翻转二叉树
https://572327713.iteye.com/admin/blogs/2405375
26.二分查找,快排,数组元素的平方排序,冒泡,树的层次遍历,股票最大收益
27.Bio和NIO实现原理,业务场景,futureTask底层,还有一些设计模式具体使用场景,还有threadlocal怎样使用,场景
28.线程池,多线程那块肯定是细问的,Tomcat启动后,配置文件改变有效吗
29.Jvm各大垃圾收集器,Minorgc和fullgc
30.MQ怎样保证高可用,消息丢失怎样处理,mysql怎样持久化,不同的引擎事务处理有什么区别
binlog和redolog
31.redis如何实现集群。同步还是异步
复制偏移量,复制缓冲区。相当于异步。
dubbo协议
为什么netty没有使用aio
nio异步
new 实例一定在堆上吗
栈:基本类型的变量和对象的引用变量
33.redis可以直接改list值吗
不能
34 dubbo用户调用消费者经过哪些
Dubbo完整的一次调用链路介绍
https://www.jianshu.com/p/4fedd4946009
35 执行计划器除了type有其他哪些
第二轮:
1.线程池最大数量的含义,和队列的关系,如果是无界队列,最大数量作用。
https://572327713.iteye.com/blog/2427908
2.有界队列的工作原理。
数组 +锁
https://572327713.iteye.com/blog/2427908
3.dubbo和cloud区别
4.zuul除了根据ip,还能通过什么调用服务,如何配置。
5.spring boot 特性,加载工作原理是
https://www.cnblogs.com/canmeng-cn/p/8531381.html
工作原理,进行对StringApplication对象实例化加载spring.factories配置,将配置文件的配置装入spring容器中。
6.hashmap为什么是2的n次幂
此问题要结合移位和%取余回答
原始jdk采用取模运算%可以更均匀的分配到槽位,取模%运算有个公式,等于移位后取与&,而这个移位就是2的n次幂,具体可以看看jdk1.8的扰动函数实现,他目的是1,更均匀的达到槽点,保证不过多的hash碰撞,2.在扩容时,可以保证有尽量多的元素不再进行新的槽位选择调整位置。
7.虚引用,弱引用,软引用,强引用
内存不足时JVM就会自动回收某些对象从而避免OutOfMemory的错误)就需要用到软引用和弱引用了
强引用:
new A() 只有置为null才能回收
软引用:
SoftReference<String> sr = new SoftReference<String>(new String("hello"));
内存不足的时候JVM才会回收该对象
弱引用:
WeakReference<String> sr = new WeakReference<String>(new String("hello"));
无论内存是否充足,都会回收被弱引用关联的对
虚引用:
虚引用必须和引用队列关联使用,当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会把这个虚引用加入到与之 关联的引用队列中。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动
ReferenceQueue<String> queue = new ReferenceQueue<String>();
PhantomReference<String> pr = new PhantomReference<String>(new String("hello"), queue);
// 永远为null(幽灵引用相当于无引用)
System.out.println(pr.get());
虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之 关联的引用队列中。
引用队列:
引用队列可以配合软引用、弱引用及幽灵引用使用,当引用的对象将要被JVM回收时,会将其加入到引用队列中。
虚引用主要用来跟踪对象被垃圾回收器回收的活动。
8.volitail为什么不能保证原子性
9.spring事务的原理 A调用B为什么不会开启事务
此题目需要具体分析,是类和类之间,是不是私有方法:
https://572327713.iteye.com/admin/blogs/2439612
10.索引如果 值如果是null 会失效吗
很多博客说会,根据执行计划器看并不会失效
11.可达性分析的根在哪
常量,静态对象,native对象,->可被引用的对象
如果没有被引用,说明不用了,回收掉。
12.线程池如果某个线程有异常,线程池如何处理的。
catch打日志,
借助第三方链路跟踪日志,
线程池自己异常策略,看ThreadPoolExecutor.java类runWorker(Worker w)方法的实现:内部也会catch住,也是一个钩子方法,将 task 和异常作为参数,留给需要的子类实现,线程池留给我们做自定义业务的方法afterExecute
线程池的扩展方法包括
beforeExecute() 线程执行前调用
afterExecute() 线程执行后调用
terminaerd() 线程退出时候调用
finally 会进行解锁,只结束当前任务,当前线程会继续使用接收任务。
https://www.cnblogs.com/trust-freedom/p/6681948.html#label_3_4
13.Threadlocal如何实现安全的,从主内存方向解答。
14.一致性哈希算法
https://www.cnblogs.com/lpfuture/p/5796398.html
15.mysql分页一页大小,为什么此大小,从磁盘线程扫描大小有关来回答。
16.局促索引用的b树,非局促用的b+树。
17.hashmap null存储哪里
先去第一个数组槽位查找,eques比对替换,如果没有插入数组0链表头。
18.事务a没有声明,事务b有声明,a调用b,b会有事务吗。
任务1不生效,a没有加,但是b有加为什么不生效。b那一块生效吗。
此题目需要具体分析,是类和类之间,是不是私有方法:
https://572327713.iteye.com/admin/blogs/2439612
19.mysql如何保证一致性,原子性。
从隔离性去保证,也是悲观锁和乐观锁的使用。
20.定时多机集群
21.延时消费mq能否实现,如何实现
https://blog.csdn.net/chengjieping/article/details/81067055
22.被fanel修饰的接口对应实现使用的是spring 哪种aop方式。能否用cglib
原理区别:
java动态代理是利用反射机制(获取class文件方法)生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理(生成class字节码,在类加载到jvm中使用)。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。
1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP
2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP
3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换
https://www.cnblogs.com/zrtqsk/p/3600588.html
自己写个例子,java.lang.IllegalArgumentException: Cannot subclass final class,答案是不可以。
原生jdk动态代理和cglib是两种代理方式,都是动态代理,都是重新生成代理类的,为什么jdk动态代理可以,cglib代理不可以?
CGLib采用非常底层的字节码技术,可以为一个类(final)创建一个子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,并顺势植入横切逻辑。而final不能被继承。CGLib动态代理能代理类和接口,但是不能代理final类,也是有一定局限性。
jdk动态代理为接口创建代理实例,实现方法作为参数给目标类的接口使用。
23.jvm年轻代与老年代比例
默认1比2
24.本地缓存保存数据同步,服如何务之间如何通知,集群通知。
各个服务器订阅mq,一个专门更新主缓存到本地缓存的mq队列,
有更新数据来了,各个服务器都订阅修改自己本地缓存。
也就是修改主缓存,同时通知各个服务器的本地缓存。
2 如果是经常不改变的数据,本地缓存设置个失效时间,到了去主缓存拿一下 这样也可以实现数据更新
25.分库分表如何实现分页和排序。
实现不了,通过搜索引擎。
26.key的失效机制,redis的key超时时间,客户端是直接没有,服务端会直接剔除吗。
Redis中有三种处理策略:定时删除、惰性删除和定期删除。
27.redis的cluster集群,mget批量获取能处理吗,怎么执行的。
3.0 不支持,即使在某些客户端下返回了值,很可能仅仅只是某一个节点的值
4.0 仅支持相同slot,key不能保证在相同slot还是没用
https://572327713.iteye.com/admin/blogs/2407978
ThreadPoolExecutor 7个参数作用 newCachedThreadPool特点,使用场景;
https://572327713.iteye.com/admin/blogs/2427908
核心线程数:默认开启线程数
最大线程数:最多开启线程数
超时时间:当启动的线程数大于核心线程数时,如果某个线程空闲超过超时时间时,进行关闭。
时间单位:
队列属性:如无界有界阻塞队列等
执行策略:线程满时,提交线程采取的策略
线程工厂:生产线程
永久区,然后1.8做了什么改进
永久区在1.8后移除了,同时增加了元区,存储的位置发生变化(元空间不在虚拟机中,在本地内存)。
hashmap冲突get 1.8
在同一个槽点,链表超过8个会转为红黑树。
spring ioc类相互依赖层级关系怎样实现 --不大明白,有没有好的博客?
就是Spring 原理里面涉及到的,需要了解工作原理,熟悉主要源码
https://www.cnblogs.com/ITtangtang/p/3978349.html
spring bean A依赖B B依赖A,spring如何解决的:
https://blog.csdn.net/bsg_24/article/details/84782382
spring AOP原理代理模式 proxy和cglib区别
JDK动态代理只能为接口创建动态代理实例,而不能对类创建动态代理。需要获得被目标类的接口信息(应用Java的反射技术),
生成一个实现了代理接口的动态代理类(字节码),再通过反射机制(运行时打开和检查.class文件)获得动态代理类的构造函数,利用构造函数生成动态代理类的实例对象,
在调用具体方法前调用invokeHandler方法来处理。
cglib是针对类来实现代理的,需要依赖asm包,他的原理是对指定的目标类生成一个子类(把被代理对象类的class文件加载进来,修改其字节码生成子类),
并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理
final修饰的实现类,jdk/cglib动态代理是否可以代理。
jdk动态代理可以,cglib代理不可以。
首先实现类,jdk近可以用于接口实现类的动态代理,而cglib是对类的动态代理,但是呢在spring,也可以设置cglib去代理实现类,那为什么final实现类不可以呢。final的类不能被继承了,jdk新生成的代理类原理是重新封装实现的接口,没继承那个final类,而cglib新生成的代理类是直接继承finale类作为子类,所以报错。
方法区会不会gc
会,方法区存放永久区
对方法区和永久区的理解,之间的关系
方法区:类的方法代码,常量,静态变量,方法名,访问权限,返回值
方法区是jvm标准中定义的一部分,永久区是hotspot实现方法区的方式,在hotspot中方法区等同永久区
永久带(实现)是对方法区(标准)的实现,是实现层面的东西
读写锁是怎样互斥的
读写相互独立
生产者消费者模型
https://blog.csdn.net/a491857321/article/details/79262996
空指针处理,java8引入了opional,写法要注意不能有以前的特性
spring 加载层级关系 是否加载到私有方法 能的话是通过反射
synchronized 实现原理,如何实现加锁的效果
monit enter 和monit exit 标记位加上计数器
jdk的锁是如何实现的呢
那是java类实现的,底层主要靠CAS 和 AQS
前者是关键字后者是具体的java类
非公平锁为什么比公平锁费时
对方法区和永久区的理解,之间的关系
ReadWriteRock 读写互斥吗
ReentrantLock 是可重入锁,什么是可重入锁
Semaphore拿到执行权的线程间互斥吗
写一个你认为最好的单例模式
各大排序算法
redis可以实现事务吗,怎样实现分布式锁
B树和B+树是解决什么样的问题的,怎样演化过来,之间区别
java的private类型可以通过反射访问,那么private的意义是什么
进程间通信的方式有哪些
写一个生产者消费者模型
既然Java反射可以访问和修改私有成员变量,那封装成private还有意义么?
https://www.zhihu.com/question/28161668/answer/518225224
枚举是如何保证线程安全的,为什么序列化和反序列化的操作中是单例的?
enum类型是线程安全的,static类型的属性会在类被加载之后被初始化,Java类的加载和初始化过程都是线程安全的。序列化和反序列化的操作中是单例的:序列化的时候Java仅仅是将枚举对象的name(name为普通对象,非枚举属性)属性(非value值)输出到结果中,反序列化的时候则是通过java.lang.Enum的valueOf方法来根据名字查找枚举对象。所以操作枚举中可变对象不影响序列化和反序列化的对象变化。
Integer a = 1;Integer b = 2;Long g = 3L; System.out.println(g == (a+b));
jvm 317页
因为== 在进行算数运算时会进行拆箱,拆箱后 值是相等的
equals方法不处理数据转型关系
java的private类型可以通过反射访问,那么private的意义是什么
private主要抓住两点:1.java的private修饰符并不是为了安全性设计的;2.从外部对对象进行常规调用时,能够看到清晰的类结构。
1. dispatchservlet请求任务分发流程
2. String a = "ab";
String b = "a" + "b";
a == b 是false还是true
3. 怎样破坏双亲委派模型
4.常用设计模式,写一个策略模式
5.冒泡排序和快排选一个写一下
6. int i = 1;这是原子操作吗
7. volatile 问了很多,从java内存模型问到实际使用
8.写了各种变量,引用,new出对象,方法调用,问这些分别涉及到哪些jvm内存区域
9.Collection子类有哪些,Hashmap和ArrayList有继承上的交集吗
10.HashMap put的过程, HashTable原理, concurrentHashMap 怎样实现线程安全的
http://www.importnew.com/28263.html
11.数据结构 图有最小生成树,涉及哪两种算法
12.AOP IOC 原理
13.索引什么时候失效,索引原理
14.k-means聚类算法 有没有了解
15. 多线程在业务中使用场景,问到countdownlatch cyclicbarrier,线程池作用,几种线程池,区别,7个参数
16.synchronized实现的原理,问的很细,具体到要实现需要有哪些东西组成,计数器放哪里...
https://blog.csdn.net/javazejian/article/details/72828483
17.普通的for循环和foreach区别
18。java8 stream有什么优势
19.Optional作用,用来判空,这样回答,java涉及色初衷不想用户暴露内存,但是设计上有一点,需要判断空指针异常,这违背了java设计初衷,Optinal来判空弥补这一缺陷
20.问题1:判断如下代码片段在具体的业务场景下都有哪些潜在问题,StringUtils、Money内部实现可忽略。
/**
* <pre>
* 金额分的转化 例如10000 会转化为 100.00
* <code>
* CentAmountFieldValueConverter.convert("10000") = 100.00
* </code>
* </pre>
*/
public class CentAmountFieldValueConverter implements FieldValueConverter {
public void convert(Field field) {
String value = (String) field.getDestValue();if (StringUtils.isBlank(value)) {
return;
}
try {
long cent = Long.parseLong(value); //value转化为Long型不能越界
Money amount = new Money(cent);
amount.setCent(cent);
field.setDestValue(amount.toString());
} catch (Exception e) {
field.setDestValue(value);
}
}
}
21.二叉树按照层级遍历
借助队列
22.String s = new String("abc");
分别在哪些区域做了哪些工作
23.运行时异常和受检异常区别,各自在什么情况下使用,使用特点。
运行时异常runtimeException,包括空指针,数组越界,运行时异常都继承runtimeException,受检异常包括io异常,notfindclass异常,使用时需要加trycatch才能编译。
24.Linux内核 不同版本特点 ,springcloud,springboot 事务使用,可以放在类上吗,redis 分布式锁,红锁,redis 挂了怎么办,单例我写了双检锁,问为什么要这么写呢,这样不好,jvm各垃圾收集器,使用了什么算法,几个工具,jstat等,springboot 加载过程,docker,tomcat,redis 持久化方式,用什么语言实现的,怎样运行,放在怎样的数据结构里
25.二叉树怎样查找最近的父节点,二个数组怎样找出公共部分,翻转二叉树
https://572327713.iteye.com/admin/blogs/2405375
26.二分查找,快排,数组元素的平方排序,冒泡,树的层次遍历,股票最大收益
27.Bio和NIO实现原理,业务场景,futureTask底层,还有一些设计模式具体使用场景,还有threadlocal怎样使用,场景
28.线程池,多线程那块肯定是细问的,Tomcat启动后,配置文件改变有效吗
29.Jvm各大垃圾收集器,Minorgc和fullgc
30.MQ怎样保证高可用,消息丢失怎样处理,mysql怎样持久化,不同的引擎事务处理有什么区别
binlog和redolog
31.redis如何实现集群。同步还是异步
复制偏移量,复制缓冲区。相当于异步。
dubbo协议
为什么netty没有使用aio
nio异步
new 实例一定在堆上吗
栈:基本类型的变量和对象的引用变量
33.redis可以直接改list值吗
不能
34 dubbo用户调用消费者经过哪些
Dubbo完整的一次调用链路介绍
https://www.jianshu.com/p/4fedd4946009
35 执行计划器除了type有其他哪些
第二轮:
1.线程池最大数量的含义,和队列的关系,如果是无界队列,最大数量作用。
https://572327713.iteye.com/blog/2427908
2.有界队列的工作原理。
数组 +锁
https://572327713.iteye.com/blog/2427908
3.dubbo和cloud区别
4.zuul除了根据ip,还能通过什么调用服务,如何配置。
5.spring boot 特性,加载工作原理是
https://www.cnblogs.com/canmeng-cn/p/8531381.html
工作原理,进行对StringApplication对象实例化加载spring.factories配置,将配置文件的配置装入spring容器中。
6.hashmap为什么是2的n次幂
此问题要结合移位和%取余回答
原始jdk采用取模运算%可以更均匀的分配到槽位,取模%运算有个公式,等于移位后取与&,而这个移位就是2的n次幂,具体可以看看jdk1.8的扰动函数实现,他目的是1,更均匀的达到槽点,保证不过多的hash碰撞,2.在扩容时,可以保证有尽量多的元素不再进行新的槽位选择调整位置。
7.虚引用,弱引用,软引用,强引用
内存不足时JVM就会自动回收某些对象从而避免OutOfMemory的错误)就需要用到软引用和弱引用了
强引用:
new A() 只有置为null才能回收
软引用:
SoftReference<String> sr = new SoftReference<String>(new String("hello"));
内存不足的时候JVM才会回收该对象
弱引用:
WeakReference<String> sr = new WeakReference<String>(new String("hello"));
无论内存是否充足,都会回收被弱引用关联的对
虚引用:
虚引用必须和引用队列关联使用,当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会把这个虚引用加入到与之 关联的引用队列中。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动
ReferenceQueue<String> queue = new ReferenceQueue<String>();
PhantomReference<String> pr = new PhantomReference<String>(new String("hello"), queue);
// 永远为null(幽灵引用相当于无引用)
System.out.println(pr.get());
虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之 关联的引用队列中。
引用队列:
引用队列可以配合软引用、弱引用及幽灵引用使用,当引用的对象将要被JVM回收时,会将其加入到引用队列中。
虚引用主要用来跟踪对象被垃圾回收器回收的活动。
8.volitail为什么不能保证原子性
9.spring事务的原理 A调用B为什么不会开启事务
此题目需要具体分析,是类和类之间,是不是私有方法:
https://572327713.iteye.com/admin/blogs/2439612
10.索引如果 值如果是null 会失效吗
很多博客说会,根据执行计划器看并不会失效
11.可达性分析的根在哪
常量,静态对象,native对象,->可被引用的对象
如果没有被引用,说明不用了,回收掉。
12.线程池如果某个线程有异常,线程池如何处理的。
catch打日志,
借助第三方链路跟踪日志,
线程池自己异常策略,看ThreadPoolExecutor.java类runWorker(Worker w)方法的实现:内部也会catch住,也是一个钩子方法,将 task 和异常作为参数,留给需要的子类实现,线程池留给我们做自定义业务的方法afterExecute
线程池的扩展方法包括
beforeExecute() 线程执行前调用
afterExecute() 线程执行后调用
terminaerd() 线程退出时候调用
finally 会进行解锁,只结束当前任务,当前线程会继续使用接收任务。
https://www.cnblogs.com/trust-freedom/p/6681948.html#label_3_4
13.Threadlocal如何实现安全的,从主内存方向解答。
14.一致性哈希算法
https://www.cnblogs.com/lpfuture/p/5796398.html
15.mysql分页一页大小,为什么此大小,从磁盘线程扫描大小有关来回答。
16.局促索引用的b树,非局促用的b+树。
17.hashmap null存储哪里
先去第一个数组槽位查找,eques比对替换,如果没有插入数组0链表头。
18.事务a没有声明,事务b有声明,a调用b,b会有事务吗。
任务1不生效,a没有加,但是b有加为什么不生效。b那一块生效吗。
此题目需要具体分析,是类和类之间,是不是私有方法:
https://572327713.iteye.com/admin/blogs/2439612
19.mysql如何保证一致性,原子性。
从隔离性去保证,也是悲观锁和乐观锁的使用。
20.定时多机集群
21.延时消费mq能否实现,如何实现
https://blog.csdn.net/chengjieping/article/details/81067055
22.被fanel修饰的接口对应实现使用的是spring 哪种aop方式。能否用cglib
原理区别:
java动态代理是利用反射机制(获取class文件方法)生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理(生成class字节码,在类加载到jvm中使用)。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。
1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP
2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP
3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换
https://www.cnblogs.com/zrtqsk/p/3600588.html
自己写个例子,java.lang.IllegalArgumentException: Cannot subclass final class,答案是不可以。
原生jdk动态代理和cglib是两种代理方式,都是动态代理,都是重新生成代理类的,为什么jdk动态代理可以,cglib代理不可以?
CGLib采用非常底层的字节码技术,可以为一个类(final)创建一个子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,并顺势植入横切逻辑。而final不能被继承。CGLib动态代理能代理类和接口,但是不能代理final类,也是有一定局限性。
jdk动态代理为接口创建代理实例,实现方法作为参数给目标类的接口使用。
23.jvm年轻代与老年代比例
默认1比2
24.本地缓存保存数据同步,服如何务之间如何通知,集群通知。
各个服务器订阅mq,一个专门更新主缓存到本地缓存的mq队列,
有更新数据来了,各个服务器都订阅修改自己本地缓存。
也就是修改主缓存,同时通知各个服务器的本地缓存。
2 如果是经常不改变的数据,本地缓存设置个失效时间,到了去主缓存拿一下 这样也可以实现数据更新
25.分库分表如何实现分页和排序。
实现不了,通过搜索引擎。
26.key的失效机制,redis的key超时时间,客户端是直接没有,服务端会直接剔除吗。
Redis中有三种处理策略:定时删除、惰性删除和定期删除。
27.redis的cluster集群,mget批量获取能处理吗,怎么执行的。
3.0 不支持,即使在某些客户端下返回了值,很可能仅仅只是某一个节点的值
4.0 仅支持相同slot,key不能保证在相同slot还是没用
相关推荐
《金蝶云会计常见问题汇总.docx》涵盖云会计系统的操作疑问,包括账务处理、成本计算、报表分析等内容,有助于提升会计工作的效率和准确性。 6. **总账模块问题**: 《金蝶云星空(总账)常见问题集锦.docx》集中...
**ABAQUS常见问题汇总2.0** **0. ABAQUS入门资料** 对于初次接触ABAQUS的用户,了解基本操作流程和概念至关重要。这包括学习如何创建几何模型,定义材料属性,设定边界条件,进行网格划分,以及设置求解器参数。...
本文档“【正点原子】I.MX6U 常见问题汇总V1.31”主要针对用户在使用I.MX6U过程中遇到的问题进行收集和解答,帮助用户更好地理解和解决技术难题。 1. 资料获取和硬件检查: - 资料获取:用户可以通过官方提供的...
java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典问题总结java经典...
### jlink的问题汇总 #### J-LINK仿真器简介与特性 J-LINK是SEGGER公司生产的一款高性能在线调试器,在嵌入式系统开发领域享有很高的声誉。它支持多种ARM内核,包括ARM7、ARM9、ARM11、Cortex-M3等,能够兼容不同...
在进行Fortify扫描时,可能会遇到各种问题,以下是对这些常见问题的总结和解决策略。 1. **扫描范围不准确**:Fortify可能无法正确识别项目源代码的范围,导致扫描不全或包含不必要的文件。这需要确保在配置Fortify...
SQL Server 2005 安装问题汇总 SQL Server 2005 是微软公司的一款关系数据库管理系统,具有强大的数据管理和分析功能。本文将对 SQL Server 2005 的安装问题进行汇总,包括版本选择、硬件要求、安装步骤等问题的...
PyCharm 中 PySOT 遇到的问题汇总 一、环境配置问题 在使用 PyCharm 时,遇到了多种环境配置问题。首先,在 Run-Edit Configurations 中进行环境配置,需要保留 Activate tool window 的对勾,以避免错误的程序。...
苍穹外卖项目——面试问题总结.md
ABAQUS常见问题汇总,运用abqus会遇到各种各样的问题,怎么去解决这些问题呢?
eplan一周问题汇总是来自电气CAD论坛的QQ群中的问题汇总,已收纳常见问题达约四百多个,并在后期不断更新中。
考研复试面试问题汇总是指在研究生入学考试中,面试部分的常见问题总结。这些问题涵盖了个人背景、学习经历、职业规划、兴趣爱好等多方面内容。 第一部分:个人背景 考研复试面试中,考生需要回答关于个人背景的...
MAXIMO常见问题汇总 MAXIMO开发中可能会遇到的问题总结
项目管理遇到的问题总结.pdf
标题中的知识点:移植VC6工程到VS2010可能遇到的问题总结。 描述中的知识点:移植VC6工程到VS2010过程中可能会遇到的问题总结,这些问题可以在新建同名VS2010工程下移植过程中产生,如果直接用VS2010打开VC6工程也...
9月份亲自出去面试,跑的所有公司,面试官问的问题总结。 没有答案,只有问题。
autoware环境搭建问题汇总。详细介绍了在linux上安装部署autoware遇到的各种问题及解决方法,已经实际验证过。觉得好用的请五星好评。
资源名称:JAVA开发疑难问题汇总资源目录:【】10年程序员生涯总结:从C 到Java的几点思考【】50个必备的实用jQuery代码段【】5招教你把握Java性能监控【】J2EE基础:浅谈依赖注入实现的方法【】java-内部类那点事...
Java 全栈知识点问题汇总(上) _ Java 全栈知识体系.html