![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java面试大全
文章平均质量分 70
qq_18048847
这个作者很懒,什么都没留下…
展开
-
1.8 Java常见面试题及答案 11-20(JVM)
1. 类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序答:先静态、先父后子。 先静态:父静态 > 子静态 优先级:父类 > 子类 静态代码块 > 非静态代码块 > 构造函数 一个类的实例化过程: 1,父类中的static代码块,当前类的static 2,顺序执行父类的普通代码块 3,父类的构造函数 4,子类普通代码块 5,子类(...原创 2018-06-01 16:57:50 · 2940 阅读 · 0 评论 -
1.7 数据库设计优化
如果严格遵循三大范式,会导致在查询时经常需要连接许多表,查询效率降低,可以结合业务要求,适当的做冗余。2.适度的建立索引。索引加快某些字段的查询效率,但是更新操作速度会降低,会占用储存空间。索引建立的规则:a.索引的字段必须是经常用来做查询条件的字段b.若索引是多个字段组合的情况,要把经常作为查询条件的字段作为第一个。否则当通过单个字段查询时,数据库不会通过索引查询。c.索引的字段必须有足够的区分...原创 2018-06-01 16:54:28 · 103 阅读 · 0 评论 -
1.6 单例模式的三种写法
1.延迟实例化当我们不急切需要一个实例时,也就是当用户需要一个实例时,再创建实例。a.同步低效率版[java] view plain copypublic class Singleton { private static Singleton uniqueInstance; //私有化构造方法,防止用户通过构造器构造 private Singleton(){} ...原创 2018-06-01 16:54:12 · 140 阅读 · 0 评论 -
1.5 Spring AOP 原理
一、AOP是什么? AOP的全称是Aspect Orient Programming,即面向切面编程。是对OOP(Object Orient Programming)的一种补充,战门用于处理一些具有横切性质的服务。常常用于日志输出、安全控制等。 上面说到是对OOP的一种补充,具体补充的是什么呢?考虑一种情况,如果我们需要在所有方法执行前打印一句日志,按照OOP的处理思想,我们需要...原创 2018-06-01 16:53:53 · 146 阅读 · 0 评论 -
1.4 Spring IOC 和 DI原理
一、IOC是什么?IOC全称为“Inversion of Control”,即控制反转,不是一种技术,而是一种设计思想。在这种设计思想中,你设计好的对象交给容器管理,而不是在应用程序内部对对象进行管理。控制的含义是IOC容器控制了对象(也可以包括文件及其他外部资源);而反转的含义是IOC容器负责创建及注入依赖的对象,但在传统的应用程序中,我们需要在对象内部去创建(new)依赖的对象,这叫“正”,在...原创 2018-06-01 16:53:30 · 224 阅读 · 0 评论 -
1.3 SpringMVC 原理
一、简介SpringMVC是Spring框架的一个子模块,类似于AOP,IOC等模块。也是通常所说的那层薄薄的Web层,也就是MVC架构中的C(Controller),负责接收分发用户请求。二、原理详细解释这幅图。1、用户发起请求,一般是HTTP请求,带有URL和参数。2、DispatcherServlet的匹配的URL与请求的URL相匹配,DispatcherServlet接收请求。3、把URL...原创 2018-06-01 16:53:08 · 213 阅读 · 0 评论 -
1.2 Java面试题及回答集锦
1、问题:如果A和B对象循环引用,是否可以被GC?回答:可以,现在的虚拟机基本都是通过可达性分析算法来判断对象是否存活的,而不是通过简单的引用计数法来判断对象是否存活。可达性分析算法使用一系列的“GC Roots”对象(虚拟机栈中引用的对象、静态属性引用对象)作为起始点,这些节点向下搜索的路径称为引用链,当一个对象到GC Roots没有任何引用链连接,则证明对象是不可用的。2、Java中的内存溢出...原创 2018-06-01 16:51:35 · 145 阅读 · 0 评论 -
1.1 SQL语句优化
1. 使用慢日志,explain记录那些查询很慢的SQL语句。2. 避免全表扫描,考虑在WHERE和ORDER BY中使用到的列建立索引3. 尽量避免在WHERE子句中使用NULL值判断,这样会使DBMS放弃使用索引进行全表扫描,可以设计不影响业务的默认值.4. 尽量避免在WHERE子句中使用 != 或<>,也会导致DBMS放弃使用索引进行全表扫描,可以使用<,<=,=...原创 2018-06-01 16:51:01 · 127 阅读 · 0 评论 -
2.4 Redis原理知识点集锦
1、Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。高级数据结构HyperLogLog:基数统计GEO:地理位置PUB/SUB:订阅发布2、Redis是单进程单线程的吗?是的。Redis是基于内存的单进程单线程KV数据库,基于C语言编写,不比单进程多线程的Memcached差。快的原因:(1)完全基于内存。(2)数据结构简单、对数据...原创 2018-06-06 10:03:04 · 118 阅读 · 0 评论 -
2.3 数据库面试题
1、数据库有哪些索引?根据功能分类唯一索引(Unique):可单列也可多列组合,每个索引值对应唯一的记录,且索引的字段具有唯一性,最多只能有一个NULL。主键索引(Primary Key):可单列也可多列组合,其值唯一标识表中的一行,不能为NULL。聚集索引(Cluster):一个表只能包含一个聚集索引,表中行的物理顺序与键值的逻辑顺序相同,加快查询速度。根据实现方式分类B+树索引:平衡的树,不一...原创 2018-06-06 10:02:41 · 138 阅读 · 0 评论 -
2.2 REQUIRES_NEW不起作用导致整个事务回滚——Spring事务传播机制
1、Propagation.REQUIRES_NEW的作用假设有个对象A,有a()方法,有个对象B,有b()方法。在a方法中调用了b方法,b方法被称为内嵌事务,不管a方法是否开启事务,只要b方法的事务的隔离级别为REQUIRES_NEW,则一定会在调用b方法时产生一个新的事务。2、一个场景A的a()方法:[java] view plain copy @Transactional p...原创 2018-06-06 10:02:13 · 2079 阅读 · 5 评论 -
2.1 Spring声明式事务的实现方式选择(JDK动态代理与cglib)
1、简介Spring声明式事务的具体实现方式是动态决定的,与具体配置、以及事务代理对象是否实现接口等有关。2、使用JDK动态代理的情况在满足下面两个条件时,Spring会选择JDK动态代理作为声明式事务的实现方式。(1)事务代理类必须实现接口且不能显式继承父类(Object这个父类不算)。(2)配置:springboot的启动类要加上@EnableTransactionManagement和@En...原创 2018-06-06 10:01:49 · 1137 阅读 · 0 评论 -
2.0 抽象类和接口的区别
接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继...原创 2018-06-06 10:00:55 · 124 阅读 · 0 评论 -
Spring Cloud
下面只简单介绍下经常用的5个服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关——Netflix Zuul分布式配置——Spring Cloud ConfigEureka作用:实现服务治理(服务注册与发现)简介:Spring Cloud Eureka是Spring Cloud Netflix项目...原创 2019-04-16 09:39:06 · 150 阅读 · 0 评论