![](https://img-blog.csdnimg.cn/20210811095812536.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
java基础
小小小小小韩呀!
一个很菜很菜的程序员
展开
-
一天一个面试题之——@Resource 和 @Autowire 的区别
@Resource 和 @Autowire 的区别1、@Resource 和 @Autowired 都可以用来装配 bean2、@Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false。3、@Resource 如果指定了 name 或 type,则按指定的进行装配;如果都不指定,则优先按名称装配,当找不到与名称匹配的 bean 时才按照类型进行装配。...原创 2021-08-29 22:38:19 · 200 阅读 · 0 评论 -
一天一个面试题之——Spring 的事务隔离级别
Spring 的事务隔离级别Spring 的事务隔离级别底层其实是基于数据库的,Spring 并没有自己的一套隔离级别。DEFAULT:使用数据库的默认隔离级别。READ_UNCOMMITTED:读未提交,最低的隔离级别,会读取到其他事务还未提交的内容,存在脏读。READ_COMMITTED:读已提交,读取到的内容都是已经提交的,可以解决脏读,但是存在不可重复读。REPEATABLE_READ:可重复读,在一个事务中多次读取时看到相同的内容,可以解决不可重复读,但是存在幻读。SERIALIZAB原创 2021-08-23 21:50:25 · 412 阅读 · 0 评论 -
elasticsearch :term与match区别
elasticsearch 中term与match区别term是精确查询match是模糊查询term查询term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个。比如说我们要找标题为北京奥运的所有文档$curl -XGET http://localhost:9200/index/doc/_search?pretty -d '{ "query":{ "term":{ "title":"北京奥运" } }原创 2021-08-23 15:48:55 · 566 阅读 · 0 评论 -
一天一个面试题之——Spring 的事务传播行为
1、REQUIRED:Spring 默认的事务传播级别,如果上下文中已经存在事务,那么就加入到事务中执行,如果当前上下文中不存在事务,则新建事务执行。2)REQUIRES_NEW:每次都会新建一个事务,如果上下文中有事务,则将上下文的事务挂起,当新建事务执行完成以后,上下文事务再恢复执行。3)SUPPORTS:如果上下文存在事务,则加入到事务执行,如果没有事务,则使用非事务的方式执行。4)MANDATORY:上下文中必须要存在事务,否则就会抛出异常。5)NOT_SUPPORTED :如果上下文中存在原创 2021-08-21 23:01:51 · 270 阅读 · 0 评论 -
一天一个面试题之——Spring 的 AOP 是怎么实现的
本质是通过动态代理来实现的,主要有以下几个步骤。1、获取增强器,例如被 Aspect 注解修饰的类。2、在创建每一个 bean 时,会检查是否有增强器能应用于这个 bean,简单理解就是该 bean 是否在该增强器指定的 execution 表达式中。如果是,则将增强器作为拦截器参数,使用动态代理创建 bean 的代理对象实例。3、当我们调用被增强过的 bean 时,就会走到代理类中,从而可以触发增强器,本质跟拦截器类似。...原创 2021-08-19 22:04:08 · 184 阅读 · 0 评论 -
一天一个面试题之——Spring bean 的生命周期
bean 的生命周期主要有以下几个阶段,深色底的5个是比较重要的阶段。BeanFactory:Spring 容器最核心也是最基础的接口,本质是个工厂类,用于管理 bean 的工厂,最核心的功能是加载 bean,也就是 getBean 方法,通常我们不会直接使用该接口,而是使用其子接口。FactoryBean:该接口以 bean 样式定义,但是它不是一种普通的 bean,它是个工厂 bean,实现该接口的类可以自己定义要创建的 bean 实例,只需要实现它的 getObject 方法即可。Factor原创 2021-08-18 21:39:59 · 384 阅读 · 0 评论 -
一天一个面试题之——jsp九大内置对象
九大内置对象PageContext 存东西Request 存东西ResponseSession 存东西Application 【ServletContext】 存东西config 【ServletConfig】outpageexceptionrequest:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的!session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;application原创 2021-08-16 21:38:06 · 104 阅读 · 0 评论 -
一天一个面试题之——BeanFactory 和 FactoryBean
BeanFactory:Spring 容器最核心也是最基础的接口,本质是个工厂类,用于管理 bean 的工厂,最核心的功能是加载 bean,也就是 getBean 方法,通常我们不会直接使用该接口,而是使用其子接口。FactoryBean:该接口以 bean 样式定义,但是它不是一种普通的 bean,它是个工厂 bean,实现该接口的类可以自己定义要创建的 bean 实例,只需要实现它的 getObject 方法即可。FactoryBean 被广泛应用于 Java 相关的中间件中,如果你看过一些中间件的原创 2021-08-13 22:42:31 · 218 阅读 · 0 评论 -
一天一个面试题之——Java虚拟机中的类加载器
启动类加载器(Bootstrap ClassLoader):这个类加载器负责将存放在<JAVA_HOME>\lib目录中的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的(仅按照文件名识别,如rt.jar,名字不符合的类库即使放在lib目录中也不会被加载)类库加载到虚拟机内存中。扩展类加载器(Extension ClassLoader):这个加载器由sun.misc.Launcher$ExtClassLoader实现,它负责加载<JAVA_HOME>原创 2021-08-12 21:58:53 · 170 阅读 · 0 评论 -
一天一个面试题之——HashMap 和Hashtable
HashMap 和Hashtable 的区别HashMap 允许 key 和 value 为 null,Hashtable 不允许。HashMap 的默认初始容量为 16,Hashtable 为 11。HashMap 的扩容为原来的 2 倍,Hashtable 的扩容为原来的 2 倍加 1。HashMap 是非线程安全的,Hashtable是线程安全的。HashMap 的 hash 值重新计算过,Hashtable 直接使用 hashCode。HashMap 去掉了 Hashtable 中的 c原创 2021-08-11 22:19:45 · 130 阅读 · 0 评论 -
一天一个面试题之——HashMap 的底层数据结构
我们现在用的都是 JDK 1.8,底层是由“数组+链表+红黑树”组成,如下图,而在 JDK 1.8 之前是由“数组+链表”组成。为什么要改成“数组+链表+红黑树”?主要是为了提升在 hash 冲突严重时(链表过长)的查找性能,使用链表的查找性能是 O(n),而使用红黑树是 O(logn)。那在什么时候用链表?什么时候用红黑树?对于插入,默认情况下是使用链表节点。当同一个索引位置的节点在新增后超过8个(阈值8):如果此时数组长度大于等于 64,则会触发链表节点转红黑树节点(treeifyBin);而原创 2021-08-10 22:18:23 · 79 阅读 · 0 评论 -
一天一个面试题之——ArrayList 和 Vector 的区别
Vector 和 ArrayList 几乎一致,唯一的区别是 Vector 在方法上使用了 synchronized 来保证线程安全,因此在性能上 ArrayList 具有更好的表现。有类似关系的还有:StringBuilder 和 StringBuffer、HashMap 和 Hashtable。...原创 2021-08-09 21:50:49 · 112 阅读 · 0 评论 -
一天一个面试题之——ArrayList 和 LinkedList
ArrayList 底层基于动态数组实现,LinkedList 底层基于链表实现。对于按 index 索引数据(get/set方法):ArrayList 通过 index 直接定位到数组对应位置的节点,而 LinkedList需要从头结点或尾节点开始遍历,直到寻找到目标节点,因此在效率上 ArrayList 优于 LinkedList。对于随机插入和删除:ArrayList 需要移动目标节点后面的节点(使用System.arraycopy 方法移动节点),而 LinkedList 只需修改目标节点前后节原创 2021-08-08 21:34:53 · 171 阅读 · 0 评论 -
mycat的介绍及应用场景
mycat1、原理MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。2、读写分离主从复制一主一从多主多从3、分库分表垂直拆分——分库水平拆分——分表4、使用场景单纯读写分离,此时配置最为简单,支持读写分离、主从切换分库分表,对记录超过1000万的表进行水平拆分,最大支持1000亿单表水平拆分多租户应用,每个应用一个数据库,但程序只需连接MyC原创 2021-08-08 17:18:18 · 339 阅读 · 0 评论 -
javascript之var,let,const的区别
var如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。举例说明:var a = 1; //此处声明的变量a为全局变量function foo(){ var a = 2;//此处声明的变量a为函数foo的局部变量 console.log(a);//2}foo();console.log(a);//1如果在声明变量时,省略 var 的话,该变量就会变成全局变量,如全局作用域中存在该变量,就原创 2021-08-06 10:00:38 · 55 阅读 · 0 评论 -
一天一个面试题之——synchronized 和 Lock 的区别
synchronized 和 Lock 的区别1)Lock 是一个接口;synchronized 是 Java 中的关键字,synchronized 是内置的语言实现;2)Lock 在发生异常时,如果没有主动通过 unLock() 去释放锁,很可能会造成死锁现象,因此使用 Lock 时需要在 finally 块中释放锁;synchronized 不需要手动获取锁和释放锁,在发生异常时,会自动释放锁,因此不会导致死锁现象发生;3)Lock 的使用更加灵活,可以有响应中断、有超时时间等;而 synchro原创 2021-08-05 22:29:22 · 1626 阅读 · 0 评论 -
一天一个面试题之——sleep()和 yield() 方法、 join() 方法 start() 方法和run() 方法的区别
线程的 sleep() 方法和 yield() 方法有什么区别?线程执行 sleep() 方法后进入超时等待(TIMED_WAITING)状态,而执行 yield() 方法后进入就绪(READY)状态。sleep() 方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程运行的机会;yield() 方法只会给相同优先级或更高优先级的线程以运行的机会。线程的 join() 方法是干啥用的?用于等待当前线程终止。如果一个线程A执行了 threadB.join() 语句,其含义是:当前线程A等原创 2021-08-04 21:35:46 · 91 阅读 · 0 评论 -
一填一个面试题之——wait() 和 sleep() 方法的区别
wait() 和 sleep() 方法的区别来源不同:sleep() 来自 Thread 类,wait() 来自 Object 类。对于同步锁的影响不同:sleep() 不会该表同步锁的行为,如果当前线程持有同步锁,那么 sleep 是不会让线程释放同步锁的。wait() 会释放同步锁,让其他线程进入 synchronized 代码块执行。使用范围不同:sleep() 可以在任何地方使用。wait() 只能在同步控制方法或者同步控制块里面使用,否则会抛 IllegalMonitorStat原创 2021-08-03 20:58:24 · 181 阅读 · 0 评论 -
一天一个面试题之—— final、finally、finalize
阐述 final、finally、finalize 的区别其实是三个完全不相关的东西,只是长的有点像。。final 是Java的关键字修饰类:该类不能再派生出新的子类,不能作为父类被继承。因此,一个类不能同时被声明为abstract 和 final。修饰方法:该方法不能被子类重写。修饰变量:该变量必须在声明时给定初值,而在以后只能读取,不可修改。 如果变量是对象,则指的是引用不可修改,但是对象的属性还是可以修改的。public class FinalDemo { // 不可再修改该变量的原创 2021-08-02 21:20:54 · 116 阅读 · 0 评论 -
一天一个面试题之——Java 静态变量和成员变量的区别
Java 静态变量和成员变量的区别public class Demo { /** * 静态变量:又称类变量,static修饰 */ public static String STATIC_VARIABLE = "静态变量"; /** * 实例变量:又称成员变量,没有static修饰 */ public String INSTANCE_VARIABLE = "实例变量";}成员变量存在于堆内存中。静态变量存在于方法区中。成员变量原创 2021-08-01 21:45:34 · 192 阅读 · 0 评论 -
explain详解
MYSQL explain详解explain显示了mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句:EXPLAIN SELECT s.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space AS s,uchome_spacefield AS fWHERE 1 AND s.groupid=0AND原创 2021-07-30 11:05:34 · 194 阅读 · 0 评论 -
一天一个面试题之——索引
索引(Index)是帮助MySQL高效获取数据的数据结构,可以得到索引的本质:索引是数据结构。索引的主要目的就是为了提高查询速度除数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。当然,除了B+树这种类型的索引之外,还有哈稀索引(hash index)等。索引的数据结构:B-..原创 2021-07-30 10:56:29 · 182 阅读 · 0 评论 -
一天一个面试题之——反射
什么是反射反射是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能称为反射机制。哪里用到反射机制?JDBC中,利用反射动态加载了数据库驱动程序。Web服务器中利用反射调用了Sevlet的服务方法。Eclispe等开发工具利用反射动态刨析对象的类型与结构,动态提示对象的属性和方法。很多框架都用到反射机制,注入属性,调用方法,如Spring。反射机制的优缺点?优点:可以原创 2021-07-29 09:12:19 · 181 阅读 · 0 评论 -
SQL中有关DQL、DML、DDL、DCL的概念与区别
SQL(Structure Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言。它功能强大,效率高,简单易学易维护。SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。SQL结构化查询语言包含6个部分1.数据查询语言(DQL: Data Query Language)数据检索语句,用于从表中获取数据。通常最常用的为保留字SELECT,并且原创 2021-07-27 13:51:00 · 180 阅读 · 0 评论 -
&和&&的区别
用最有效率的方法计算2乘以8?2 << 3。进阶:通常情况下,可以认为位运算是性能最高的。但是,其实编译器现在已经“非常聪明了”,很多指令编译器都能自己做优化。所以在实际实用中,我们无需特意去追求实用位运算,这样不仅会导致代码可读性很差,而且某些自作聪明的优化反而会误导编译器,使得编译器无法进行更好的优化&和&&的区别?&&:逻辑与运算符。当运算符左右两边的表达式都为 true,才返回 true。同时具有短路性,如果第一个表达式为 false,则直原创 2021-07-27 10:43:50 · 423 阅读 · 0 评论 -
一天一个面试题之——访问修饰符
public,private,protected,以及不写时的区别?修饰符当前类同包子类其他包public√√√√protected√√√×default(不写)√√××private√×××原创 2021-07-26 11:15:31 · 55 阅读 · 0 评论 -
一天一个面试题之——面向对象
**面向对象(oop)**的三个基本特征是:封装、继承和多态。继承:让某个类型的对象获得另一个类型的对象的属性的方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。封装:隐藏部分对象的属性和实现细节,对数据的访问只能通过外公开的接口。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。多态:对于同一个行为,不同的子类对象具有不同的表现形式。多态存在的3个条件:原创 2021-07-24 09:27:52 · 141 阅读 · 0 评论