闭关28天,奉上[Java一线大厂高岗面试题解析合集],备战金三银四

死磕JAVA10余年,呕心整理出了核心知识点已经做成PDF,无私奉献 想在面试、工作中脱颖而出?想在最短的时间内快速掌握 Java 的核心基础知识点?想要成为一位优秀的 Java 工程师?本篇文章能助你一臂之力!目前正值招聘求职旺季,很多同学对一些新技术名词都能侃侃而谈,但对一些核心原理理解的不够透彻,特别是对 Java的一些核心基础知识点掌握的不够,例如JVM、常用的算法和数据结构等。正所谓万丈高楼平地起,只有把基础掌握的牢固,才能走的更远,面对不断更新的技术才能快速掌握,同时在面试、工作中也更能脱颖而出! 阅读详情

估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之路了吧,机会来临,好好把握,争取一举上岸!从11月份开始小编就在整理“Java一线大厂高岗面试题”,一题一题的抠,整出了这份[Java面试汇总(附解析)],总共有以下六部分的内容:

  • Java基础-中级-高级
  • 开源框架(SSM:Spring+SpringMVC+MyBatis)
  • 性能调优(JVM+MySQL+Tomcat)
  • 分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
  • 微服务(SpringBoot+SpringCloud+Dubbo)
  • 其他:并发编程+设计模式+数据结构与算法+网络


请注意:全文篇幅有点长(请耐心阅读),给出了全部的题目,也正是因为篇幅有限,所以答案解析这块只给了部分。


第一部分:Java基础-中级-高级

第一部分:Java基础-中级-高级
1.1 Java基础面试题汇总

  • 1. 面向对象和面向过程的区别?
  • 2. Java 语言有哪些特点?
  • 3. 关于 JVM JDK 和 JRE 最详细通俗的解答
  • 4. Oracle JDK 和 OpenJDK 的对比
  • 5. Java 和 C++的区别?
  • 6. 什么是 Java 程序的主类?应用程序和小程序的主类有何不同?
  • 7. Java 应用程序与小程序之间有哪些差别?
  • 8. 字符型常量和字符串常量的区别
  • 9. 构造器 Constructor 是否可被 override?
  • 10. 重载和重写的区别?
  • 11. Java 面向对象编程三大特性: 封装 继承 多态
  • 12. String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
  • 13. 自动装箱与拆箱
  • 14. 在一个静态方法内调用一个非静态成员为什么是非法的?
  • 15. 在 Java 中定义一个不做事且没有参数的构造方法的作用?
  • 16. import java 和 javax 有什么区别?
  • 17. 接口和抽象类的区别是什么?
  • 18. 成员变量与局部变量的区别有哪些?
  • 19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?
  • 20. 什么是方法的返回值?返回值在类的方法里的作用是什么?
  • 21. 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?
  • 22. 构造方法有哪些特性?
  • 23. 静态方法和实例方法有何不同?
  • 24. 对象的相等与指向他们的引用相等,两者有什么不同?
  • 25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
  • 26. == 与 equals(重要)
  • 27. hashCode 与 equals(重要)
  • 28. 为什么 Java 中只有值传递?
  • 29. 简述线程,程序、进程的基本概念。以及他们之间关系是什么
  • 30. 线程有哪些基本状态?
  • 31. 关于 final 关键字的一些总结
  • 32. Java 中的异常处理
  • 33. Java 序列化中如果有些字段不想进行序列化 怎么办?
  • 34. 获取用键盘输入常用的的两种方法?

Java基础面试题-答案解析
1.2 Java中级面试题汇总

  • 1. HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理
  • 2. Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别
  • 3. Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点
  • 4. SpringCould组件有哪些,他们的作用是什么?(说七八个)微服务的CAP是什么?BASE是什么?
  • 5. 设计模式(说五六个)
  • 6. Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透
  • 7. 线程是什么,有几种实现方式,它们之间的区别是什么,线程池实现原理,JUC并发包,ThreadLocal与Lock和Synchronize区别?
  • 8. 分布式事务(不同系统之间如何保证数据的一致性(A系统写入数据,B系统因为某些原因没有写入成功,造成数据不一致))
  • 9. 安全性问题(数据篡改(拿到别人的URL,篡改数据(金额)发送给系统))
  • 10. 索引使用的限制条件,sql优化有哪些,数据同步问题(缓存,数据库数据同步)
  • 11. 初始化Bean对象有几个步骤,它的生命周期
  • 12. JVM内存模型,算法,垃圾回收器,调优,类加载机制(双亲委派),创建一个对象,这个对象在内存中是怎么分配的?
  • 13. 如何设计一个秒杀系统?(高并发高可用分布式集群)
  • 14. 悲观锁,乐观锁,读写锁,行锁,表锁,自旋锁,死锁,分布式锁,线程同步锁,公平锁,非公平锁分别是什么?
  • 15. 堆溢出,栈溢出的出现场景以及解决方案
  • 16. 说出几种MQ之间的区别,以及为什么使用这种MQ,消息重复发送(幂等性),消息发送失败,消息掉包,长时间收不到消息,发送的消息太大造成接收不成功
  • 17. 单点登录实现原理
  • 18. 假如有上亿条数据,你如何快速找到其中一条你想要的数据(几种简单的算法)
  • 19. Dubbo的运行原理,支持什么协议,与SpringCould相比它为什么效率要高一些,Zookeeper底层原理
  • 20. 假如你带一个团队,让你设计一个系统,你需要考虑哪些?

Java中级面试题-答案解析
1.3 Java高级面试题汇总

  • 1. 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
  • 2. 如何保证消息队列的高可用?
  • 3. 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
  • 4. 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
  • 5. 如何保证消息的顺序性?
  • 6. 如何解决消息队列的延时以及过期失效问题? 消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 7. 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路?
  • 8. 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?
  • 9. redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?
  • 10. redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
  • 11. redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?
  • 12. 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨
  • 13. redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?
  • 14. redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?
  • 15. 了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?
  • 16. 如何保证缓存与数据库的双写一致性?
  • 17. 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
  • 18. 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
  • 19. 如何设计可以动态扩容缩容的分库分表方案?
  • 20. 分库分表之后,id 主键如何处理?
  • 21. 有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决MySQL 主从同步的延时问题?
  • 22. 如何设计一个高并发系统?
  • 23. 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?
  • 24. dubbo 支持哪些通信协议?支持哪些序列化协议?说一下Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
  • 25. dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
  • 26. 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
  • 27. 分布式服务接口的幂等性如何设计(比如不能重复扣款)?
  • 28. 如何自己设计一个类似 Dubbo 的 RPC 框架?
  • 29. 一般实现分布式锁都有哪些方式?使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?
  • 30. 分布式事务了解吗?你们是如何解决分布式事务问题的?
  • 31. 服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 32. 什么是 Netflix Feign?它的优点是什么?
  • 33. 负载平衡的意义什么?
  • 34. 什么是 Spring Cloud Bus?我们需要它吗?

