动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

java校招面试题大全

09-03 17:11 124浏览
举报 T字号
  • 大字
  • 中字
  • 小字

转眼间9月已经到来,对于广大学生来说,不仅意味着开学,也意味着秋招的脚步近了。相信计算机电脑编程相关专业的大三学生们已经在为秋招做准备了,想从事java程序员岗位的同学们一定要做的准备工作就是java校招面试题的学习,下面整理了一些出现在互联网公司面试中的java校招面试题目,供各位想参加校园招聘的同学们学习参考。

1、为什么Java被称作是“平台无关的编程语言”?

答:Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

2、什么是Java虚拟机?

答:Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。

3、“static”关键字是什么意思?Java中是否可以覆盖一个private或者是static的方法?

答:“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。

4、是否可以在static环境中访问非static变量?

答:static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5、Java方法覆盖(Overriding)和方法重载(Overload)是什么意思?

答:Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

6、什么是构造方法?什么是构造方法重载?什么是复制构造方法?

答:当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。在程序员没有给类提供构造方法的情况下,Java编译器会为这个类创建一个默认的构造方法。

Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。

Java不支持像C++中那样的复制构造方法,这个不同点是因为如果你不自己写构造方法的情况下,Java不会创建默认的复制构造方法。

7、在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

答:监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联。线程在获取锁之前不允许执行同步代码。

8、什么是死锁(deadlock)?

答:所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。死锁产生的4个必要条件:(1)互斥条件:进程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某 资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。(2)不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能 由获得该资源的进程自己来释放(只能是主动释放)。(3)请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源 已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。(4)循环等待条件:存在一种进程资源的循环等待链,链中每一个进程已获得的资源同时被 链中下一个进程所请求。

9、什么是Ribbon?

答:(1)Ribbon 是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的;(2)它不像spring cloud服务注册中心、配置中心、API网关那样独立部署,但是它几乎存在于每个spring cloud 微服务中。包括feign提供的声明式服务调用也是基于该Ribbon实现的;(3)ribbon默认提供很多种负载均衡算法,例如 轮询、随机 等等。甚至包含自定义的负载均衡算法。

10、集中式与进程内负载均衡的区别是什么?

答:目前业界主流的负载均衡方案可分成两类:

第一类:集中式负载均衡, 即在consumer和provider之间使用独立的负载均衡设施(可以是硬件,如F5, 也可以是软件,如nginx), 由该设施负责把 访问请求 通过某种策略转发至provider。

第二类:进程内负载均衡,将负载均衡逻辑集成到consumer,consumer从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的provider。

Ribbon就属于后者,它只是一个类库,集成于consumer进程,consumer通过它来获取到provider的地址。

11、什么是服务的灾难性的雪崩效应?

答:在微服务架构中,一个请求需要调用多个服务是非常常见的。如客户端访问A服务,而A服务需要调用B服务,B服务需要调用C服务,由于网络原因或者自身的原因,如果B服务或者C服务不能及时响应,A服务将处于阻塞状态,直到B服务C服务响应。此时若有大量的请求涌入,容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,造成连锁反应,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

12、简述Java内存管理机制,以及垃圾回收的原理和使用过Java调优工具是什么?

答:内存管理的职责为分配内存,回收内存。 没有自动内存管理的语言/平台容易发生错误。

典型的问题包括悬挂指针问题,一个指针引用了一个已经被回收的内存地址,导致程序的运行完全不可知。另一个典型问题为内存泄露,内存已经分配,但是已经没有了指向该内存的指针,导致内存泄露。 程序员要花费大量时间在调试该类问题上。

13、下列提法中,不属于ifconfig 命令作用范围的是 (D)

A. 配置本地回环地址

B. 配置网卡的IP地址

C. 激活网络适配器

D. 加载网卡到内核中

14、下列关于链接描述,错误的是(B)

A. 硬链接就是让链接文件的i 节点号指向被链接文件的i 节点

B. 硬链接和符号连接都是产生一个新的i 节点

C.链接分为硬链接和符号链接

D.硬连接不能链接目录文件

15、在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是(C)

A. 主机IP设置有误

B. 没有设置连接局域网的网关

C. 局域网的网关或主机的网关设置有误

D. 局域网DNS服务器设置有误

16、下列文件中,包含了主机名到IP 地址的映射关系的文件是(B)

A. /etc/HOSTNAME

B. /etc/hosts

C. /etc/resolv.conf

D. /etc/networks

17、不需要编译内核的情况是(D)

A. 删除系统不用的设备驱动程序时

B. 升级内核时

C. 添加新硬件时

D. 将网卡激活

18、请列出Java常见的开源数据连接池,并对参数做出简单的说明

答:在Java中开源的常用的数据库连接池有以下几种 :

1)DBCP:DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP。

2)c3p0:c3p0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

3)Druid:阿里出品,淘宝和支付宝专用数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser。支持所有JDBC兼容的数据库,包括OracleMySqlDerby、Postgresql、SQL Server、H2等等。

19、什么是DAO模式?

答:DAO(DataAccess Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露数据库实现细节的前提下提供了各种数据操作。为了建立一个健壮的Java EE应用,应该将所有对数据源的访问操作进行抽象化后封装在一个公共API中。用程序设计语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储。DAO模式实际上包含了两个模式,一是Data Accessor(数据访问器),二是Data Object(数据对象),前者要解决如何访问数据的问题,而后者要解决的是如何用对象封装数据。

20、数据库存储过程的优点?

答:(1)执行速度更快:在数据库中保存的存储过程语句都是编译过的;(2)允许模块化程序设计:类似方法的复用;(3)提高系统安全:防止SQL注入;(4)减少网络流通量:只要传输存储过程的名称。

上面整理的20java校招面试题都是在面试中出现过常考的题目,很有学习和参考价值,因为是校招面试题,所以对java基础知识考查的比较多,相信大家在认真学习java培训课程后都可以掌握这些题目中包含的知识。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1147
程序员代码小兵1147

6篇文章贡献30358字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消