# java-interview
Senior Java engineer interview exams in 2019
高级Java工程师面试题2019
## 资深Java工程师复习计划
[资深Java工程师复习计划-2019](readme/study2019.md)
## 面试题目
### 面试题来自本人的程序员朋友面试经历,经本人和开源爱好者汇总
* 互联网大厂常考编程题
* [Hot!大厂常考编程题,点击进入](examset/README.md)
* 拍拍贷
* [使用HashMap的时候如何避免内存泄漏](readme/hashmap-memory-leak.md)
<hr/>
* 虎扑体育
```text
一、选择题
1. 以下算法中能恢复明文的加密算法有()
A. BASE64
B. RSA
C. AES
D. SHA256
E. DES
F. Blowfish
答案(ABCEF)
解析
A. BASE64属于一种编码方式,可以逆向编码,也就可以恢复明文 (可逆)
B. RSA 由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的(非对称加密)
可以恢复明文 (可逆)
C. AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高; (可逆)
D. SHA256 是一种hash加密( 不可逆)
E. DES (Data Encryption Standard) 对称加密 (可逆)
F. Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法 (可逆)
结论:除了Hash加密算法不可逆,其它的对称加密和不对称加密还有字符编码算法都是可逆的算法。
Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新
获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1、SHA-256
二、判断题
1. 如果两台主机的MAC地址相同,则无法互相通信()
答案: 未知
2. 在设计网站的登录功能的时候,为防止密码在传输过程中被非法窃取,可以通过MD5算法在浏览器端加密后传到服务器端。
服务器端通过把密码进行解密后与数据库中存储的密码进行比对一致则登录成功()
答案:错误
3. 一个进程中有多个线程,每个线程没有独立的地址空间()
答案:错误
4. MySQL的InnerDB和MyISAM引擎都支持事务()
答案:错误
5. 数据库索引可以提高增删改查等操作的速度()
答案:错误
6. 快速排序在平均情况下比冒泡排序快,不过在某些情况下冒泡排序可能比快速排序快()
答案:正确
三、问答题
1、生成10个[100,200]的随机数(优先使用JDK8新特性)
2、将以下字符串按逗号分割成List,去除每个成员项首位空格,过滤空白项,合并重复项
,逆序排列。(优先使用JDK8新特性)
String s = " z111,c888,n222,,,g000, t333,a999,c888 ,p000 ,z111 ";
3、一天有一个年轻人来到王老板的店里买了一件礼物这件礼物的成本是18元, 标价是21元。结果这个年轻人
掏出100元要买这件礼物。 王老板当时没有零钱,用100元向街坊换了100元的零钱,找给年轻人79元。但是街坊
发现那个100元是假钞,老板无奈还了街坊100元。现在问题是:王老板在这次交易中国呢到底损失了多少钱?
答案:答案不难,让读者自己体会😄
```
<hr/>
* 呆萝卜(O2O电商App)
* [1万并发量的秒杀系统怎么实现](readme/seckill-architect.md)
* [mq集群怎么保证保数据的串行处理](readme/mq-sequence-handle.md)
* [zookeeper有哪些角色](readme/zk-role.md)
* [zookeeper选举机制](https://www.linuxidc.com/Linux/2018-09/154117.htm)
* [Redis集群方式有哪几种](readme/redis-cluster-strategies.md)
* [如何排查Java的CPU性能问题-CPU100%占用](readme/cpu100percent.md)
<hr/>
* 杭州盈火网络科技有限公司
* [Consul集群原理](readme/consul-cluster-principle.md)
* [多线程环境提高并发性能的手段](readme/improve-concurrency.md)
* [JVM垃圾收集器算法](readme/gc.md)
* 分布式系统有哪些常用的算法?(至少说出2种)
答案: 一致性hash,Raft算法
<hr/>
* 杭州连连支付
两个经理没有问太多细节,可能他们是主管,都不是写代码的。 只问了下项目宏观的问题。感觉并不是真的招人。
<hr/>
* 杭银消费金融
* [SQL全表扫描有什么坏处,什么情况会导致全表扫描](readme/full-table-scan.md)
<hr/>
* 税友
* [Dubbo服务间调用(A -> B -> C, A,B和C都是多实例集群),如何跟踪调用过程,并确定调用的是哪个实例](readme/call-chain.md)
* 在读redis的并发量特别大的时候(比如达到10万qps),应该怎么做?
答案:做读写分离。master-slave.
* spring+mybatis注解方式为什么mybatis的dao接口不需要实现类?
答案:用用了jdk的动态代理机制,比如InvocationHandler+Proxy
* Nginx怎么做限流配置
可以网上查答案,是常规配置
<hr/>
* 浙江大华
* sql查询如何避免全表扫描
* Feign负载均衡策略是什么?
默认是轮询
* mysql的master与keepalived怎么做HA方案
<hr/>
* 钱兔网络
面试官没有问技术问题。都是写宏观的问题。
<hr/>
* 海康威视-仓储管理部
* 索引的分类有哪几种?
innerdb只有两种索引:btree和fulltext)
* sql语句的优化策略
<hr/>
* 传化智联
* 索引的三种
BTREE (B+TREE结构, 适合于数字和varchar)
FULLTEXT (全文检索,适合text类型)
HASH 只存在于memory引擎和nda引擎)
* sql语句的优化策略
* 如何避免全表查询
* 集群的时候如果处理"脑裂"现象?
zk脑裂, mysql集群的脑裂
* 面试被问到“classLoader双亲委托与类加载隔离”
* spring+mybatis注解方式为什么mybatis的dao接口不需要实现类?
答案:用用了jdk的动态代理机制,比如InvocationHandler+Proxy
<hr/>
* 挖财
* redis跳表 skiplist
* cms垃圾收集器
* G1垃圾收集器
* 如何编写一个spring-boot-starter组件, (类似于mybatis-spring-boot-starter)?
答案: resources下面增加一个文件夹META-INF,里面增加一个文件spring.factories
然后在自己的组件包中定义一个用@Configuration来定义的类,还有Configure对应的bean
想情见[https://github.com/liushaoming/jframe](https://github.com/liushaoming/jframe) 里
的<code>jframe-spring-boot-starter</code>
<hr/>
* 自己查漏补缺
* [微服务调用超时的处理方案](readme/call-timeout-process.md)
* [设计模式六大原则](/readme/design-pattern-principle.md)
* [CAP定理](/readme/cap.md)
* sql遗漏知识点
答案: exists与in的区别和各自的应用场景是什么? having的作用是什么?
truncate与delete的区别.
Oracle的over(), partition by的使用。partition by与group by的区别。
* valotile关键字有什么作用
* duboo或者spring cloud微服务调用超时应该怎么处理
* sql注入与防止sql注入的方法
<hr/>
* 京东金融
* Java基础
- 泛型,用过泛型吗, 泛型的原理
- 封装继承多态你是怎么理解的
- hashCode()和equals()方法可以只写一个吗?只写一个有什么问题
* 多线程
future在什么场景下使用?
* 数据库
数据库用的什么,mysql, 联合索引的有效性,创建一个含有3个字段的索引(A,B,C), where A 有效吗? where A and B 有效吗?。。。
* 框架
Spring-cloud如何保证幂等性?
* 设计模式
写一下几种单例模式, 饿汉式,懒汉
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java前后开发面试题,大厂进阶之路,基于JavaGuide、Cyc大佬、牛客上的面经及王道考研相关视频,并改进了其中说法矛盾或含糊之处。 包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多线程并发、netty、MySQL、MongoDB、Elasticsearch、Redis、HBASE
资源推荐
资源详情
资源评论
收起资源包目录
Java interview-高级Java面试题2019.zip (30个子文件)
open_1111111111111111111111150415202545243254
.gitattributes 87B
LICENSE 11KB
readme
thread-pool.md 4KB
full-table-scan.md 4KB
mq-sequence-handle.md 278B
zk-role.md 529B
cpu100percent.md 4KB
redis-cluster-strategies.md 13KB
improve-concurrency.md 14KB
seckill-architect.md 184B
call-chain.md 352B
call-timeout-process.md 3KB
index-explain.md 2KB
cap.md 3KB
gc.md 1KB
hashmap-memory-leak.md 7KB
study2019.md 664B
design-pattern-principle.md 603B
volatile.md 10KB
consul-cluster-principle.md 582B
red-black-tree.md 619B
examset
pom.xml 418B
src
main
java
com
lsm
roundrobinprint
RobinPrintReentrantLock.java 3KB
.gitignore 285B
README.md 673B
.gitignore 285B
README.md 9KB
code
CpuTest.java 277B
HashMapMemoryLeak.java 5KB
CpuTest.class 342B
共 30 条
- 1
资源评论
极致人生-010
- 粉丝: 2976
- 资源: 2825
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功