Java高级面试题-答案解析
第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
2.1 Spring面试题汇总

  • 1. 谈谈对 Spring IoC 的理解?
  • 2. 谈谈对 Spring DI 的理解?
  • 3. BeanFactory 接口和 ApplicationContext 接口不同点是什么?
  • 4. 请介绍你熟悉的 Spring 核心类,并说明有什么作用?
  • 5. 介绍一下 Spring 的事务的了解?
  • 6. 介绍一下 Spring 的事务实现方式?
  • 7. 解释 AOP 模块
  • 8. Spring 的通知类型有哪些,请简单介绍一下?
  • 9. Spring 通知类型使用场景分别有哪些?
  • 10. 请介绍一下你对 Spring Beans 的理解?
  • 11. Spring 有哪些优点?
  • 12. 在Spring中使用hibernate的方法步骤
  • 13. Spring 和 Struts 的区别?
  • 14. Spring 框架由哪几部分组成?
  • 15. 谈谈你对 BeanFactory的理解,BeanFactory 实现举例
  • 16. 谈谈对 Spring 中的 Web 模块的理解
  • 17. BeanFactory 和 Application contexts 有什么区别?
  • 18. 谈谈你对 Spring 依赖注入的理解?
  • 19. 什么是 Bean 装配?
  • 20. 什么是 Bean 的自动装配?
  • 21. 介绍一下自动装配有几种方式?
  • 22. 什么是基于注解的容器配置?
  • 23. 简述 JdbcTemplate 类的作用
  • 24. 解释 AOP
  • 25. 解释 Aspect 切面
  • 26. 简述 Spring AOP 中的通知
  • 27. Spring AOP 中的植入你怎样理解?
  • 28. 请详细介绍一下 Spring MVC 的流程?
  • 29. Spring 配置文件?
  • 30. @RequestMapping 注解用在类上面有什么作用
  • 31. 怎么样把某个请求映射到特定的方法上面
  • 32. 谈谈 Spring 对 DAO 的支持
  • 33. Spring 配置 Bean 实例化有哪些方式?
  • 34. Bean 注入属性有哪几种方式
  • 35. 在 Spring 中如何实现时间处理?
  • 36. Spring 中如何更高效的使用 JDBC ?
  • 37. 请介绍一下设计模式在 Spring 框架中的使用?
  • 38. 讲讲 Spring 框架的优点有哪些?
  • 39. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?
  • 40. 你怎样定义类的作用域?
  • 41. 解释 Spring 支持的几种 Bean 的作用域
  • 42. 在 Spring 中如何注入一个 Java 集合?
  • 43. 你可以在 Spring 中注入一个 null 和一个空字符串吗?
  • 44. 什么是基于 Java 的 Spring 注解配置? 给一些注解的例子
  • 45. 你更倾向用哪种事务管理类型?
  • 46. Bean 的调用方式有哪些?
  • 47. Spring MVC 里面拦截器是怎么写的
  • 48. 当一个方法向 AJAX 返回特殊对象,比如 Object、List 等,需要做什么处理?
  • 49. 如何使用 Spring MVC 完成 JSON 操作
  • 50. Spring 如何整合 Hibernate
  • 51. Spring 如何整合 Struts2 ?
  • 52. 开发中主要使用 Spring 的什么技术 ?
  • 53. 介绍一下 Spring MVC 常用的一些注解
  • 54. Spring 框架的事务管理有哪些优点
  • 55. IoC 控制反转设计原理?
  • 56. Spring 的生命周期?
  • 57. Spring 如何处理线程并发问题?
  • 58. 核心容器(应用上下文)模块的理解?
  • 59. 为什么说 Spring 是一个容器?
  • 60. Spring 的优点?
  • 61. Spring 框架中的单例 Beans 是线程安全的么?
  • 62. Spring 框架中有哪些不同类型的事件?
  • 63. IoC 的优点是什么?
  • 64. 解释 Spring 框架中 Bean 的生命周期
  • 65. 什么是 Spring 的内部 Bean?
  • 66. 自动装配有哪些局限性 ?
  • 67. Spring 框架的事务管理有哪些优点?
  • 68. 在 Spring AOP 中,关注点和横切关注的区别是什么?
  • 69. 说说 Spring AOP 的底层实现原理?
  • 70. 如何给 Spring 容器提供配置元数据?
  • 71. 哪些是重要的 Bean 生命周期方法? 你能重载它们吗?
  • 72. 讲下 Spring MVC 的执行流程
  • 73. Spring MVC 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  • 74. Spring 中循环注入的方式?
  • 75. Spring MVC 比较 Struts2
  • 76. 什么是 Spring Boot?
  • 77. Spring Boot 自动配置的原理?
  • 78. Spring Boot 读取配置文件的方式?
  • 79. 什么是微服务架构?
  • 80. Ribbon 和 Feign 的区别?
  • 81. Spring Cloud 断路器的作用?
  • 82. 为什么要用 Spring Boot?
  • 83. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
  • 84. Spring Boot 的配置文件有哪几种格式?它们有什么区别?
  • 85. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
  • 86. 开启 Spring Boot 特性有哪几种方式?
  • 87. Spring Boot 需要独立的容器运行吗?
  • 88. 运行 Spring Boot 有哪几种方式?
  • 89. 你如何理解 Spring Boot 中的 Starters?
  • 90. 如何在 Spring Boot 启动的时候运行一些特定的代码?
  • 91. Spring Boot 有哪几种读取配置的方式?
  • 92. Spring Boot 实现热部署有哪几种方式?
  • 93. Spring Boot 多套不同环境如何配置?
  • 94. Spring Boot 可以兼容老 Spring 项目吗,如何做?
  • 95. 什么是 Spring Cloud?
  • 96. 介绍一下 Spring Cloud 常用的组件?
  • 97. Spring Cloud 如何实现服务注册的?
  • 98. 什么是负载均衡?有什么作用?
  • 99. 什么是服务熔断?
  • 100. 请介绍一下 Ribbon 的主要作用?

Spring面试题-答案解析
2.2 SpringMVC面试题汇总

  • 1. 什么是 SpringMvc?
  • 2. Spring MVC 的优点:
  • 3. SpringMVC 工作原理?
  • 4. SpringMVC 流程?
  • 5. SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  • 6. 如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
  • 7. SpingMvc 中的控制器的注解一般用哪个,有没有别的注解可以替代?
  • 8. @RequestMapping 注解用在类上面有什么作用?
  • 9. 怎么样把某个请求映射到特定的方法上面?
  • 10. 如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
  • 11. 怎么样在方法里面得到 Request,或者 Session?
  • 12. 我想在拦截的方法里面得到从前台传入的参数,怎么得到?
  • 13. 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
  • 14. SpringMvc 中函数的返回值是什么?
  • 15. SpringMVC 怎么样设定重定向和转发的?
  • 16. SpringMvc 用什么对象从后台向前台传递数据的?
  • 17. SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
  • 18. 怎么样把 ModelMap 里面的数据放入 Session 里面?
  • 19. SpringMvc 怎么和 AJAX 相互调用的?
  • 20. 讲下 SpringMvc 的执行流程
  • 21. SpringMvc 里面拦截器是怎么写的?
  • 22. 当一个方法向 AJAX 返回特殊对象,比如 Object,List 等,需要做什么处理?

SpringMVC面试题-答案解析
2.3 MyBatis面试题汇总

  • 1. 什么是 MyBatis?讲下 MyBatis 的缓存
  • 2. Mybatis 是如何进行分页的?分页插件的原理是什么?
  • 3. 简述 Mybatis 的插件运行原理,以及如何编写一个插件?
  • 4. Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
  • 5. #{}和${}的区别是什么?
  • 6. 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
  • 7. Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
  • 8. MyBatis 与 Hibernate 有哪些不同?
  • 9. MyBatis 的好处是什么?
  • 10. 简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?
  • 11. 什么是 MyBatis 的接口绑定,有什么好处?
  • 12. 接口绑定有几种实现方式,分别是怎么实现的?
  • 13. 什么情况下用注解绑定,什么情况下用 xml 绑定?
  • 14. MyBatis 实现一对一有几种方式?具体怎么操作的?
  • 15. Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
  • 16. MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?
  • 17. Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
  • 18. Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
  • 19. 当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?
  • 20. 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, Dao 的工作原理,是否可以重载?
  • 21. Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
  • 22. Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?
  • 23. Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
  • 24. Mybatis 中如何指定使用哪一种 Executor 执行器?
  • 25. Mybatis 执行批量插入,能返回数据库主键列表吗?
  • 26. Mybatis 是否可以映射 Enum 枚举类?
  • 27. 如何获取自动生成的(主)键值?
  • 28. 在 mapper 中如何传递多个参数?
  • 29. resultType resultMap 的区别?
  • 30. 使用 MyBatis 的 mapper 接口调用时有哪些要求?
  • 31. Mybatis 比 IBatis 比较大的几个改进是什么?
  • 32. IBatis 和 MyBatis 在核心处理类分别叫什么?在细节上的不同有哪些?

