![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA面试题目必备
文章平均质量分 70
小孽聂
这个作者很懒,什么都没留下…
展开
-
java 包装类缺点_Java 自动拆箱和自动装箱
1. 概述Java 中的自动装箱和自动拆箱算是一种语法糖,也就是在编译阶段编译器在合适的情况下帮我们的做了自动拆箱和自动装箱。众所周知,Java 中的基本数据类型并不是对象,为了解决在一定切情况下我们需要使用对象的时候,Java 为我们提供了每个基本类型对应的包装类,如下表:基本数据类型数据类型包装类byte(1字节)Byteshort(2个字节)Shortint(4个字节)Integerlong(8个字节)Longfloat(4个字节)Float原创 2022-03-22 19:52:48 · 356 阅读 · 0 评论 -
Oracle SQL语句性能优化方法大全
下面列举一些工作中常常会碰到的Oracle的SQL语句优化方法:1、SQL语句尽量用大写的;因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。2、选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(in.原创 2022-03-21 21:05:34 · 2793 阅读 · 0 评论 -
使用Java 8 Lambda,流和聚合
总览在本文中,我们将介绍使用Java 8lambda,流和聚合来过滤和操作Collection中的对象。 这篇文章中的所有代码都可以在BitBucket中找到。在此示例中,我们将创建许多对象,这些对象代表我们IT基础架构中的服务器。 我们将这些对象添加到列表中,然后使用lambda,流和聚合根据某些条件从列表中检索服务器。目标介绍lambda,流和聚合操作的概念。 解释流和管道之间的关系。 比较和对比聚合操作和迭代器。 演示过滤器,collect,forEach,mapToLong..原创 2022-03-20 15:13:31 · 534 阅读 · 0 评论 -
java 泛型详解
1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的原创 2022-03-20 14:44:41 · 113 阅读 · 0 评论 -
Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级
一、Synchronized使用场景Synchronized是一个同步关键字,在某些多线程场景下,如果不进行同步会导致数据不安全,而Synchronized关键字就是用于代码同步。什么情况下会数据不安全呢,要满足两个条件:一是数据共享(临界资源),二是多线程同时访问并改变该数据。例如:public class AccountingSync implements Runnable{ //共享资源(临界资源) static int i=0; /** * synch...原创 2022-03-09 19:31:56 · 114 阅读 · 0 评论 -
Java消息队列三道面试题详解
面试题为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾都没思考过。 没有对自己的架构问过为什么的人,一定是平时没有思考的人,面试官对这类候选人印象原创 2022-02-15 21:24:29 · 200 阅读 · 0 评论 -
docker常见面试题
Docker「1. 什么Docker」Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。「2. Docker与虚拟机有何不同」Docker不是虚拟化方法。它依赖于实际实现基于容器的虚拟化或操作系统级虚拟化的其他工具。为此,Docker最初使用LXC驱动程序,然后移动到libcontainer现在重命名为runc。Docker主要专注于在应用程序容器内自动部署应用程序。应用程序容器旨在打包和运行单个服务,而系统容器则设计原创 2022-02-15 21:23:17 · 200 阅读 · 0 评论 -
Java线程池实现原理与源码解析
为什么需要线程池?线程池能够对线程进行统一分配,调优和监控:- 降低资源消耗(线程无限制地创建,然后使用完毕后销毁)- 提高响应速度(无须创建线程)- 提高线程的可管理性Java是如何实现和管理线程池的?从JDK 5开始,把工作单元与执行机制分离开来,工作单元包括Runnable和Callable,而执行机制有Executor框架提供。ScheduledThreadPool初始化的线程池可以在指定的时间内周期性的执行所提交的任务,在实际的业务场景中可以使用该线程池定期的同步数据。1.原创 2021-07-23 15:34:02 · 253 阅读 · 0 评论 -
redis支持的五种数据类型及其底层实现
Redis的键值可以使用五种数据类型:字符串,散列表,列表,集合,有序集合。字符串类型字符串是Redis中最基本的数据类型,它能够存储任何类型的字符串,包含二进制数据。可以用于存储邮箱,JSON化的对象,甚至是一张图片,一个字符串允许存储的最大容量为512MB。字符串是其他四种类型的基础,与其他几种类型的区别从本质上来说只是组织字符串的方式不同而已。基本命令原创 2017-12-14 14:51:05 · 9878 阅读 · 0 评论 -
spring的工作原理
IOC(inversion of control)控制反转 概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系。 核心:spring封装了抽象工厂模式;bean工厂创建的各个实例称作为bean。 理解:喜欢吃的东西不一定自己亲自去做,交给食品加工厂去做不是更好吗。spring让一个对象不用创建ne原创 2017-12-14 15:41:22 · 244 阅读 · 0 评论 -
final、finally和finalize的区别
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,原创 2017-07-25 16:12:24 · 182 阅读 · 0 评论 -
spring的事务有几种方式,谈谈spring事务的隔离级别和传播行为
隔离级别:1.default使用数据库的默认隔离级别2..READ_UNCOMMITTED读未提交,会出现脏读,不可重复读和幻读3,.READ_COMMITTED会出现重复读和幻读4.REPEATABLE_READ会出现幻读5.SERIALIZABLE串行读,最安全,但是代价最大,性能差事务的传播行为:---REQUIRED :原创 2017-11-04 12:51:06 · 495 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常原创 2017-07-25 16:10:42 · 157 阅读 · 0 评论 -
Java中的异常处理机制的简单原理和应用
异常指Java程序运行时(非编译)所发生的非正常情况或错误。java对异常进行了分类,不同类型的异常使用了不同的java类,所有异常的根类为java.lang.Throwable.Throwable派生了2个子类:Error和Exception.Error表示程序本身无法克服和恢复的一种严重错误,程序只有死的份,如内存溢出和死锁问题等系统问题。Exception表示还能克服原创 2017-07-25 16:20:48 · 265 阅读 · 0 评论 -
Java垃圾回收原理
一、垃圾回收机制的意义 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。 ps:内存泄露是指该内存空间使用完毕之后未回收,在不原创 2017-07-25 16:36:46 · 264 阅读 · 0 评论 -
深入理解Java:类加载机制及反射
一、Java类加载机制1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始原创 2017-07-25 16:49:53 · 155 阅读 · 0 评论 -
Hibernate与 MyBatis的比较
第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html原创 2017-07-25 17:00:16 · 161 阅读 · 0 评论 -
解析xml的4种方法详解
1. 介绍1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几原创 2017-07-25 17:01:40 · 235 阅读 · 0 评论 -
JSP九大内置对象及四个作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Requestresponse 响应对象 类型 javax.servlet.SrvletResponse 作用域 PagepageContext 页面上下文对原创 2017-07-25 17:03:31 · 157 阅读 · 0 评论 -
spring拦截器与filter的区别
拦截器:面向对象切面编程的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现。过滤器:是在JavaWeb中,你传入的request,response提前过滤掉一些信息或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法的url,或者在传入servlet或者struts的act原创 2017-11-04 12:17:29 · 153 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响原创 2017-07-25 17:07:01 · 179 阅读 · 0 评论 -
mysql/DB2/sql server2008的分页方式
MySQL分页查询select * from table limit beginIndex,maxRowselect * from table limit 10,20DB2分页查询select * from(select rownumber() over() as rc,a.* from 表名 a)where rc between startRow and end原创 2017-11-04 12:43:06 · 154 阅读 · 0 评论 -
hibernate常问的几个面试题目
1.hibernate是如何延迟加载的hibernate提供了属性的延迟加载功能,当hibernate在查询数据 的时候,数据并没有存在于内容中,当程序真正对数据进行操作时,对象才存在于内存中,就实现了延迟加载,他节省了服务器的内存开心,从而提高了服务器的性能。2.hibernate中怎样实现类之间的关系类与类之间的关系主要体现在表与表之间的关系进行操作,他们都是对对象进行操作原创 2017-11-04 12:44:37 · 175 阅读 · 0 评论 -
HashMap底层原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,H原创 2017-07-25 16:08:30 · 202 阅读 · 0 评论