记录(二)

2022-06-10 20:06:03 浏览数 (1)

Java基础

HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。

HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。

HashMap,HashTable,ConcurrentHashMap的区别。

极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。

HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。

java中四种修饰符的限制范围。

Object类中的方法。

接口和抽象类的区别,注意JDK8的接口可以有实现。

动态代理的两种方式,以及区别。

Java序列化的方式。

传值和传引用的区别,Java是怎么样的,有没有传值引用。

一个ArrayList在循环过程中删除,会不会出问题,为什么。

@transactional注解在什么情况下会失效,为什么。

数据结构和算法

B 树。 快速排序,堆排序,插入排序(其实八大排序算法都应该了解)。 一致性Hash算法,一致性Hash算法的应用。

JVM

JVM的内存结构。

JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。

JVM的栈中引用如何和堆中的对象产生关联。

可以了解一下逃逸分析技术。

GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。

标记清除和标记整理算法的理解以及优缺点。

eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。

JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。

强软弱虚引用的区别以及GC对他们执行怎样的操作。

Java是否可以GC直接内存。

Java类加载的过程。

双亲委派模型的过程以及优势。

常用的JVM调优参数。

dump文件的分析。

Java有没有主动触发GC的方式(没有)。

多线程

Java实现多线程有哪几种方式。

Callable和Future的了解。

线程池的参数有哪些,在线程池创建一个线程的过程。

volitile关键字的作用,原理。

synchronized关键字的用法,优缺点。

Lock接口有哪些实现类,使用场景是什么。

可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。

悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。

ABC三个线程如何保证顺序执行。

线程的状态都有哪些。

sleep和wait的区别。

notify和notifyall的区别。

ThreadLocal的了解,实现原理。

数据库相关

常见的数据库优化手段。

索引的优缺点,什么字段上建立索引。

数据库连接池。

durid的常用配置。

计算机网络

TCP,UDP区别。

三次握手,四次挥手,为什么要四次挥手。

长连接和短连接。

连接池适合长连接还是短连接。

设计模式

观察者模式。

代理模式。

单例模式的五种写法。

Spring中使用了哪些设计模式

分布式相关

分布式事务的控制。

分布式锁如何设计。

分布式session如何设计。

dubbo的组件有哪些,各有什么作用。
  • Provider:服务提供者
  • Consumer:消费者
  • Registry:服务注册和发现的注册中心,提供注册服务,生产者注册自己提供的服务,消费者订阅自己需要的服务
  • Monitor:监控中心,统计服务调用次数和调用时间等信息
  • Container:运行服务的容器
zookeeper的负载均衡算法有哪些。
dubbo是如何利用接口就可以通信的。

通过dubbo协议进行调用的,是一个单一的长连接,NIO异步通信,基于hessian作为序列化协议。 适用的场景:传输数据量较小,但并发要求高的场景。

dubbo基于不同的通信协议,支持不同的序列化协议,支持的协议有hessian、java二进制序列化、soap、json等。dubbo默认使用的序列化协议是hessian。

一些小建议

可以去leetcode上刷题换换思路。

八大排序算法一定要手敲一遍(快排,堆排尤其重要)。

了解一些新兴的技术。

面试之后面试官都会问你有没有什么问题,千万不要没问题,也别傻乎乎的问一些敏感问题。

了解你要面试的公司的产品及竞争产品。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://cloud.tencent.com/developer/article/2020457

0 人点赞