
Java面试
文章平均质量分 93
Carrieº
这个作者很懒,什么都没留下…
展开
-
Java面试系列总结 :JavaSE基础(1) 面向对象/语法/异常
1. 面向对象都有哪些特性以及你对这些特性的理解继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象 的本质就是将现实世界描绘成一系列完...原创 2018-11-17 22:16:20 · 307 阅读 · 0 评论 -
Java面试系列总结 :Oracle
1. 什么是存储过程,使用存储过程的好处?存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。优点:(1)允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过...原创 2018-11-30 12:55:50 · 565 阅读 · 1 评论 -
Java面试系列总结 :Redis
1. Redis的特点?Redis 是由意大利人 Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis 全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,典型的NoSQL数据库服务器,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(so...原创 2018-12-03 09:22:29 · 274 阅读 · 0 评论 -
Java面试系列总结 :Nginx
1. Nginx反向代理为什么能够提升服务器性能?对于后端是动态服务来说,比如 Java 和 PHP。这类服务器(如 JBoss 和 PHP-FPM)的 IO 处理能力往往不高。 Nginx 有个好处是它会把 Request 在读取完整之前 buffer 住,这样交给后端的就是一个完整的 HTTP 请求,从而提高后端的效率,而不是断断续续的传递(互联网上连接速度一般比较慢)。 同样,Nginx...原创 2018-12-11 10:42:18 · 445 阅读 · 0 评论 -
Java面试系列总结 :ActiveMQ
1. 如何使用ActiveMQ解决分布式事务?在互联网应用中,基本都会有用户注册的功能。在注册的同时,我们会做出如下操作:收集用户录入信息,保存到数据库向用户的手机或邮箱发送验证码等等…如果是传统的集中式架构,实现这个功能非常简单:开启一个本地事务,往本地数据库中插入一条用户数据,发送验证码,提交事物。但是在分布式架构中,用户和发送验证码是两个独立的服务,它们都有各自的数据库,那么...原创 2018-12-20 14:27:48 · 797 阅读 · 0 评论 -
Java面试系列总结 :Dubbo+Zookeeper
1. Dubbo的容错机制有哪些Dubbo官网提出总共有六种容错策略1)Failover Cluster 模式失败自动切换,当出现失败,重试其它服务器。(默认)2)Failfast Cluster快速失败,只发起一次调用,失败立即报错。 通常用于非幂等性的写操作,比如新增记录。3)Failsafe Cluster失败安全,出现异常时,直接忽略。 通常用于写入审计日志等操作。4)Fa...原创 2019-01-07 08:39:29 · 474 阅读 · 0 评论 -
Java面试系列总结 :Struts2
1. 简单介绍一下Struts2Struts2 框架是一个按照 MVC 设计模式设计的 WEB 层框架,是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的框架。其全新的 Struts 2 的体系结构与 Struts 1 的体 系结构差别巨大。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求, 这样的设计也使得业务逻辑控制器能够与 Servle...原创 2018-12-26 09:00:35 · 207 阅读 · 0 评论 -
Java面试系列总结 :Hibernate
1. 简述一下hibernate的开发流程第一步:加载 hibernate 的配置文件,读取配置文件的参数(jdbc 连接参数,数据 库方言,hbm 表与对象关系映射文件)第二步:创建 SessionFactory 会话工厂(内部有连接池)第三步:打开 session 获取连接,构造 session 对象(一次会话维持一个数据连接, 也是一级缓存)第四步:开启事务第五步:进行操作第六步...原创 2019-01-03 09:35:23 · 213 阅读 · 0 评论 -
Java面试系列总结 :Quartz 定时任务
1. 什么是Quartz 框架Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。2. 配置文件 applicationContext_job.xml各个属性作用(1)Job:表示一个任务(工作),要执行的具体内容。(2)JobDetail:表示...原创 2019-01-16 15:34:31 · 1721 阅读 · 0 评论 -
Java面试系列总结 :Shiro
1. 简单介绍一下Shiro框架Apache Shiro是Java的一个安全框架。使用shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。三个核心组件:Subject, SecurityManager 和 Realms.Subject:即“当前操作用户”。但是,在...原创 2019-01-18 10:03:26 · 2584 阅读 · 0 评论 -
Java面试系列总结 :Mysql
1. SQL的select语句完整的执行顺序SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、select 的字段;8、使用order by对结果集进行排序。SQL ...原创 2018-11-29 16:17:10 · 627 阅读 · 0 评论 -
Java面试系列总结 :Mybatis
1. Mybatis中#和$的区别?#相当于对数据加上双引号,$相当于直接显示数据#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”.$将传入的数据直接显示生成在 sql 中。如:order b...原创 2018-11-29 09:11:55 · 207 阅读 · 0 评论 -
Java面试系列总结 :JavaSE基础(2) 常用 API
1. Math.round(11.5)等于多少?Math.round(- 11.5) 又等于多少?Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5然后进行取整。2. switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String上?Java5以前switch(ex...原创 2018-11-17 22:16:33 · 836 阅读 · 0 评论 -
Java面试系列总结 :JavaSE基础(3) 日期/时间
1. java.time.LocalDateLocalDate是一个不可变的类,它表示默认格式(yyyy-MM-dd)的日期,我们可以使用now()方法得到当前时间,也可以提供输入年份、月份和日期的输入参数来创建一个 LocalDate 实例。该类为 now()方法提供了重载方法,我们可以传入ZoneId来获得指定时区的日期。该类提供与java.sql.Date相同的功能,对于如何使用该类,我们...原创 2018-11-17 22:16:40 · 558 阅读 · 0 评论 -
Java面试系列总结 :JavaSE基础(4) 数据类型/IO/内部类
1. Java的基本数据类型都有哪些各占几个字节如下表所示:2. String是基本数据类型吗?String是引用类型,底层用char数组实现的。3. short s1 = 1; s1 = s1 + 1; 有错吗?short s1 = 1; s1 += 1 有错吗?前者不正确,后者正确。对于 short s1 = 1; s1 = s1 + 1;由于1是 int 类型,因此 s1+...原创 2018-11-17 22:16:57 · 246 阅读 · 0 评论 -
Java面试系列总结 :JavaSE基础(5) 集合
1. HashMap排序题,上机题。(本人主要靠这道题入职的第一家公司)已知一个HashMap<Integer,User>集合, User有name(String)和 age(int)属性。请写一个方法实现对HashMap 的排序功能,该方法接收 HashMap<Integer,User>为形参,返回类型为 HashMap<Integer,User>,要求对H...原创 2018-11-17 22:17:36 · 525 阅读 · 0 评论 -
Java面试系列总结 :JavaSE基础(6)多线程
1. 多线程的创建方式(1)继承 Thread类:但Thread本质上也是实现了Runnable 接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可...原创 2018-11-17 22:17:51 · 231 阅读 · 0 评论 -
Java面试系列总结 :JavaSE高级(上)
1. 说说你对Java中反射的理解Java 中的反射首先是能够获取到 Java 中要反射类的字节码,获取字节码有三种方法,1.Class.forName(className) 2.类名.class 3.this.getClass()。然后将字节码中的方法,变量,构造函数等映射成相应的Method、Filed、Constructor等类,这些类提供了丰富的方法可以被我们所使用。2. 写一个A...原创 2018-11-19 12:47:30 · 262 阅读 · 0 评论 -
Java面试系列总结 :JavaSE高级(下)
1. Java的类加载器的种类都有哪些?根类加载器(Bootstrap) --C++写的 ,看不到源码扩展类加载器(Extension) --加载位置 :jre\lib\ext中系统(应用)类加载器(System\App) --加载位置 :classpath中自定义加载器(必须继承ClassLoader)2. 类什么时候被初始化?1)创建类的实例,也就是new一个对象2...原创 2018-11-22 11:15:26 · 341 阅读 · 0 评论 -
Java面试系列总结 :JavaWEB
1. 说下原生jdbc操作数据库流程?第一步:Class.forName()加载数据库连接驱动;第二步:DriverManager.getConnection()获取数据连接对象;第三步:根据SQL获取sql会话对象,有2种方式 Statement、PreparedStatement ;第四步:执行SQL处理结果集,执行SQL前如果有参数值就设置参数值setXXX();第五步:关闭结果...原创 2018-11-24 21:51:03 · 850 阅读 · 0 评论 -
Java面试系列总结 :Spring
1. SpringMVC的工作原理a. 用户向服务器发送请求,请求被springMVC前端控制器DispatchServlet捕获;b. DispatcherServle对请求URL进行解析,得到请求资源标识符(URL),然后根据该URL调用HandlerMapping将请求映射到处理器HandlerExcutionChain;c. DispatchServlet根据获得Handler选择...原创 2018-11-26 14:19:34 · 293 阅读 · 0 评论 -
Java面试系列总结 :WebService/Restful/solr
1. 什么是webService?WebService 是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用 java 编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上。2. 常见的远程调用技术RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JA...原创 2019-01-17 11:24:19 · 767 阅读 · 0 评论