手机h5免费模板网站模板宁波哪家建网站好
2026/1/10 2:32:35 网站建设 项目流程
手机h5免费模板网站模板,宁波哪家建网站好,网页设计展望怎么写,seo关键词排名优化【面试现场】谢飞机大战Java面试官#xff1a;从基础到架构的爆笑面试实录 第一轮#xff1a;Java基础与集合框架 面试官#xff1a;谢飞机同学#xff0c;你好。我是今天的面试官#xff0c;我们开始第一轮技术面试。首先问个基础问题#xff1a;Java中ArrayList和Linke…【面试现场】谢飞机大战Java面试官从基础到架构的爆笑面试实录第一轮Java基础与集合框架面试官谢飞机同学你好。我是今天的面试官我们开始第一轮技术面试。首先问个基础问题Java中ArrayList和LinkedList有什么区别谢飞机这个简单ArrayList就是数组LinkedList就是链表。ArrayList查得快LinkedList增删快。就像吃饭一样ArrayList是自助餐想吃什么直接拿LinkedList是点餐得一个个来。面试官点头比喻不错。那HashMap的实现原理呢谢飞机HashMap啊就是键值对存储。它底层是数组加链表不对JDK8之后是数组加链表加红黑树。就像我家的衣柜衣服值挂在衣架键上衣架多了就得分层放。面试官很好。那HashMap在多线程环境下有什么问题谢飞机多线程那会打架啊两个线程同时put可能会把数据打乱严重的还会死循环。就像两个人同时往衣柜里塞衣服最后衣服都缠在一起了。面试官正确。那ConcurrentHashMap如何解决这个问题谢飞机这个...它用了分段锁不对JDK8之后用了CAS和synchronized。就像给衣柜加了密码锁每个人有自己的格子互不干扰。面试官微笑基础不错我们进入下一轮。第二轮多线程与JVM面试官现在聊聊多线程。创建线程有几种方式谢飞机三种继承Thread类、实现Runnable接口、实现Callable接口。还有线程池也算吧面试官线程池的参数有哪些谢飞机核心线程数、最大线程数、队列容量、拒绝策略...还有存活时间。就像我们公司的食堂核心员工核心线程固定座位临时工非核心线程看情况加座座位满了就排队队列队也排不下就拒绝拒绝策略。面试官笑这个比喻很形象。那线程池的拒绝策略有哪些谢飞机AbortPolicy直接抛异常CallerRunsPolicy让调用者执行DiscardPolicy直接丢弃DiscardOldestPolicy丢弃最老的。就像食堂满了要么不让进抛异常要么让老板自己做调用者执行要么把最早的菜倒了丢弃最老要么直接说没饭了直接丢弃。面试官很好。JVM内存结构了解吗谢飞机堆、栈、方法区、程序计数器、本地方法栈。堆放对象栈放局部变量方法区放类信息。就像我家客厅堆放大家具卧室栈放私人物品书房方法区放书和资料。面试官那垃圾回收算法呢谢飞机标记-清除、标记-整理、复制算法、分代收集。就像收拾房间标记要扔的标记扔掉清除整理剩下的整理把东西从一个房间搬到另一个复制不同东西不同处理分代。面试官满意地点头基础很扎实我们进入最后一轮。第三轮框架与中间件面试官Spring中Bean的生命周期了解吗谢飞机实例化、属性赋值、初始化、使用、销毁。就像人的一生出生实例化、学习属性赋值、工作初始化、生活使用、退休销毁。面试官Spring AOP的实现原理谢飞机动态代理JDK动态代理和CGLIB。就像请了个秘书代理帮你处理一些杂事切面你只需要关注核心工作。面试官MyBatis中#{}和${}的区别谢飞机#{}是预编译防止SQL注入${}是字符串替换。就像点外卖#{}是正规平台安全${}是路边摊可能不卫生。面试官Redis的持久化机制谢飞机RDB快照和AOF日志。RDB像拍照定期保存AOF像写日记记录每个操作。就像存钱RDB是定期存款AOF是流水账。面试官MySQL的索引原理谢飞机B树就像书的目录快速找到内容。聚簇索引存数据非聚簇索引存指针。面试官最后问个设计模式单例模式有几种写法谢飞机饿汉式、懒汉式、双重检查锁、静态内部类、枚举。就像追女朋友饿汉式一见钟情马上表白懒汉式等对方先表示双重检查锁确认对方是否单身再行动...面试官大笑好了今天的面试就到这里。你的基础不错思维也很活跃。回去等通知吧HR会联系你的。谢飞机谢谢面试官那我先回去了。技术知识点详解1. ArrayList vs LinkedListArrayList底层基于动态数组实现随机访问快O(1)通过索引直接定位增删慢O(n)需要移动元素默认初始容量10扩容1.5倍LinkedList底层基于双向链表实现增删快O(1)只需修改指针随机访问慢O(n)需要遍历每个节点存储前后指针和数据2. HashMap原理数据结构JDK7数组 链表JDK8数组 链表/红黑树链表长度≥8时转红黑树关键参数初始容量16负载因子0.75扩容阈值容量 × 负载因子哈希冲突解决链地址法拉链法再哈希法开放地址法3. 多线程安全问题HashMap线程不安全表现死循环JDK7 resize时可能形成环形链表数据丢失并发put可能覆盖数据size不准确ConcurrentHashMap解决方案JDK7分段锁SegmentJDK8CAS synchronized锁单个桶Node数组 链表/红黑树4. 线程池参数详解七大参数corePoolSize核心线程数maximumPoolSize最大线程数keepAliveTime空闲线程存活时间unit时间单位workQueue工作队列threadFactory线程工厂handler拒绝策略四种拒绝策略AbortPolicy抛RejectedExecutionExceptionCallerRunsPolicy调用者线程执行DiscardPolicy直接丢弃DiscardOldestPolicy丢弃队列最老任务5. JVM内存结构五大区域堆Heap对象实例、数组栈Stack局部变量、操作数栈方法区Method Area类信息、常量、静态变量程序计数器PC Register当前线程执行位置本地方法栈Native StackNative方法6. 垃圾回收算法四大算法标记-清除标记可达对象清除未标记产生碎片标记-整理标记后整理消除碎片移动对象复制算法分两块存活对象复制到另一块空间浪费分代收集新生代复制、老年代标记-整理7. Spring Bean生命周期完整流程实例化Instantiation属性赋值Populate初始化InitializationBeanNameAware.setBeanName()BeanFactoryAware.setBeanFactory()ApplicationContextAware.setApplicationContext()BeanPostProcessor.postProcessBeforeInitialization()InitializingBean.afterPropertiesSet()init-methodBeanPostProcessor.postProcessAfterInitialization()使用In Use销毁DestructionDisposableBean.destroy()destroy-method8. Spring AOP原理两种代理方式JDK动态代理基于接口使用Proxy.newProxyInstance()CGLIB代理基于继承生成子类使用Enhancer.create()AOP术语切面Aspect横切关注点连接点JoinPoint方法执行点通知Advice增强逻辑切入点Pointcut匹配连接点引入Introduction添加方法/属性目标对象Target被代理对象代理Proxy增强后的对象织入Weaving将切面应用到目标对象9. MyBatis #{} vs ${}#{}预编译使用PreparedStatement防止SQL注入自动添加单引号示例WHERE name #{name}→WHERE name ?${}字符串替换使用Statement存在SQL注入风险直接替换不加单引号示例ORDER BY ${column}→ORDER BY name10. Redis持久化RDB快照优点文件小、恢复快、适合备份缺点可能丢失数据、fork时阻塞配置save 900 1900秒内1个key变化AOF追加日志优点数据安全、可读性强缺点文件大、恢复慢同步策略always/everysec/no11. MySQL索引原理B树特点多路平衡搜索树叶子节点存储数据有序链表连接非叶子节点只存键值和指针所有查询到叶子节点结束索引类型聚簇索引叶子节点存整行数据主键索引非聚簇索引叶子节点存主键值二级索引覆盖索引索引包含查询所需字段12. 单例模式五种实现饿汉式类加载时创建线程安全懒汉式首次调用创建需加锁双重检查锁减少锁粒度volatile防重排序静态内部类利用类加载机制延迟加载枚举最安全防反射攻击最佳实践需要延迟加载静态内部类需要防反射枚举简单场景饿汉式面试技巧总结基础要扎实集合、多线程、JVM是必考点理解原理不仅要会用还要知道为什么结合实际用生活例子解释技术概念循序渐进从简单到复杂展现思考过程保持幽默适当幽默缓解紧张气氛希望这篇面试实录能帮助大家在Java面试中游刃有余既能展现技术实力又能让面试过程更加愉快

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询