MyBatis面试题-答案解析
第三部分:性能调优(JVM+MySQL+Tomcat)

第三部分:性能调优(JVM+MySQL+Tomcat)
3.1 JVM面试题汇总

  • 1. Java 类加载过程?
  • 2. 描述一下 JVM 加载 Class 文件的原理机制?
  • 3. Java 内存分配
  • 4. GC 是什么? 为什么要有 GC?
  • 5. 简述 Java 垃圾回收机制
  • 6. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  • 7. 垃圾回收的优点和原理。并考虑 2 种回收机制
  • 8. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • 9. Java 中会存在内存泄漏吗,请简单描述
  • 10. 深拷贝和浅拷贝
  • 11. System.gc() 和 Runtime.gc() 会做什么事情?
  • 12. finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
  • 13. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
  • 14. 什么是分布式垃圾回收(DGC)?它是如何工作的?
  • 15. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
  • 16. 在 Java 中,对象什么时候可以被垃圾回收?
  • 17. 简述 Java 内存分配与回收策略以及 Minor GC 和 MajorGC
  • 18. JVM 的永久代中会发生垃圾回收么?
  • 19. Java 中垃圾收集的方法有哪些?
  • 20. 什么是类加载器,类加载器有哪些?
  • 21. 类加载器双亲委派模型机制?

JVM面试题-答案解析
3.2 MySQL面试题汇总

  • MySQL21个最佳性能优化实践
  • 1. 为查询缓存优化你的查询
  • 2. EXPLAIN你的SELECT查询
  • 3. 当只要一行数据时使用LIMIT 1
  • 4. 为搜索字段建索引
  • 5. 在Join表的时候使用相当类型的例,并将其索引
  • 6. 千万不要 ORDER BY RAND()
  • 7. 避免 SELECT *
  • 8. 永远为每张表设置一个 ID
  • 9. 使用 ENUM 而不是 VARCHAR
  • 10. 从 PROCEDURE ANALYSE() 取得建议
  • 11. 尽可能的使用 NOT NULL
  • 12. Prepared Statements
  • 13. 无缓冲的查询
  • 14. 把 IP 地址存成 UNSIGNED INT
  • 15. 固定长度的表会更快
  • 16. 垂直分割
  • 17. 拆分大的 DELETE 或 INSERT 语句
  • 18. 越小的列会越快
  • 19. 选择正确的存储引擎
  • 20. 使用一个对象关系映射器(Object Relational Mapper)
  • 21. 小心“永久链接”
  • MySQL高频面试题汇总
  • 1. 事务四大特性(ACID)原子性、一致性、隔离性、持久性?
  • 2. 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
  • 3. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
  • 4. MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
  • 5. 查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
  • 6. 什么是临时表,临时表什么时候删除?
  • 7. MySQL B+Tree索引和Hash索引的区别?
  • 8. sql查询语句确定创建哪种类型的索引?如何优化查询?
  • 9. 聚集索引和非聚集索引区别?
  • 10. 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
  • 11. 非关系型数据库和关系型数据库区别,优势比较?
  • 12. 数据库三范式,根据某个场景设计数据表?
  • 13. 数据库的读写分离、主从复制,主从复制分析的 7 个问题?
  • 14. 使用explain优化sql和索引?
  • 15. MySQL慢查询怎么解决?
  • 16. 什么是 内连接、外连接、交叉连接、笛卡尔积等?
  • 17. mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
  • 18. varchar和char的使用场景?
  • 19. mysql 高并发环境解决方案?
  • 20. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?

MySQL21个最佳性能优化实践

MySQL高频面试题-答案解析
3.3 Tomcat面试题汇总

  • 1. 你怎样给 tomcat 去调优?
  • 2. 如何加大 tomcat 连接数
  • 3. tomcat 中如何禁止列目录下的文件
  • 4. 怎样加大 tomcat 的内存
  • 5. Tomcat 有几种部署方式
  • 6. Tomcat 的优化经验
  • 7. Tomcat 的缺省端口是多少,怎么修改?
  • 8. tomcat 有哪几种 Connector 运行模式( 优化) ?
  • 9. Tomcat 有几种部署方式?
  • 10. tomcat 容器是如何创建 servlet 类实例?用到了什么原理?
  • 11. tomcat 如何优化?
  • 12. 内存调优
  • 13. 垃圾回收策略调优
  • 14. 添加 JMS 远程监控
  • 15. 专业点的分析工具有
  • 16. 关于 Tomcat 的 的 session 数目
  • 17. 监视 Tomcat 的内存使用情况
  • 18. 打印类的加载情况及对象的回收情况
  • 19. Tomcat 一个请求的完整过程
  • 20. Tomcat 工作模式?

Tomcat面试题-答案解析
第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
4.1 分布式限流之ZK面试题汇总

  • 1. ZooKeeper 是什么?
  • 2. ZooKeeper 提供了什么?
  • 3. Zookeeper 文件系统
  • 4. 四种类型的 znode
  • 5. Zookeeper 通知机制
  • 6. Zookeeper 做了什么?
  • 7. zk 的命名服务(文件系统)
  • 8. zk 的配置管理(文件系统、通知机制)
  • 9. Zookeeper 集群管理(文件系统、通知机制)
  • 10. Zookeeper 分布式锁(文件系统、通知机制)
  • 11. 获取分布式锁的流程
  • 12. Zookeeper 队列管理(文件系统、通知机制)
  • 13. Zookeeper 数据复制
  • 14. Zookeeper 工作原理
  • 15. zookeeper 是如何保证事务的顺序一致性的?
  • 16. Zookeeper 下 Server 工作状态
  • 17. zookeeper 是如何选取主 leader 的?
  • 18. 分布式通知和协调
  • 19. 机器中为什么会有 leader?
  • 20. zk 节点宕机如何处理?
  • 21. Zookeeper 同步流程
  • 22. zookeeper 负载均衡和 nginx 负载均衡区别
  • 23. zookeeper watch 机制

分布式限流之ZK面试题-答案解析
4.2 分布式限流之Nginx面试题汇总

  • 1. 请解释一下什么是 Nginx?
  • 2. 请列举 x Nginx 的一些特性。
  • 3. 请列举 x Nginx 和 和 Apache 之间的不同点
  • 4. 请解释 x Nginx 如何处理 P HTTP 请求。
  • 5. 在 x Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
  • 6. 使用 “ 反向代理服务器 ”
  • 7. 请列举 x Nginx 服务器的最佳用途。
  • 8. 请解释 x Nginx 服务器上的 r Master 和 和 r Worker 进程分别是什么?
  • 9. 请解释你如何通过不同于 0 80 的端口开启 Nginx?
  • 10. 请解释是否有可能将 x Nginx 的错误替换为 2 502 错误?
  • 11. 在 x Nginx 中,解释如何在 L URL 中保留双斜线? ?
  • 12. 请解释 e ngx_http_upstream_module 的作用是什么?
  • 13. 请解释什么是 K C10K 问题?
  • 14. 请陈述 s stub_status 和 和 r sub_filter 指令的作用是什么?
  • 15. 解释 x Nginx 是否支持将请求压缩到上游?
  • 16. 解释如何在 x Nginx 中获得当前的时间?
  • 17. 用 x Nginx 服务器解释s -s 的目的是什么?
  • 18. 解释如何在 x Nginx 服务器上添加模块?

