本质上我和早睡早上起来玩一早上的游戏没有区别,甚至学习状态更差。得想个办法 12 点睡觉。
第三次 hr 面,为德科和华为的工作效率感到无语。
下周一两场面试。真是要死,这五天时间基本没学什么。八股、项目、手撕。。没一个有能力的感觉。
java基础、SpringCloud、Redis、RibbitMQ、Springboot、消息队列、微服务
面试鸭 Java 基础面试题自测:
- Java 的优势?跨平台、垃圾回收机制、生态良好
- Java 的多态?父类人作为抽象、子类具体实现如学生,同样是 person 可以 new 不同的实现类
- Java 按值还是按引用传递?按值,
- 接口和抽象类的区别?接口只能是方法的抽象并且成员变量由 public static final 修饰,适用于 like-a ,先约定再实现。抽象类适用于 is-a ,子类必须实现抽象类的抽象方法,适用于代码复用。
- is-a,has-a,like-a区别与联系?is-a适用继承,苹果是水果;has-a适用聚合(可以属于多个聚合,可以独立),组合(强依赖,不能独立存在)关系,大学由不同学院聚合成;汽车类由轮子类等组成。like-a?像一个,冰箱继承制冷剂但实现加热方法的接口。
- Java为什么不支持多继承?会出现菱形继承结构,共同父类的方法重写有歧义。
- 什么是序列化和反序列化?
- 不可变类?
- Exception和Error的区别?Exception是可以预知应该被捕获并进行相应的处理的问题,Error是不可恢复的、不正常的挂了。尽量不要捕获 Exception,捕获特定的异常,除了别人可以看懂之外,也可以避免捕获不想捕获的异常;捕获异常之后,需要明确的将异常信息记录到日志中;在可能出现异常的地方尽早捕获,不要在调用了好多个方法之后捕获;只在有必要 try catch 的地方 try catch;可以使用 if/else 来判断的就不要用异常,因为异常肯定比条件语句低效;不要在 finally 中 return 或者处理返回值。
- 面向对象和面向过程?对象分类,描述类的行为,数据和方法一起;过程是直观的步骤
- 重载与重写?重载同名方法的不同参数实现;重写子类重写父类的同名方法同参数
- 内部类和作用?成员内部类,可以使用外部类的变量和方法;静态内部类,只能使用外部类的静态方法;局部内部类,方法内的类,仅方法内可见;匿名内部类无类名的类,简化接口、子类的实现。
- Java8 新特性?元空间替换永久代;lambda表达式,一个匿名函数实现代码可传递;stream流;日期类;接口默认、静态方法;Operation类;某些高并发类实现
- String\StringBuffer\StringBuilderq区别?String适用字符串常量池;StringBuffer线程安全,适用多线程字符串操作;StringBuilder没有锁开销,单线程字符串操作。
- StringBuilder底层?有append\chartAt\
- 包装类和基本类?包装类要new默认值为null,集合类等需要包装类;基本类型保存在栈,包装类在堆。
- JDK&JRE?Java development kit 大于JRE(Java Runtime Environment),JRE包括JVM、核心类库、配置文件等;JDK包括Java调试、开发监控工具
springcloud:
- Spring Cloud是什么? 为开发分布式系统提供构建和管理微服务的方案,包括一些核心组件发现Eureka、配置config、负载均衡ribbon、API网关zuul、sleuth链式追踪
- Spring Cloud config是什么?如何帮助配置管理,包括config server和config client 。config server集中管理配置,使用git来存储配置文件名,config client从config server获取配置支持动态刷新。
- ribbon是什么如何实现负载均衡?是客户端负载均衡,通过预定义的负载均衡策略(轮询、随机)来选择访问的服务实例进行RPC远程调用,客户端请求时获取注册中心的服务列表,保存到JVM,
- Feign?
- zuul?API网关有负载均衡、动态路由、鉴权、监控、安全控制等功能,在微服务框架有请求转发和过滤的作用,是路由请求到微服务的统一接入点。
- 微服务? 把大应用程序拆分为独立的小功能,通过RPC通信增加网络开销,架构更灵活和可维护性,便于独立运行和扩展。
- 负载均衡策略?轮询(Round Robin)按请求顺序、随机、加权轮询、最少连接、哈希、最少相应时间
- bus?
- gateway是什么与zuul的关系?替代,效果更好。路由转发、请求过滤、负载均衡
- Eureka如何发现?如何负载均衡?如何健康检测?服务在eureka server服务中心注册服务信息,server保存到内存,服务消费者在服务中心获取注册的服务信息。缓存没有就向注册中心获取服务列表。服务提供方心跳机制每90秒发送信息给注册中心,没有则标记服务不可用,删除。
- 配置文件分层?应用级别、环境级别(开发测试)spring cloud config支持动态获取最新配置,分层和优先级处理
Redis
- redis是什么?Redis 是一个支持nosql,key-value数据类型、内存、缓存、分布式的、可持久化、非关系型数据库。适用于缓存、消息队列
- 主从结构了解吗?主写从读,读写分离。从复制主。全量同步和增量同步
- 集群了解吗? 数据分片到多实例(单实例有主从),分片原理
- 使用场景
- 为什么单线程?保证数据操作线程安全,