ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[toc] ## 涂鸦智能(2021年4月): 一面: 说一下jvm内存结构 说一下垃圾收集器和算法 说一下mysql数据的组织方式 说一下B+树和B树 说一下什么情况要用索引,索引失效的情况有哪些 说一下缓存击穿、穿透、雪崩及解决方案 给我讲一下你做的东西,包括哪些内容 二面: 如何理解aop和ioc 问了很多项目问题 ## 金蝶快递100: 笔试题: ### 1.不使用第三方jar包,将一个对象序列化为json字符串 首先,我们要知道序列化的概念。 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。 简单来说: * **序列化**: 将数据结构或对象转换成二进制字节流的过程 * **反序列化**:将在序列化过程中所生成的二进制字节流的过程转换成数据结构或者对象的过程 对于 Java 这种面向对象编程语言来说,我们序列化的都是对象(Object)也就是实例化后的类(Class)。 **实现方式**: - Serializable 接口。无论是使用 transient 关键字,还是使用 writeObject() 和 readObject() 方法,其实都是基于 Serializable 接口的序列化。 - Externalizable 接口。该接口继承于 Serializable 接口,序列化的细节需要由程序员去完成。 拓展阅读:https://www.cnblogs.com/kubixuesheng/p/10350523.html ### 2.将类改写为单例模式,注意使用效率 - 公共静态方法,实现类的实例化; - 饿汉模式或懒汉模式,完成类的实例化。 3.使用oracle创建表 4.检查下面批量插入存在的问题(题目的代码使用了jdbc操作插入) 5.html写一个提交form表单的代码 6.http请求,解释下列每一行的含义 7.将asc码转为utf-8 ### 8.客户访问服务器时,总是访问不到,看着服务是正常运行的,如果是你,你会如何排查 1. 重现问题,先查看是不是客户的网络问题,如果是让客户处理网络问题; 2. 查看客户浏览器的调试信息; 3. 重现问题过程中,观察服务器日志,比如如果用到了nginx,查看是否有日志进来,access.log和error.log; 4. 根据日志信息,定位是否后端服务之间存在网络问题。 5. web容器有时候因为操作系统的原因,也会存在假死状态,条件允许的情况下可以重启服务。 ### 9.你会怎么实现网络安全 一面: dubbo消费端都有哪些属性? dubbo有几种通信协议?通信框架使用的什么? dubbo有几种路由算法? dubbo的注册中心有哪些? 有几种线程池?什么时候用什么? Redis可以用来干什么? ### 你们的Redis容错方案? JVM的内存结构? 有哪些垃圾回收的算法? ### Mybatis的缓存?它是怎么实现的?怎么实现更新数据,清空二级缓存? Mybatis缓存有一级缓存和二级缓存。一级缓存默认开启是方法级别的,二级缓存是namespace级别的。 引入RocketMQ解决什么问题?带来了什么新的问题? spring事务隔离级别? spring的事务是怎么实现的? Spring事务的传播属性? 二面: 单体项目到分布式的架构演化是怎么样的过程? Redis主从是怎么进行数据同步的? Redis solt在重新分布的过程中,还可以访问到数据吗? Redis是CP还是AP? HTTPS建立的流程是什么? OSI七层模型?证书在第几层? UDP在使用过程中会出现什么问题? K8S包括什么?分别是干什么的? pod、service之间有什么关系,通过什么去建立关系的? 自己的职业规划是怎么样的?偏向于业务还是技术架构?