面试题
文章平均质量分 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 · 1595 阅读 · 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 · 574 阅读 · 0 评论 -
并发编程——面试题
Synchronized相关问题 1. Synchronized 用过吗,其原理是什么? Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现被Synchronized修饰过的程序块,在编译前后生成了monitorenter和monitorexit两个字节码指令。 虚拟机执行到monitorenter指令时,首先要尝试获取对象的锁:如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1;当执行mon原创 2020-09-12 23:16:09 · 642 阅读 · 1 评论 -
悲观锁与乐观锁
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里面就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。 乐观锁 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上 锁,但是在更新的时候会判原创 2020-09-12 01:20:57 · 364 阅读 · 1 评论 -
JVM——基础面试题
1. 内存模型以及分区 JVM分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class类信息常量池(static常量和static变量)等放在方法区 方法区:主要存储类信息,常量池,编译后的代码(字节码)等数据 堆:初始化的对象,成员变量(非static),所有的对象实例和数组都要在堆上分配 栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的是8大基础类型加上一个引用类型,所以还是一个指向地址的指针 本地方法栈:主要为N原创 2020-09-09 22:21:12 · 391 阅读 · 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 · 438 阅读 · 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 · 1042 阅读 · 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 · 949 阅读 · 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 $img done < images.list 将本地镜像文件导入为Docker原创 2020-08-27 12:37:24 · 1285 阅读 · 0 评论 -
Netty——经典面试题
TCP和UDP的根本区别 TCP面向连接,如打电话要先拨号建立连接;UDP是无连接的,即发送数据之前不需要建立连接 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 TCP通过校验和、重传控制、序号标识、滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制 UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信或广播通信 每一条TCP连接只能是点到点的;UDP原创 2020-08-21 11:56:15 · 665 阅读 · 0 评论 -
面试题——Redis分布式锁
模拟并发抢票 先在redis中存入一个ticket,值为50,作为被抢的票。 抢票接口: @RestController public class TestController { @Autowired StringRedisTemplate template; @GetMapping("/test") public String test() throws InterruptedException{ int ticket = Integer.parse原创 2020-07-16 23:36:55 · 4201 阅读 · 2 评论 -
面试题——垃圾回收器、Linux性能、Git命令
垃圾回收器 目前为止还没有完美的收集器出现,更加没有万能的收集器,只是针对具体应用最合适的收集器,进行分代收集。 4中主要垃圾收集器: 查看默认垃圾收集器: java -XX:+PrintCommandLineFlags -version == Java的提供的垃圾回收器:== UseSerilGC UseParallelGC UseConcMarkSweepGC UseParNewGC UseParallelOldGC UseG1GC GC约定参数: DefNew (Default New原创 2020-07-15 21:49:17 · 380 阅读 · 1 评论 -
面试题——JVM参数、引用、OOM
JVM的参数类型 1. 标配参数: 在JDK各个版本之间稳定,很少有大的变化 -version -help java -showversion 2. X参数: -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式(默认) 3. XX参数:(重点) Boolean类型: 公式: -XX:+或者- 某个属性值 +表示开启,-表示关闭 示例: 是否打印GC收集细节 开启: -XX:+PrintGCDetails 关闭: -XX:-PrintGC原创 2020-07-14 21:34:38 · 344 阅读 · 1 评论 -
尚硅谷面试题——第一季(二)
MyBatis中实体属性与表中字段不对应 书写SQL使用别名 驼峰命名情况下,使用<setting name="mapUnderscreToCamelCase" value="true" />开启转换 使用ResultMap手动转换 Linux系统常用服务类命令 centos6: service - 注册在系统中的标准化程序 - 有方便统一的管理方式 - service 服务名 start - service 服务名 stop - service 服务名 restart原创 2020-07-07 19:50:08 · 443 阅读 · 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 · 1728 阅读 · 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 · 316 阅读 · 0 评论
分享