分布式限流之Nginx面试题-答案解析
4.3 分布式缓存之Redis面试题汇总

  • 1. redis 简介
  • 2. 为什么要用 redis /为什么要用缓存(高性能、高并发)
  • 3. 为什么要用 redis 而不用 map/guava 做缓存?
  • 4. redis 和 memcached 的区别
  • 5. redis 常见数据结构以及使用场景分析(String、Hash、List、Set、Sorted Set)
  • 6. redis 设置过期时间
  • 7. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
  • 8. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
  • 9. redis 事务
  • 10. Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)
  • 11. 分布式环境下常见的应用场景(分布式锁、分布式自增 ID)
  • 12. Redis 集群模式(主从模式、哨兵模式、Cluster 集群模式)
  • 13. 如何解决 Redis 的并发竞争 Key 问题
  • 14. 如何保证缓存与数据库双写时的数据一致性?

分布式缓存之Redis面试题-答案解析
4.4 分布式缓存之MongoDB面试题汇总

  • 1. 你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用NoSQL 数据库?说一说 NoSQL 数据库的几个优点?
  • 2. NoSQL 数据库有哪些类型?
  • 3. MySQL 与 MongoDB 之间最基本的差别是什么?
  • 4. 你怎么比较 MongoDB、CouchDB 及 CouchBase?
  • 5. MongoDB 成为最好 NoSQL 数据库的原因是什么?
  • 6. 32 位系统上有什么细微差别?
  • 7. journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
  • 8. 分析器在 MongoDB 中的作用是什么?
  • 9. 名字空间(namespace)是什么?
  • 10. 如果用户移除对象的属性,该属性是否从存储层中删除?
  • 11. 能否使用日志特征进行安全备份?
  • 12. 允许空值 null 吗?
  • 13. 更新操作立刻 fsync 到磁盘?
  • 14. 如何执行事务/加锁?
  • 15. 为什么我的数据文件如此庞大?
  • 16. 启用备份故障恢复需要多久?
  • 17. 什么是 master 或 primary?
  • 18. 什么是 secondary 或 slave?
  • 19. 我必须调用 getLastError 来确保写操作生效了么?
  • 20. 我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB 环境?
  • 21. 分片(sharding)和复制(replication)是怎样工作的?
  • 22. 数据在什么时候才会扩展到多个分片(shard)里?
  • 23. 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
  • 24. 如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?
  • 25. 我可以把 moveChunk 目录里的旧文件删除吗?
  • 26. 我怎么查看 Mongo 正在使用的链接?
  • 27. 如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?
  • 28. 如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
  • 29. 当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
  • 30. MongoDB 在 A:{B,C}上建立索引,查询 A:{B,C}和 A:{C,B}都会使用索引吗?
  • 31. 如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?
  • 32. MongoDB 支持存储过程吗?如果支持的话,怎么用?
  • 33. 如何理解 MongoDB 中的 GridFS 机制,MongoDB 为何使用 GridFS 来存储文件?

分布式缓存之MongoDB面试题-答案解析
4.5 分布式缓存之memcached面试题汇总

  • 1. memcached 是怎么工作的?
  • 2. memcached 最大的优势是什么?
  • 3. memcached 和服务器的 local cache (比如 PHP 的 的 APC 、mmap 文件等)相比,有什么优缺点?
  • 4. memcached 和 和 MySQL 的 的 query cache 相比,有什么优缺点?
  • 5. memcached 的 的 cache 机制是怎样的?
  • 6. memcached 如何实现冗余机制?
  • 7. 我需要把 memcached 中的 item 批量导出导入,怎么办?
  • 8. memcached 如何处理容错的?
  • 9. 如何将 memcached 中 中 item 批量导入导出?
  • 10. memcached 是如何做身份验证的?
  • 11. memcached 的多线程是什么?如何使用它们?
  • 12. memcached 能接受的 key 的最大长度是多少?
  • 13. memcached 对 对 item 的过期时间有什么限制?
  • 14. memcached 最大能存储多大的单个 item ?
  • 15. 为什么单个 item 的大小被限制在 1M byte 之内?

分布式缓存之memcached面试题-答案解析
4.6 分布式通讯之MQ面试题汇总

  • 1. 什么是 ActiveMQ?
  • 2. ActiveMQ 服务器宕机怎么办?
  • 3. 丢消息怎么办?
  • 4. 持久化消息非常慢
  • 5. 消息的不均匀消费。
  • 6. 死信队列?
  • 7. ActiveMQ 中的消息重发时间间隔和重发次数吗?
  • 8. RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
  • 9. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
  • 10. RAM node 和 disk node 的区别?
  • 11. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
  • 12. RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
  • 13. vhost 是什么?起什么作用?
  • 14. 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
  • 15. 客户端连接到 cluster 中的任意 node 上是否都能正常工作?
  • 16. cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
  • 17. 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?
  • 18. 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
  • 19. 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?
  • 20. routing_key 和 binding_key 的最大长度是多少?
  • 21. RabbitMQ 允许发送的 message 最大可达多大?
  • 22. 什么情况下 producer 不主动创建 queue 是安全的?
  • 23. “dead letter”queue 的用途?
  • 24. 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?
  • 25. 什么情况下会出现 blackholed 问题?
  • 26. 如何防止出现 blackholed 问题?
  • 27. Consumer Cancellation Notification 机制用于什么场景?
  • 28. Basic.Reject 的用法是什么?
  • 29. 为什么不应该对所有的 message 都使用持久化机制?
  • 30. RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?

分布式通讯之MQ面试题-答案解析
4.7 分布式通讯之Kafka面试题汇总

  • 1. Kafka的用途有哪些?使用场景如何?
  • 2. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么
  • 3. Kafka中的HW、LEO、LSO、LW等分别代表什么?
  • 4. Kafka中是怎么体现消息顺序性的?
  • 5. Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?
  • 6. Kafka生产者客户端的整体结构是什么样子的?
  • 7. Kafka生产者客户端中使用了几个线程来处理?分别是什么?
  • 8. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
  • 9. “消费组中的消费者个数如果超过topic的分区,那么就会有消费者消费不到数据”这句话是否正确?如果正确,那么有没有什么hack的手段?
  • 10. 有哪些情形会造成重复消费?
  • 11. 哪些情景下会造成消息漏消费?
  • 12. KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?
  • 13. 简述消费者与消费组之间的关系
  • 14. 当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?
  • 15. topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?
  • 16. topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?
  • 17. 创建topic时如何选择合适的分区数?
  • 18. Kafka目前有哪些内部topic,它们都有什么特征?各自的作用又是什么?
  • 19. 优先副本是什么?它有什么特殊的作用?
  • 20. Kafka有哪几处地方有分区分配的概念?简述大致的过程及原理
  • 21. 简述Kafka的日志目录结构
  • 22. Kafka中有哪些索引文件?
  • 23. 如果我指定了一个offset,Kafka怎么查找到对应的消息?
  • 24. 如果我指定了一个timestamp,Kafka怎么查找到对应的消息?
  • 25. 聊一聊你对Kafka的Log Retention的理解
  • 26. 聊一聊你对Kafka的Log Compaction的理解
  • 27. 聊一聊你对Kafka底层存储的理解
  • 28. 聊一聊Kafka的延时操作的原理
  • 29. 聊一聊Kafka控制器的作用
  • 30. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
  • 31. 消费再均衡的原理是什么?(提示:消费者协调器和消费组协调器)
  • 32. Kafka中的幂等是怎么实现的?
  • 33. Kafka中的事务是怎么实现的?
  • 34. 失效副本是指什么?有哪些应对措施?
  • 35. 多副本下,各个副本中的HW和LEO的演变过程
  • 36. Kafka在可靠性方面做了哪些改进?(HW, LeaderEpoch)
  • 37. 为什么Kafka不支持读写分离?
  • 38. Kafka中的延迟队列怎么实现
  • 39. Kafka中怎么实现死信队列和重试队列?
  • 40. Kafka中怎么做消息审计?
  • 41. Kafka中怎么做消息轨迹?
  • 42. 怎么计算Lag?(注意read_uncommitted和read_committed状态下的不同)
  • 43. Kafka有哪些指标需要着重关注?
  • 44. Kafka的哪些设计让它有如此高的性能?

