
面试题
文章平均质量分 82
常见面试题
吴声子夜歌
个人学习记录
展开
-
Spring——基础面试题
1. 什么是Spring?Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进 良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring是轻量的,基本的版本大约2MB控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或者查找依赖的对象们面向切面编程(A原创 2020-09-17 22:25:21 · 1536 阅读 · 1 评论 -
Redis——基础面试
1. 什么是Redis?简述它的优缺点Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个原创 2020-09-14 17:51:28 · 494 阅读 · 0 评论 -
并发编程——面试题
Synchronized相关问题1. Synchronized 用过吗,其原理是什么?Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现被Synchronized修饰过的程序块,在编译前后生成了monitorenter和monitorexit两个字节码指令。虚拟机执行到monitorenter指令时,首先要尝试获取对象的锁:如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1;当执行mon原创 2020-09-12 23:16:09 · 580 阅读 · 1 评论 -
悲观锁与乐观锁
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里面就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上 锁,但是在更新的时候会判原创 2020-09-12 01:20:57 · 276 阅读 · 1 评论 -
JVM——基础面试题
1. 内存模型以及分区JVM分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class类信息常量池(static常量和static变量)等放在方法区方法区:主要存储类信息,常量池,编译后的代码(字节码)等数据堆:初始化的对象,成员变量(非static),所有的对象实例和数组都要在堆上分配栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的是8大基础类型加上一个引用类型,所以还是一个指向地址的指针本地方法栈:主要为N原创 2020-09-09 22:21:12 · 335 阅读 · 1 评论 -
23种设计模式——知识要点
1. 单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)通用代码:(线程安全):public class Singleton { private static final Singleton singleton = new Singleton(); //限制产生多个对原创 2020-09-09 00:10:42 · 388 阅读 · 0 评论 -
Mysql——多表连接查询的执行细节
多表连接查询的执行细节create table a(a1 int primary key, a2 int ,index(a2)); --双字段都有索引create table c(c1 int primary key, c2 int ,index(c2), c3 int); --双字段都有索引create table b(b1 int primary key, b2 int); --有主键索引create table d(d1 int, d2 int); --没有索转载 2020-08-31 20:25:08 · 907 阅读 · 0 评论 -
MySQL——小表驱动大表
小表驱动大表准备两站表:CREATE TABLE `student` ( `id` int(11) NOT NULL, `no` varchar(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO student VALUES(1, '0001', 'tom');INSERT INTO st原创 2020-08-31 16:20:27 · 822 阅读 · 1 评论 -
Docker——常见问题总结
镜像相关1. 如何备份系统中所有的镜像首先,备份镜像列表可以使用docker images|awk 'NR>1{print $1":"$2}'|sort > images.list导出所有镜像为当前目录下文件,可以使用如下命令:while read img; do echo $img file="${img/\//-}" sudo docker save --output $file.tar $imgdone < images.list将本地镜像文件导入为Docker原创 2020-08-27 12:37:24 · 1204 阅读 · 0 评论 -
Netty——经典面试题
TCP和UDP的根本区别TCP面向连接,如打电话要先拨号建立连接;UDP是无连接的,即发送数据之前不需要建立连接TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付TCP通过校验和、重传控制、序号标识、滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信或广播通信每一条TCP连接只能是点到点的;UDP原创 2020-08-21 11:56:15 · 598 阅读 · 0 评论 -
面试题——Redis分布式锁
模拟并发抢票先在redis中存入一个ticket,值为50,作为被抢的票。抢票接口:@RestControllerpublic class TestController { @Autowired StringRedisTemplate template; @GetMapping("/test") public String test() throws InterruptedException{ int ticket = Integer.parse原创 2020-07-16 23:36:55 · 4025 阅读 · 2 评论 -
面试题——垃圾回收器、Linux性能、Git命令
垃圾回收器目前为止还没有完美的收集器出现,更加没有万能的收集器,只是针对具体应用最合适的收集器,进行分代收集。4中主要垃圾收集器:查看默认垃圾收集器:java -XX:+PrintCommandLineFlags -version== Java的提供的垃圾回收器:==UseSerilGCUseParallelGCUseConcMarkSweepGCUseParNewGCUseParallelOldGCUseG1GCGC约定参数:DefNew (Default New原创 2020-07-15 21:49:17 · 324 阅读 · 1 评论 -
面试题——JVM参数、引用、OOM
JVM的参数类型1. 标配参数:在JDK各个版本之间稳定,很少有大的变化-version-helpjava -showversion2. X参数:-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式(默认)3. XX参数:(重点)Boolean类型:公式:-XX:+或者- 某个属性值+表示开启,-表示关闭示例:是否打印GC收集细节开启: -XX:+PrintGCDetails关闭: -XX:-PrintGC原创 2020-07-14 21:34:38 · 273 阅读 · 1 评论 -
尚硅谷面试题——第一季(二)
MyBatis中实体属性与表中字段不对应书写SQL使用别名驼峰命名情况下,使用<setting name="mapUnderscreToCamelCase" value="true" />开启转换使用ResultMap手动转换Linux系统常用服务类命令centos6:service - 注册在系统中的标准化程序 - 有方便统一的管理方式 - service 服务名 start - service 服务名 stop - service 服务名 restart原创 2020-07-07 19:50:08 · 396 阅读 · 1 评论 -
尚硅谷面试题——第一季(一)
自增public class Increment { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i=" + i);//4 System.out.println("j=" + j);//1 Syste原创 2020-07-06 23:16:49 · 1665 阅读 · 0 评论 -
面试题——单例模式与反射、序列化
饿汉式立即加载,线程安全。public class Singleton { private static Singleton INSTANCE = new Singleton();//立即加载 private Singleton(){}; public static Singleton getInstance() { return INSTANCE; }}懒汉式延迟加载,线程不安全。public class Singleton { pri原创 2020-07-06 15:00:32 · 270 阅读 · 0 评论