
面试题
文章平均质量分 80
巴哥面试
一个为面试的中年油腻程序员!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
面试题《Mybatis》
MybatisMybatis是一个半orm(关系对象映射)框架,内部封装了jdbc,让开发人员只关注sql编写,无需考虑加载驱动,创建连接,创建statement等繁杂过程。半orm:仍需手动编写sql 优点:自己编写sql,灵活度高,可以控制执行的性能;sql写在xml文件中,与代码解耦,方便统一管理; 缺点:对开发人员对编写sql能力要求高;数据库移植性差(编写的sql依赖数据...原创 2019-11-28 08:13:32 · 134 阅读 · 0 评论 -
面试题【ThreadLocal】
总述ThreadLoca不是Thread,是一个线程内部的数据存储类。它可以在指定的线程中存储数据,并且只有在此线程中才可以获取到存储到数据,其他线程是无法获取到的。(提供了线程独有的变量)demopublic class ThreadLocalTest { public static void main(String[] args) { final...转载 2019-11-28 08:11:55 · 263 阅读 · 0 评论 -
面试题【Redis持久化】
持久化方式RDBRDB方式是通过快照完成,以二进制的方式保存到磁盘。当符合一定条件时Redis会自动将内存中的所有数据进行快照,并存储到硬盘上。快照条件条件由两个参数构成:时间和改动的键值个数。即在指定时间内被改动的键的个数大于执行数值时,就会进行快照。这是Redis的默认持久化方式。设置可以设置RDB文件的存储路径以及文件名。使用场景Redis在启动后...转载 2019-11-28 08:12:50 · 250 阅读 · 1 评论 -
面试题【Redis内存满】
Redis是基于内存的key-value数据库,可以通过配置来调节redis的最大内存大小。当Redis内存已满时,由于内存大小固定,如果继续往里添加数据,就需要淘汰一部分老的数据,释放内存空间来存储新的数据。策略noeviction(默认策略):写请求不在提供服务,直接返回错误 allkeys-lru:所有key使用LRU算法进行淘汰 volatile-lru:设置了过期时间...转载 2019-11-28 08:13:09 · 194 阅读 · 0 评论 -
面试题【jdk8新特性】
Lambda表达式jdk8之前,启动一个线程代码new Thread(new Runnable() { @Override public void run() { System.out.println("123"); }}).start();jdk8后new Thread(()-> System.out.println("12...转载 2019-11-28 08:15:26 · 2297 阅读 · 0 评论 -
面试题【JVM】
jvm内存模型分为:虚拟机栈、堆、方法区、本地方法栈、程序计数器虚拟机栈:每个线程都有一个私有的栈,随着线程的创建而创建。栈中存放了局部变量表(基本数据类型和对象引用)、方法出口等信息。栈的大小是固定的(也可以动态扩展,jvm未实现,需自己实现,将多个栈用链表连接起来)。如果超出栈的深度,会抛出StackOverflowError(栈溢出)错误本地方法栈:主要是虚拟机用到的本地方法...原创 2019-11-28 08:16:34 · 148 阅读 · 0 评论 -
面试题【java集合】
数组与集合概念数组:用来存储基本数据类型的容器,数组长度固定,不适合在对象数量未知的情况下使用集合:存储对象,长度可变CollectionCollection接口是集合的根接口Set(无序,不能包含重复元素)List(有序集合,可包含重复元素,并提供了按索引访问的方式,查询速度快。因为往list中插入或者删除数据,会伴随着数据的移动,随意插入和删除数据慢)Ma...原创 2019-12-08 23:53:18 · 112 阅读 · 0 评论 -
面试题【HashMap】
HashMap特性HashMap存储的是键值对,允许为null,key值不可重复,如果重复,value将被覆盖。非同步,线程不安全,无序底层原理jdk8后采用的是:数组+链表+红黑树当使用put方法时,会先对key做一个hashcode值计算,找到在bucket数组中的位置,来存储Entry对象;如果hashcode值相同就通过equals方法进行比较;如果equals...原创 2019-12-08 23:53:53 · 140 阅读 · 0 评论 -
面试题【String】
String概念String不是基本类型,是不可变类,jvm使用常量池来存储所有字符串对象。创建String对象方式1、双引号创建string对象(String s="a")会先在常量池中进行查找是否有字符串存在。存在,就将地址返回;不存在,就在常量池中创建字符串,并返回地址。2、new关键字来创建。(String s = new String("a"))无论对象是...原创 2019-12-08 23:53:07 · 111 阅读 · 0 评论 -
面试题【Redis】
Redis是单线程的Redis是基于内存的key-value数据库,还可以做分布式锁等其他功能。它有丰富的存储类型,并支持主从复值的集群策略数据类型String,可存储字符串,整数,浮点数(可对整数、浮点数进行自增或自减操作)hash,value存储的是对象list,列表,可从两端插入或弹出数据,可进行修剪,只保留一个范围内的数据,set,无需集合,可计算交集、并集...原创 2019-11-28 08:12:24 · 94 阅读 · 0 评论 -
面试题【Mysql】
事务的四大特性事务是并发控制的基本单位,是一个不可分割的工作单元,保证了数据的一致性。原子性:不可分割的操作单元。事务中所有操作,要么全部成功;要么撤回执行事务之前的操作; 隔离性:事务操作之间彼此独立,互不影响; 一致性:执行事务前后,数据库要一致; 持久性:事务一旦提交,结果就是永久的;事务的隔离级别Read Uncommitted:读未提交(一个事务可以读取另一个...原创 2019-11-28 08:14:31 · 224 阅读 · 0 评论 -
面试题【Spring MVC】
什么是Spring MVCSpring MVC是一个基于java的实现了MVC设计模式到请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。Spring MVC流程用户发送请求至前端控制器DispatcherServlet; Dis...原创 2019-11-29 14:34:12 · 144 阅读 · 0 评论 -
面试题【ORM】
常见的ORM(对象关系映射)框架有:Mybatis(ibatis):容易上手;手动编写sql,所以移植性差;可优化sql,查询指定字段;是半ORM框架;Hibernate:掌握困难;自动生成sql,所以移植性好;有良好的映射机制;是ORM框架;都有相应的代码生成工具,可以生成简单的DAO层方法。针对高级查询,Mybatis需要手动编写sql语句,一级ResultMap。而Hiber...原创 2019-12-08 23:53:29 · 1048 阅读 · 1 评论 -
面试题《Spring》
Spring是什么?Spring是一个轻量级的IOC/AOP容器框架。常见的配置方式:基于xml配置,基于注解配置,基于Java配置。AOPOOP面向对象,定义了纵向的关系,并没有定义横向关系,导致了大量的代码重复,不利于各个模块的重用。AOP,称为面向切面,是面向对象的一种补充。用于将那些与业务无关,但对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,...原创 2019-11-28 08:14:57 · 168 阅读 · 0 评论