分布式通讯之Kafka面试题-答案解析
第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
5.1 SpringBoot面试题汇总

  • 1. Spring Boot、Spring MVC 和 Spring 有什么区别?
  • 2. 什么是自动配置?
  • 3. 什么是 Spring Boot Stater ?
  • 4. 你能否举一个例子来解释更多 Staters 的内容?
  • 5. Spring Boot 还提供了其它的哪些 Starter Project Options?
  • 6. Spring 是如何快速创建产品就绪应用程序的?
  • 7. 创建一个 Spring Boot Project 的最简单的方法是什么?
  • 8. Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?
  • 9. 为什么我们需要 spring-boot-maven-plugin?
  • 10. 如何使用 SpringBoot 自动重装我的应用程序?
  • 11. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
  • 12. 如何在 Spring Boot 中添加通用的 JS 代码?
  • 13. 什么是 Spring Data?
  • 14. 什么是 Spring Data REST?
  • 15. path=”users”, collectionResourceRel=”users” 如何与 Spring Data Rest 一起使用?
  • 16. 当 Spring Boot 应用程序作为 Java 应用程序运行时,后台会发生什么?
  • 17. 我们能否在 spring-boot-starter-web 中用 jetty 代替 tomcat?
  • 18. 如何使用 Spring Boot 生成一个 WAR 文件?
  • 19. 如何使用 Spring Boot 部署到不同的服务器?
  • 20. RequestMapping 和 GetMapping 的不同之处在哪里?
  • 21. 为什么我们不建议在实际的应用程序中使用 Spring Data Rest?
  • 22. 在 Spring Initializer 中,如何改变一个项目的包名字?
  • 23. 可以配置 application.propertierde 的完整的属性列表在哪里可以找到?
  • 24. JPA 和 Hibernate 有哪些区别?
  • 25. 业务边界应该从哪一层开始?
  • 26. 使用 Spring Boot 启动连接到内存数据库 H2 的 JPA 应用程序需要哪些依赖项?
  • 27. 如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现?
  • 28. 指定的数据库连接信息在哪里?它是如何知道自动连接至 H2 的?
  • 29. 我们如何连接一个像 MySQL 或者Orcale 一样的外部数据库?
  • 30. Spring Boot 配置的默认 H2 数据库的名字是上面?为什么默认的数据库名字是 testdb?
  • 31. 如果 H2 不在类路径里面,会出现上面情况?
  • 32. 你能否举一个以 ReadOnly 为事务管理的例子?
  • 33. 发布 Spring Boot 用户应用程序自定义配置的最好方法是什么?
  • 34. 配置文件的需求是什么?
  • 35. 如何使用配置文件通过 Spring Boot 配置特定环境的配置?

SpringBoot面试题-答案解析
5.2 SpringCloud面试题汇总

  • 1. 什么是 Spring Cloud?
  • 2. 使用 Spring Cloud 有什么优势?
  • 3. 服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 4. 负载平衡的意义什么?
  • 5. 什么是 Hystrix?它如何实现容错?
  • 6. 什么是 Hystrix 断路器?我们需要它吗?
  • 7. 什么是 Spring Cloud Bus?我们需要它吗?
  • 8. 什么是 Netflix Feign?它的优点是什么?

SpringCloud面试题-答案解析
5.3 Dubbo面试题汇总

  • 1. Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
  • 2. Dubbo 超时时间怎样设置?
  • 3. Dubbo 有些哪些注册中心?
  • 4. Dubbo 集群的负载均衡有哪些策略
  • 5. Dubbo 是什么?
  • 6. Dubbo 的主要应用场景?
  • 7. Dubbo 的核心功能?
  • 8. Dubbo 的核心组件?
  • 9. Dubbo 服务注册与发现的流程?
  • 10. Dubbo 的架构设计?
  • 11. Dubbo 的服务调用流程?
  • 12. Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
  • 13. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
  • 14. Dubbo 与 Spring 的关系?
  • 15. Dubbo 使用的是什么通信框架?
  • 16. Dubbo 集群提供了哪些负载均衡策略?
  • 17. Dubbo 的集群容错方案有哪些?
  • 18. Dubbo 和 Spring Cloud 的区别?
  • 19. Dubbo 在安全机制方面是如何解决?
  • 20. Dubbo 中 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
  • 21. dubbo 服务负载均衡策略?
  • 22. Dubbo 在安全机制方面是如何解决的?
  • 23. dubbo 连接注册中心和直连的区别?
  • 24. dubbo 服务集群配置(集群容错模式)?
  • 25. dubbo 通信协议 dubbo 协议为什么要消费者比提供者个数多?
  • 26. dubbo 通信协议 dubbo 协议为什么不能传大包?
  • 27. dubbo 通信协议 dubbo 协议适用范围和适用场景?

Dubbo面试题-答案解析

Dubbo面试题-答案解析
第六部分:其他:并发编程+设计模式+数据结构与算法+网络

