下面把目前整理的一些技术点问题汇总到下面,供大家相互学习,后续会陆续补充。
- Java基础
- JVM内存模型
- Volatile关键字的原理和作用
- 多线程
– Java中有哪几种线程池
– wait/notify、sleep的区别
– Java中有哪些锁,各自的区别及应用场景
– Lambda表达式的运用
– Synchronize的实现原理
– 反射一般运用在哪些场景,有什么好处
– equals与hashcode - 注解有哪几种作用域
- 有哪些垃圾回收算法
- 内存监控与分析工具
- ThreadLocal的作用与底层实现方式
- 类的加载机制
- ConcurrentHashMap的实现原理
- RPC框架
-
Dubbo
– Dubbo支持哪些协议
– Dubbo是长连接还是每次创建新连接 -
WebService
– webservice使用的什么协议,底层实现方式是什么
- 中间件等
-
Zookeeper
– Zookeeper可以用于哪些场景
– Zookeeper分布式锁的实现原理
– Zookeeper的选举过程 -
MQ
Kafka
ActiveMQ
RabbitMQ
RocketMQ(示例:https://www.jianshu.com/p/824066d70da8)MQ发送普通消息(三种方式)(https://blog.csdn.net/dancheren/article/details/71373970)
-
Tomcat
– 如何配置Tomcat的JVM内存大小 -
ElasticSearch、Kibana、Logstash、Spring Data Elasticsearch
-
Maven
– maven有哪几种依赖范围,各自的作用域
– 如何解决Jar包冲突
- 缓存
-
Redis
– Redis有哪些数据类型,各适用于什么场景
– Redis有哪几种数据持久化方式,各有什么利弊
– Redis与Memcached对比
– 如何用Redis实现Session共享
– 怎样用Redis实现分布式锁(setNx、watch/multi/exec)
– 部署Redis集群有哪些方式
– Redis如何实现事务,底层实现方式 -
Memcached
-
数据库
– Oracle、MySql的分页写法
–Oracle动态注册、静态注册
– Mybatis
– 如何备份Oracle、MySQL
– 有哪些索引类型,各有什么优缺点
– 复合索引的执行方式
– 有哪些分表方式,各适用什么场景
– 如何在MySQL库表中存入一个emoji表情
– Mongodb -
设计模式
– 常用的设计模式
– 单例模式有哪几种实现方式
– 单例模式如何注意线程安全问题 -
授权、认证、加密
– OAuth2.0原理(https://www.cnblogs.com/flashsun/p/7424071.html) -
JS
– 创建对象的几种方式
– JS中继承的实现
– JS实现跨域 -
加密解密
– 对称密码、分组密码模式、公钥密码、混合密码
– 认证:单向散列函数、消息认证码、数字签名、证书
– 密钥、随机数、PGP、SSL/TLS -
算法
-
操作系统
-
Windows
– 判断端口是否开放
– 如何创建定时任务
– 如何添加Windows防火墙规则
– 如果安装Windows Telnet客户端
– 如何查找被占用端口的使用程序 -
Linux
– 如何创建文件
– 如何编辑文件
– 如何查看文件
– 如何修改文件名
– 如何剪切文件
– 如何查看Linux进程
– 如何查看僵尸进程
– 如何结束Linux进程
– 如何向其他Linux服务器拷贝文件
– 如何设置环境变量
– 如何查看系统版本
– 如何查看cpu与内存数据
-
网络
– Tcp与Udp的区别
– Http协议属于哪一层
– Https和Http协议的区别
– oauth认证原理 -
运维
- 如何实现高可用(网站发布方式)
– 预发布、灰度发布 - 使用svn有哪几种开发方式,各有什么利弊
– 主干开发、分支发布
– 分支开发、主干发布
附件
Java知识结构: