java面试题
文章平均质量分 72
java面试中时常会被问到和高频考到的,有些是我自己总结的,有些事网上搜集整理的。
如果发现错误还望大家多多包涵,不吝赐教,谢谢~
于歌852
没有人不辛苦,只是有人不喊疼。
SB似的努力,是为了让自己变得NB。
展开
-
Java模拟客户端与服务端的通信
最近听过几个面试的小伙伴说让手写模拟一个java客户端与服务端的通信,虽说很少会遇到这种面试题,但还是认真总结了一下,像手写设计模式(比如单例)跟算法(二分、快速、折半、递归等)这些手写比较常见的。原创 2022-09-08 15:11:12 · 315 阅读 · 0 评论 -
java的加载与执行
java程序对的运行包括两个非常重要的阶段编译阶段运行阶段编译阶段编译阶段主要的任务是检查java源程序是否符合java语法,符合Java语法则能够生成正常的字节码文件(xxx.class)不符合Java语法规则则无法生成字节码文件字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接进行。编译阶段的过程:程序员需要在硬盘的某个位置<位置随意>新建一个.java扩展名的文件。该文件被称为java源文件,源文件当中编写的是Java源代码/源程序而这原创 2022-04-20 22:02:50 · 711 阅读 · 2 评论 -
Java三目运算符(条件运算符)
什么是三目运算:(布尔表达式 ? 值0:值1;)Java提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的if-then-else语句。条件运算符的符号表示为“?:”,使用该运算符时需要三个操作数,因此称其为三目运算符。使用条件运算符的一般语法结构为:result=expression?statement1:statement3;其中expression是一个布尔表达式.当expression为真时,执行statement1,否则就执行statement3。此三目运算符要求返回一个结果原创 2022-03-08 22:45:12 · 813 阅读 · 0 评论 -
java中的关键字final
总结:1.final修饰变量,则等同于常量2.final修饰方法中的参数,称为最终参数。3.final修饰类,则类不能被继承4.final修饰方法,则方法不能被重写。final 不能修饰抽象类final修饰的方法可以被重载 但不能被重写...原创 2021-11-21 18:12:33 · 198 阅读 · 0 评论 -
java学习路线
java学习路线引言:好大部分同学相信踩过坑,甚至不知道学java该怎么学,学完之后是用来干什么的,这里我特意把自己的经历跟看的别人的文章及视频大概给总结了一下,当然好多人都有过总结,但感觉都没有狂神说的透彻跟明白,所以特意给一些迷茫跟不知道怎么学的同学,提供一些信息。想学java这门语言,跟要去找java(也就是我们日常说的后端开发工程师或者java开发工程师),我们学的还东西还是挺多的,大家可以去某站上搜狂神说,然后看完他的视频相信你们也会对这门语言跟了解是用来干什么的呢,个人觉得狂神讲的还是蛮原创 2021-11-03 10:10:33 · 72 阅读 · 0 评论 -
Java基础的面试考点
java工程师面试考点这是我自己亲身经历好多面试官会对实习生问到的问题,像答案这种东西每个人心中肯定都有不一样的看法,这些题就是你自己知道理解了用自己话能说明白就行,后期我会将自己的看法和答案发出来,希望能个正在找工作的小伙伴一些帮助。一、java基础1.1 请你说明String和StringBuffer的区别?1.2 请你说明一下int和Interger有什么区别?1.3 数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array而不是ArrayList?1.4 什么原创 2021-07-06 14:52:39 · 73 阅读 · 0 评论 -
Java中必须要会的几个算法
Java中常见的算法递归二分查找快速排序冒泡排序选择排序递归递归本质:程序调用自身的编程技巧叫做递归。方法的递归调用指的是一个方法自己调用自己的形式。一般如果要进行方法的递归操作往往都具备有以下的特点:方法必须有一个递归的结束条件;方法在每次递归处理的时候一定要做出一些变更;代码举例如下:public class Algorithm { //递归 public static void main(String[] args) { Scanner原创 2021-06-29 21:56:38 · 502 阅读 · 7 评论 -
java面试题及答案19
十九、JVM194. 说一下 jvm 的主要组成部分?及其作用?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)组件的作用: 首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交个底层操作系统去执行,因此需要特定的命转载 2021-06-06 17:39:34 · 80 阅读 · 0 评论 -
java面试题及答案18
十八、Redis179. redis 是什么?都有哪些使用场景?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 使用场景:数据高并发的读写海量数据的读写对扩展性要求高的数据180. redis 有哪些功能?数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列181. redis 和 memecache 有什么区别?memcached所有的值均是简单的字符串,re原创 2021-06-03 15:59:55 · 59 阅读 · 2 评论 -
java面试题及答案17
十七、MySql164. 数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性。165. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?表类型如果是 MyISAM ,那 id 就是 18。表类型如果是 InnoDB,那 id 就是 15转载 2021-06-03 15:48:10 · 71 阅读 · 0 评论 -
java面试题及答案16
**十六、Zookeeper****必买java核心技术卷I必买java核心技术卷II157. zookeeper 是什么?zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。158. zookeeper 都有哪些功能?集群管理:监控节点存活状态、运行请求等。主节点选举:主节点挂掉了之后转载 2021-06-02 15:35:06 · 46 阅读 · 0 评论 -
java面试题及答案15
十五、Kafka必买java核心技术卷I必买java核心技术卷II152. kafka 可以脱离 zookeeper 单独使用吗?为什么?kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。153. kafka 有几种数据保留的策略?kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。154. kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 k原创 2021-06-02 15:06:58 · 35 阅读 · 0 评论 -
java面试题及答案14
十四、RabbitMQ必买java核心技术卷I必买java核心技术卷II135. rabbitmq 的使用场景有哪些?①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。②. 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。在企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程转载 2021-06-01 21:27:51 · 61 阅读 · 0 评论 -
java面试题及答案13
十三、Mybatis必买java核心技术卷I必买java核心技术卷II125. mybatis 中 #{}和 ${}的区别是什么?#{}是预编译处理,${}是字符串替换;Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理时,就是把{}时,就是把时,就是把{}替换成变量的值;使用#{}可以有效的防止SQL注入,提高系统安全性。126. mybatis 有几种分页方式?1. 数组分页2. sql原创 2021-06-01 21:19:28 · 46 阅读 · 0 评论 -
java面试题及答案12
十二、Hibernate必买java核心技术卷I必买java核心技术卷II113. 为什么要使用 hibernate?对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种转载 2021-06-01 21:07:14 · 58 阅读 · 0 评论 -
java面试题及答案11
十一、Spring Boot / Spring Cloud必买java核心技术卷I必买java核心技术卷II104. 什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、常量数据等。SpringBo原创 2021-06-01 21:02:08 · 101 阅读 · 2 评论 -
java面试题及答案10
十、Spring / Spring MVC必买java核心技术卷I必买java核心技术卷II90. 为什么要使用 spring?1.简介目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。2.轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的转载 2021-05-31 22:47:32 · 132 阅读 · 0 评论 -
java面试题及答案09
九、设计模式必买java核心技术卷I必买java核心技术卷II88. 说一下你熟悉的设计模式?参考:常用的设计模式汇总,超详细!89. 简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工厂产品。如例子中的Driver类。抽象产品角色:它一般是具体产品继承的父类或者实现的接口转载 2021-05-31 22:40:07 · 52 阅读 · 0 评论 -
聊聊java中的构造器
java中的构造器java核心技术卷Ijava核心技术卷II构造器是什么1.构造器,也称构造方法、构造函数。作用是构造出来一个类的实例,确保对象得到初始化。2.构造器的格式: 权限修饰符 类名(无参/有参){}。3.根据有无参数,可分为无参构造 和有参构造。构造器的特性1.与一般方法名不同的是,构造方法名必须和类名保持一致,并且没有返回值。2.Java编译器会自动创建无参构造函数,因此在类中,无参构造即使没有,我们也可省略不写。实例化对象时无需赋值。3.倘若类中已存在有参构造函数,则编译原创 2021-05-28 15:20:00 · 51 阅读 · 0 评论 -
java面试题及答案08
网络java核心技术卷java核心技术卷II79. http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。80. forward 和 redirect 的区别?Forward和Redirect代表了两种请求转发方式:直原创 2021-05-27 09:45:54 · 62 阅读 · 0 评论 -
java面试题及答案07
异常java核心技术卷Ijava核心技术卷II74. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。75. final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。finally一般作用在try原创 2021-05-27 09:30:57 · 39 阅读 · 0 评论 -
java面试题及答案06
Java Webjava核心技术卷Ijava核心技术卷II64. jsp 和 servlet 有什么区别?jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及Ht转载 2021-05-27 09:17:45 · 83 阅读 · 0 评论 -
java面试题及答案0405
Java面试题 必备java核心技术卷I必备java核心技术卷II57. 什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的方法。58. 什么是 java 序列原创 2021-05-25 21:46:31 · 78 阅读 · 0 评论 -
java面试题及答案03
多线程java核心技术卷Ijava核心技术卷II35. 并行和并发有什么区别?并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。36. 线程和进程的区别?简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程转载 2021-05-24 21:24:58 · 48 阅读 · 0 评论 -
java面试题及答案02
18. java 容器都有哪些?常用容器的图录:19. Collection 和 Collections 有什么区别?java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于转载 2021-05-24 21:08:26 · 69 阅读 · 0 评论 -
java面试题及答案01
java常见的面试题java核心技术卷1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。2. == 和 equals 的区别是什转载 2021-05-24 20:53:22 · 50 阅读 · 0 评论