第六部分:其他:并发编程+设计模式+数据结构与算法+网络
6.1 并发编程面试题汇总

  • 1. Java中守护线程和本地线程区别
  • 2. 线程与进程的区别
  • 3. 什么是多线程中的上下文切换
  • 4. 死锁与活锁的区别,死锁与饥饿的区别
  • 5. Java中用到的线程调度算法是什么
  • 6. 什么是线程组,为什么在Java中不推荐使用
  • 7. 为什么使用Executor框架
  • 8. 在Java中Executor和Executors的区别
  • 9. 什么是原子操作,在Java Concurrency API中有哪些原子类(atomic classes)
  • 10. Java Concurrency API中的Lock接口(Lock interface)是什么,对比同步它有什么优势
  • 11. 什么是Executors框架
  • 12. 什么是阻塞队列,阻塞队列的实现原理是什么,如何使用阻塞队列来实现生产者
  • 13. 什么是Callable和Future
  • 14. 什么是FutureTask,使用ExecutorService启动任务
  • 15. 什么是并发容器的实现
  • 16. 多线程同步和互斥有几种实现方法,都是什么
  • 17. 什么是竞争条件?你怎样发现和解决竞争
  • 18. 如何使用thread dump,如何分析Thread dump
  • 19. 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法
  • 20. Java中你怎样唤醒一个阻塞的线程
  • 21. 在Java中CycliBarriar和CountdownLatch有什么区别
  • 22. 什么是不可变对象,它对写并发应用有什么帮助
  • 23. Java中用到的线程调度算法是什么
  • 24. 什么是线程组,为什么在Java中不推荐使用
  • 25. 为什么使用Executor框架比使用应用创建和管理线程好
  • 26. Java中有几种方法可以实现一个线程
  • 27. 如何停止一个正在运行的线程
  • 28. notify()和notifyAll()有什么区别
  • 29. 什么是Daemon线程,它有什么意义
  • 30. Java如何实现多线程之间的通讯和协作
  • 31. 什么是可重入锁(ReentrantLock)
  • 32. 当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法
  • 33. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式
  • 34. SynchronizedMap和ConcurrentHashMap有什么区别
  • 35. CopyOnWriteArrayList可以用于什么应用场景
  • 36. 什么叫线程安全,servlet是线程安全吗
  • 37. volatile有什么用,能否用一句话说明下volatile的应用场景
  • 38. 为什么代码会重排序
  • 39. 在java中wait和sleep方法的不同
  • 40. 一个线程运行时发生异常会怎样
  • 41. 如何在两个线程间共享数据
  • 42. Java中notify 和 notifyAll有什么区别
  • 43. 为什么wait, notify 和 notifyAll这些方法不在thread类里面
  • 44. 什么是ThreadLocal变量
  • 45. Java中interrupted 和 isInterrupted方法的区别
  • 46. 为什么wait和notify方法要在同步块中调用
  • 47. 为什么你应该在循环中检查等待条件
  • 48. Java中的同步集合与并发集合有什么区别
  • 49. 什么是线程池,为什么要使用它
  • 50. 怎么检测一个线程是否拥有锁
  • 51. 你如何在Java中获取线程堆栈
  • 52. JVM中哪个参数是用来控制线程的栈堆栈小的
  • 53. Thread类中的yield方法有什么作用
  • 54. Java中ConcurrentHashMap的并发度是什么
  • 55. Java中Semaphore是什么
  • 56. Java线程池中submit() 和 execute()方法有什么区别
  • 57. 什么是阻塞式方法
  • 58. Java中的ReadWriteLock是什么、
  • 59. volatile 变量和 atomic 变量有什么不同
  • 60. 可以直接调用Thread类的run ()方法么
  • 61. 如何让正在运行的线程暂停一段时间
  • 62. 你对线程优先级的理解是什么
  • 63. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )
  • 64. 你如何确保main()方法所在的线程是Java 程序最后结束的线程
  • 65. 线程之间是如何通信的
  • 66. 为什么线程通信的方法wait(), notify()和notifyAll()被定义在Object 类里
  • 67. 为什么wait(), notify()和notifyAll ()必须在同步方法或者同步块中被调用
  • 68. 为什么Thread类的sleep()和yield ()方法是静态的
  • 69. 如何确保线程安全
  • 70. 同步方法和同步块,哪个是更好的选择
  • 71. 如何创建守护线程
  • 72. 什么是Java Timer 类,如何创建一个有特定时间间隔的任务

6.2 23种设计模式知识要点汇总

  • 1.单例模式(Singleton Pattern)
  • 2.工厂模式
  • 3.抽象工厂模式(Abstract Factory Pattern)
  • 4.模板方法模式(Template Method Pattern)
  • 5.建造者模式(Builder Pattern)
  • 6.代理模式(Proxy Pattern)
  • 7.原型模式(Prototype Pattern)
  • 8.中介者模式
  • 9.命令模式
  • 10.责任链模式
  • 11.装饰模式(Decorator Pattern)
  • 12.策略模式(Strategy Pattern)
  • 13.适配器模式(Adapter Pattern)
  • 14.迭代器模式(Iterator Pattern)
  • 15.组合模式((Composite Pattern))
  • 16.观察者模式(Observer Pattern)
  • 17.门面模式(Facade Pattern)
  • 18.备忘录模式(Memento Pattern)
  • 19.访问者模式(Visitor Pattern)
  • 20.状态模式(复杂)
  • 21.解释器模式(Interpreter Pattern)(少用)
  • 22.享元模式(Flyweight Pattern)
  • 23.桥梁模式(Bridge Pattern)

