java面试
zz_ddup
这个作者很懒,什么都没留下…
展开
-
java类加载及new对象的过程
Son son = new Son(); 这句话到底做了什么事情呢? 1.javac编译.java源文件形成.class字节码文件; 2.new SubClass()对象时,先检查有没有父类,有父类,类加载器(ClassLoader)先将父类的Class文件读入内存,创建一个java.lang.Class对象,然后加载子类,类加载器将子类的Class文件读入内存,创建一个java.lang....翻译 2018-08-11 00:17:14 · 269 阅读 · 0 评论 -
Dubbo面试分析
dubbo 提供了几种均衡策略? 废话不多说,首先概览官方文档:Dubbo「负载均衡」;UML图如下 浏览了许多,还是直接上官网的负载均衡源码详解。 dubbo各通信协议对比? Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 RMI 协议采用 JDK 标准的java.rm...原创 2019-07-03 19:01:15 · 188 阅读 · 0 评论 -
【SpringBoot】- starter 机制 -- @SpringBootApplication
意义 springboot框架能够快速高效的构建一个基于spirng框架以及spring生态 体系的应用解决方案。它是对“约定优于配置”这个理念下的一个最佳实践。因此它是一个服务于框架的框架,服务的范围是简化配置文件。 ·约定优于配置的体现 ·maven的目录结构 a)默认有resources文件夹存放配置文件 ...原创 2019-08-12 17:38:56 · 870 阅读 · 0 评论 -
Kafka面试集锦
kafaka架构 ·Producer:生产者将消息发布到制定的主题中,默认使用简单的负载均衡机制选择分区,如果需要可以通过特定的分区函数选择分区,制定发布到哪个分区 ·Broker:集群汇中的一台或多台服务器统称为broker ·consumer:负责消费主题中的数据,消费时由Consumer自己来维护会话产生的数据,实际上每个consumer唯一需要维护的数据是消息在日志中的位置,也...原创 2019-07-14 16:42:42 · 145 阅读 · 0 评论 -
序列化和反序列化
一. 序列化的作用? 实现了Java 对象的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里)或者db中。 利用序列化实现远程通信,即在网络上传送对象的字节序列。 二. 概念? 序列化是把对象的状态信息转化为可存储或传输的形式过程,也就是把对象转化为字节序列的过程称为对象的序列化。 反序列化是序列化的逆向过程,把字节数组反序列化为对象,把字节序列恢复为对象的过程成为对象...原创 2019-06-24 18:08:09 · 94 阅读 · 0 评论 -
Zookeeper面试详解
一. 核心工作原理,ZAB协议? ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议(paxos算法的一种实现)。 ZAB协议包括两种基本的模式:崩溃恢复和消息广播。 当整个zookeeper集群刚刚启动或者Leader服务器宕机、重启或者网络故障导致不存在过半的服务器与Leader服务器保持正常通信时,所有进程(服务器)进入崩溃恢复模式,首先选举产生...翻译 2019-09-04 00:01:15 · 402 阅读 · 0 评论 -
线程池面试分析
一. 线程池的作用? 降低创建线程和销毁线程的性能开销 提高响应速度,当有新任务需要执行是不需要等待线程创建就可以立马执行 合理的设置线程池大小可以避免因为线程数超过硬件资源瓶颈带来的问题 二.有界和无界队列? 有界队列:就是有固定大小的队列。比如设定了固定大小的ArrayBlockingQueue,LinkedBlockingQueue,又或者大小为 0...原创 2019-06-21 20:15:07 · 767 阅读 · 0 评论 -
MyBatis面试分析
一.resultType(属性)和resultMap(标签引用)的区别? collection和association的区别? Statement和PreparedStatement的区别? #{}和${}的区别是什么? resultType不支持自定义返回结果,会将查询到的结果通过到type中java对象的同名的属性,对象中...原创 2019-06-20 15:46:13 · 85 阅读 · 0 评论 -
Redis面试分析
一. 缓存穿透、缓存击穿、缓存雪崩? 1)缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在数据库中也没有取到,这时也...翻译 2019-06-19 14:17:44 · 316 阅读 · 0 评论 -
设计模式之设计人生
1.在Java中,什么时候用重载,什么时候用重写? 在设计过程中两者的运用以及对设计原则的掌握。 重载是多态的一种实现和形式,在Java中主要是从代码应用层及用户调用者的角度来解决问题;也是追寻开闭原则。 例:在spring中的getBean()方法,名字相同,意味着它的功能是相同的,但getBean有很多场景,可以传入BeanName,也可以传入BeanClass等,因为用户在使用时根据...原创 2019-05-20 15:32:00 · 310 阅读 · 0 评论 -
2019 个人亲身经历,面试分析
elasticsearch 分页的实现,比如从三个库中各抓去十条数据,怎么实现分页? 库存回滚,库存已经扣减,支付失败,怎样恢复库存? 对象创建时的内存分布,内存区域划分,内存管理,gc算法? hashtable 和 hashMap 的区别? maven如何配置,把项目打成 jar 运行? springboot 以 jar 启动时,怎样命令启动,运行不同的环境配置,比如开发和测试? ...原创 2019-09-05 11:42:58 · 307 阅读 · 0 评论