23种设计模式知识要点-解析
6.3 数据结构与算法面试题汇总

  • 1. 设计一个有getMin功能的栈
  • 2. 由两个栈组成的队列
  • 3. 如何仅用递归函数和栈操作逆序一个栈
  • 4. 猫狗队列
  • 5. 用一个栈实现另一个栈的排序
  • 6. 用栈来求解汉诺塔问题
  • 7. 生成窗口最大值数组
  • 8. 构造数组的MaxTree
  • 9. 求最大子矩阵的大小
  • 10. 最大值减去最小值小于或等于num的子数组数量
  • 11. 打印两个有序链表的公共部分
  • 12. 在单链表和双链表中删除倒数第K 个节点
  • 13. 删除链表的中间节点和a/b 处的节点
  • 14. 反转单向和双向链表
  • 15. 反转部分单向链表
  • 16. 环形单链表的约瑟夫问题
  • 17. 判断一个链表是否为回文结构
  • 18. 将单向链表按某值划分成左边小、中间相等、右边大的形式
  • 19. 复制含有随机指针节点的链表
  • 20. 两个单链表生成相加链表
  • 21. 两个单链表相交的一系列问题
  • 22. 将单链表的每K个节点之间逆序
  • 22. 删除无序单链表中值重复出现的节点
  • 24. 在单链表中删除指定值的节点
  • 25. 将搜索二叉树转换成双向链表
  • 26. 单链表的选择排序
  • 27. 一种怪异的节点删除方式
  • 28. 向有序的环形单链表中插入新节点
  • 29. 合并两个有序的单链表
  • 30. 按照左右半区的方式重新组合单链表
  • 31. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历
  • 32. 打印二叉树的边界节点
  • 33. 如何较为直观地打印二叉树
  • 34. 二叉树的序列化和反序列化
  • 35. 遍历二叉树的神级方法
  • 36. 在二叉树中找到累加和为指定值的最长路径长度
  • 37. 找到二叉树中的最大搜索二叉子树
  • 38. 找到二叉树中符合搜索二叉树条件的最大拓扑结构
  • 39. 二叉树的按层打印与ZigZag打印
  • 40. 调整搜索二叉树中两个错误的节点
  • 41. 判断t1 树是否包含t2 树全部的拓扑结构
  • 42. 判断t1 树中是否有与t2 树拓扑结构完全相同的子树
  • 43. 判断二叉树是否为平衡二叉树
  • 44. 根据后序数组重建搜索二叉树
  • 45. 判断一棵二叉树是否为搜索二叉树和完全二叉树
  • 46. 通过有序数组生成平衡搜索二叉树
  • 47. 在二叉树中找到一个节点的后继节点
  • 48. 在二叉树中找到两个节点的最近公共祖先
  • 49. Tarjan算法与并查集解决二叉树节点间最近公共祖先的批量查询问题
  • 50. 二叉树节点间的最大距离问题
  • 先序、中序和后序数组两两结合重构二叉树
  • 通过先序和中序数组生成后序数组
  • 统计和生成所有不同的二叉树
  • 统计完全二叉树的节点数
  • 斐波那契系列问题的递归和动态规划
  • 矩阵的最小路径和
  • 换钱的最少货币数
  • 换钱的方法数
  • 最长递增子序列
  • 汉诺塔问题
  • 最长公共子序列问题
  • 最长公共子串问题
  • 最小编辑代价
  • 字符串的交错组成
  • 龙与地下城游戏问题
  • 数字字符串转换为字母组合的种数
  • 表达式得到期望结果的组成种数
  • 排成一条线的纸牌博弈问题
  • 跳跃游戏
  • 数组中的最长连续序列
  • N皇后问题
  • 判断两个字符串是否互为变形词
  • 字符串中数字子串的求和
  • 去掉字符串中连续出现k 个0 的子串
  • 判断两个字符串是否互为旋转词
  • 将整数字符串转成整数值
  • 替换字符串中连续出现的指定字符串
  • 字符串的统计字符串
  • 判断字符数组中是否所有的字符都只出现过一次
  • 在有序但含有空的数组中查找字符串
  • 字符串的调整与替换
  • 翻转字符串
  • 数组中两个字符串的最小距离
  • 添加最少字符使字符串整体都是回文字符串
  • 括号字符串的有效性和最长有效长度
  • 公式字符串求值
  • 0 左边必有1 的二进制字符串数量
  • 拼接所有字符串产生字典顺序最小的大写字符串
  • 找到字符串的最长无重复字符子串
  • 找到被指的新类型字符
  • 最小包含子串的长度
  • 回文最少分割数
  • 字符串匹配问题
  • 字典树(前缀树)的实现
  • 认识布隆过滤器
  • 只用2 GB 内存在20 亿个整数中找到出现次数最多的数 .
  • 40 亿个非负整数中找到没出现的数
  • 找到100 亿个URL 中重复的URL 以及搜索词汇的top K 问题
  • 40 亿个非负整数中找到出现两次的数和所有数的中位数
  • 一致性哈希算法的基本原理
  • 不用额外变量交换两个整数的值
  • 不用任何比较判断找出两个数中较大的数
  • 只用位运算不用算术运算实现整数的加减乘除运算
  • 整数的二进制表达中有多少个1
  • 在其他数都出现偶数次的数组中找到出现奇数次的数
  • 在其他数都出现k 次的数组中找到只出现一次的数
  • 转圈打印矩阵
  • 将正方形矩阵顺时针转动90 °
  • 找到无序数组中最小的k 个数
  • 需要排序的最短子数组长度
  • 在数组中找到出现次数大于N/K 的数
  • 在行列都排好序的矩阵中找数
  • 最长的可整合子数组的长度
  • 不重复打印排序数组中相加和为给定值的所有二元组和三元组
  • 未排序正数数组中累加和为给定值的最长子数组长度
  • 未排序数组中累加和为给定值的最长子数组系列问题
  • 未排序数组中累加和小于或等于给定值的最长子数组长度
  • 计算数组的小和
  • 自然数数组的排序
  • 奇数下标都是奇数或者偶数下标都是偶数
  • 子数组的最大累加和问题
  • 子矩阵的最大累加和问题
  • 在数组中找到一个局部最小的位置
  • 数组中子数组的最大累乘积
  • 打印N 个数组整体最大的Top K
  • 边界都是1 的最大正方形大小
  • 不包含本位置值的累乘数组
  • 数组的partition 调整
  • 求最短通路值
  • 数组中未出现的最小正整数
  • 数组排序之后相邻数的最大差值
  • 从5 随机到7 随机及其扩展
  • 一行代码求两个数的最大公约数
  • 有关阶乘的两个问题
  • 判断一个点是否在矩形内部
  • 判断一个点是否在三角形内部
  • 折纸问题
  • 蓄水池算法
  • 设计有setAll功能的哈希表
  • 最大的leftMax与rightMax之差的绝对值
  • 设计可以变更的缓存结构
  • 设计RandomPool结构
  • 调整[0 ,x)区间上的数出现的概率
  • 路径数组变为统计数组
  • 正数数组的最小不可组成和
  • 一种字符串和数字的对应关系
  • 1 到n 中1 出现的次数
  • 从N 个数中等概率打印M 个数
  • 判断一个数是否是回文数
  • 在有序旋转数组中找到最小值
  • 在有序旋转数组中找到一个数
  • 数字的英文表达和中文表达
  • 分糖果问题
  • 一种消息接收并打印的结构设计
  • 设计一个没有扩容负担的堆结构
  • 随时找到数据流的中位数
  • 在两个长度相等的排序数组中找到上中位数
  • 在两个排序数组中找到第K 小的数
  • 两个有序数组间相加和的TOP K 问题
  • 出现次数的TOP K 问题
  • Manacher算法
  • KMP 算法
  • 丢棋子问题
  • 画匠问题
  • 邮局选址问题

算法与数据结构-答案解析
6.4 网络面试题汇总

  • 1. 三次握手?
  • 2. 四次挥手?
  • 3. 第 3 次握手失败会怎么办?
  • 4. 为什么 TCP 链接需要三次握手,两次不可以么,为什么?
  • 5. 为什么连接的时候是三次握手,关闭的时候却是四次握手?
  • 6. 拥塞处理?
  • 7. ARQ 协议
  • 8. TCP 和 UDP 区别?
  • 9. HTTPS 的优点与缺点?
  • 10. HTTP 是不保存状态的协议,如何保存用户状态?
  • 11. socket?
  • 12. Session 与 Cookie 的对比?
  • 13. 从输入网址到获得页面的过程?
  • 14. URI 和 URL 的区别是什么?
  • 15. 状态码

网络面试题-答案解析
整整28天,闭谷整理[Java一线大厂高岗面试题解析合集],所有的题目已经全部奉上,包括:Java基础、中级、高级、Spring、SpringMVC、MyBatis、JVM、MySQL、Tomcat、ZK、Nginx、Redis、MongoDB、Memcached、MQ、kafka、SpringBoot、SpringCloud、Dubbo、并发编程、设计模式、数据结构与算法、网络等全部的Java面试知识点
完整的答案解析+题目的PDF文档

8年开发经验精华,从小白到工作8年Java高级架构师路线谱 从小白级到工作8年需要掌握的技术栈大概如下: 0-1年入门: Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性) Web编程初探(Servlet+MySQL数据库+商品管理系统实战) SSM从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版+Git+Maven) SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系统实战) 零距离互联网项目 阅读详情

相关推荐

分享一下2023年最新的java面试八股文,附答案

分享一下2023年最新的java面试八股文,附答案

javaAnPou的博客 5369

最新奉上2021[Java一线大厂高岗面试题解析合集],备战金三银四

时间不等人,2020年转眼就要过去大半了,春招在疫情中度过,不知有多少人还在惋惜... 马上又是春招的高峰“金三银四”,估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之路了吧,机会来临,好好把握,争取一举上岸!从7月份开始小编就在整理“Java一线大厂高岗面试题”,一题一题的抠,整出了这份[备战金三银四的Java面试汇总(附解析)],总共有以下六部分的内容: Java基础-中级-高级 开源框架(SSM:Spring+SpringMVC+MyBatis) 性能调优(JVM+MySQL+Tomca

bieber007的博客 934

告别色差!用Python+TCS34725颜色传感器实现精准色彩还原(附完整校准代码)

本文详细介绍了如何利用Python和TCS34725颜色传感器实现专业级色彩还原方案。通过双阶校准法(白光校准和黑电平校准)和进阶的光照自适应技术,解决传感器原始数据不准的问题,并提供完整的校准代码和实战案例,帮助开发者实现ΔE<3的高精度色彩识别。

weixin_30836759的博客 209

全网最全JAVA面试八股文,终于整理完了

全网最全JAVA面试八股文,终于整理完了

javaAnPou的博客 2万+

爬取百度图片

最开始,我们想要爬取图片,首先需要打开百度图库,然后在搜索栏中输入自己想要的图片(比如说壁纸)。接着右键检查,点击网络:起初可能没有名称信息,刷新界面就可以了。打开信息,查看标头内容可以看到请求URL为:复制这串URL,然后在浏览器中打开这个就是我们搜索的壁纸图片的网页内容。怎么找到图片的URL呢?在上述内容中,找到data,可以发现里面每隔一个aiEditData,下面代码的形式是一样的,就相当于一张图片。

weixin_54143563的博客 1939

Device Mapper 代码分析

Device Mapper(DM)是Linux 2.6全面引入的块设备新构架,通过DM可以灵活地管理系统中所有的真实或虚拟的块设备。DM以块设备的形式注册到Linux内核中,凡是挂载(或者说“映射”)于DM结构下的块设备,不管他们是如何组织,如何通讯,在Linux看来都是一个完整的DM块设备。因此DM让不同组织形式的块设备或者块设备集群在Linux内核面前有一个完整统一的DM表示。一、DM

SonicLing的专栏 1万+

今天面了个阿里拿 38K 出来的,让我见识到了基础的天花板

人人都有大厂梦,对于程序员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让人瞻仰。同样的,小编的好朋友的个人目标也是阿里,但之前一直在一家小公司,一呆就是好几年,现在通过不断学习和实践,提升了自己很多,也有了信心来阿里挑战。下面,就是朋友分享的这次面试阿里 P6 的一些经历和心得。现在很多程序员,都会陷入到一个怪圈:看到别人升职加薪,又觉得为啥别人运气总是那么好,我和他差不多时间进公司的啊!

javaAnPou的博客 1万+

维护测试监控LLM应用

LangFuse: 开源 + SaaS(免费/付费),LangSmith 平替,可集成 LangChain 也可直接对接 OpenAI API;LangSmith: LangChain 的官方平台,SaaS 服务(免费/付费),非开源,企业版支持私有部署;调试 Prompt 的 Playground测试/验证系统的相关指标数据集管理各种指标监控与统计:访问量、响应时长、Token 费等等。

SunnyRivers 1774

Java开发才不到3年,来面试开口要25K,面完连10K都不想给

我的好朋友兼大学同学老左家庭经济情况不错,毕业之后没两年自己存了点钱加上家里的支持,自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的开发人员都是自己面试的,近期公司发展的不错,打算扩招也面试了不少人。

javaAnPou的博客 1万+

GameFramework专栏目录

本专栏是专门介绍GameFramework框架的,持续更新中,如有疑问可留言,24小时内回复。

TxNet 4725

电磁兼容(EMC)整改案例(七):EFT测试失败都是IC悬空引脚惹的祸

无论任何时候,为了避免这些问题,通常建议对悬空的IO口进行适当的配置,比如设置为强推挽输出低电平、输入带上拉或下拉电阻等,以减少外部电路对IO管脚状态的影响,并提高系统的稳定性和可靠性.

linkking27的博客 1032

全新1000道Java全家桶面试题(含答案),已成功面进百度

成功面试百度,到底需要刷多少题,我的答案是至少1000道,而且是刷3遍以上,也就相当于3000道题。废话不多说,直接看题。 Java基础1 1、面向对象的特征有哪些方面? 2.访问修饰符public,private,protected,以及不写(默认)时的区别? 3. String 是最基本的数据类型吗? 4、float f=3.4;是否正确? 5、shorts1= 1;s1 =s1 + 1;有错吗?shorts1= 1;s1 += 1;有错吗? 6、Java 有没有goto? 7、int

javaAnPou的博客 9459

2、探索谷歌云平台(GCP):入门指南

本文全面介绍了谷歌云平台(GCP)的入门知识,涵盖其全球基础设施、核心服务和使用方法。内容包括GCP区域与可用区结构、创建免费账户、配置计算资源(如GCE虚拟机)、存储类型(PD、Filestore、GCS)、网络架构(VPC)、组织与项目管理、身份访问控制(IAM),以及计算、存储、数据库、大数据和人工智能等各类云服务。文章还提供了资源规划、安全管理和成本控制等实用建议,帮助用户快速上手并高效利用GCP构建可扩展的云解决方案。

uber9的博客 254

《Java核心知识点》+《Java面试宝典》+《1000道互联网面试专题》+《350道Java面试》,总共1045页

写在前面 作为一名Java开发者,现在又是处在一个很尴尬的时期,是找工作还是跳槽还是......是不是有很多疑问伴随着? 你还在犹豫吗?还在不知道该怎么下手吗?现在很多程序员已经开始刷题,而不是一直处在这一个状态,(一碗心灵鸡汤干掉,哈哈~)。开始说正事:分享我朋友刷的Java面试题及答案解析: Java29部分核心知识整理 1.JVM JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆和一个存储方法域。JVM 是运行在操作系统之上的,它与硬

javaAnPou的博客 7482

1篇1章3节:R 语言的产生与发展轨迹(更新2024/08/14)

药物的研究阶段包括靶标确定、生物学模型建立、新化学实体的发现和优化新化学实体四个关键环节。每个环节都在药物研发过程中发挥着至关重要的作用。通过科学严谨的方法和技术手段,研究人员能够在药物研发过程中不断探索和优化,从而发现和开发出具有高效、安全性的候选药物,为疾病治疗提供更多的选择和希望。

MD Code 2659

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

阿里资深架构师整理出来的一份Java核心知识点分享给大家.pdf

一份整理的蛮不错的Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 获取方式:关注公众号:JavaAC,获取(粉丝福利) image.png image.png image.png ...

javaAnPou的博客 7236

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

阿里P1到P10,你的能力能拿多少年薪?

阿里P1到P10,你的能力能拿多少年薪?

javaAnPou的博客 6271

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

跳槽一次能涨多少?今天见识到跳槽天花板。

2022年马上就快结束了,最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备明年的金三银四的面试计划。在此分享一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必要的,它几乎相信你看完一定会有帮助由于整个笔记比较全面,内容相当的多 ,这里仅展示资料的一些截图。

javaAnPou的博客 5678

98年阿里P6架构师晒出工资单,看完扎心了。。。

98年阿里P6架构师晒出工资单,看完扎心了。。。

javaAnPou的博客 5540

java面试官:程序员,请你告诉我是谁把公司面试题泄露给你的?

java面试官:程序员,请你告诉我是谁把公司面试题泄露给你的?

javaAnPou的博客 5323

腾讯天美Java程序员月均20万!掌握这个后,也太香了....

JVM 是初级Java 程序员成长路上的一道必经之路,学习JVM之前,只需要知道代码编译成 Class,虚拟机加载 Class 运行就可以了,学习 JVM 之后,可以深入理解代码从编译到加载的过程、内存中对象的创建与垃圾回收、日常开发中快速定位性能问题等,当然也是面试不可缺少的加分项。8 大算法(时间复杂度,空间复杂度,内存,CPU 的影响)及其应用的地方。虽然这样的高收入只是少数,就像网友说的,不能看做是腾讯所有员工的普遍情况,但能够凭自己的能力挣到这份收入,这就已经是值得敬佩的人了!

javaAnPou的博客 4747

公司新来的00后真是卷王,工作没两年,跳槽到我们公司起薪18K都快接近我了

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。都说00后躺平了,但是有一说一,该卷的还是卷。这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪18K,都快接近我了。共206页包含分布式,中间件,大数据与高并发,数据库,设计模式与实践,数据结构与算法,HR面试题举例等一起分享出来给大家看看,也是给大家平时查漏补缺。

javaAnPou的博客 4453

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 215

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 326

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 147

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 113
上一篇: 后浪来袭!阿里产出“第二代”容器技术手册及脑图,这也太香了吧
下一篇: Java面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf
跟着我学Java
博客等级 码龄6年 660粉丝 1341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值