转眼间9月已经到来。对于大多数学生来说,这不仅意味着开学,也意味着秋季招聘的步伐即将到来。我相信计算机和计算机编程相关专业的大三学生已经在为秋季招聘做准备,想从事java程序员学生必须做的准备工作是java校招面试题以下是互联网公司面试中出现的一些研究。java校招面试题目,供想参加校园招聘的同学学习参考。
1、为什么Java被称为是“编程语言与平台无关”?
答:Java被设计成允许应用程序在任何平台上运行,而不需要程序员单独重写或重新编译每个平台。Java虚拟机使这种可能性,因为它知道底层硬件平台的指令长度和其他特性。
2、什么是Java虚拟机?
答:Java虚拟机是一个可以执行Java字节码的虚拟机过程。Java源文件被编译成可以由Java虚拟机执行的字节码文件。
3、“static”关键词是什么意思?Java中能否覆盖private或static?
答:“static”关键字表示,一个成员变量或成员方法可以在没有所属类别实例变量的情况下进行访问。
Java中的static方法不能被覆盖,因为它是基于运行时的动态绑定,而static方法在编译时是静态绑定的。static方法与任何类别的例子无关,因此不适用于概念。private的方法不能在java中覆盖,因为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)?
答:所谓死锁,是指由竞争资源引起的多个过程(相互等待)的僵局。如果没有外力,这些过程将无法前进。死锁四个必要条件:(1)互斥条件:过程要求排他性控制分配的资源(如打印机),即在一段时间内 资源只占有一个过程。此时,如果有其他过程要求资源,请求过程只能等待。(2)不剥夺条件:过程中获得的资源在使用前不能被其他过程强行夺走,即只能被其他过程强行夺走 自行释放获取资源的过程(只能主动释放)。(3)请求和维护条件:过程中至少保留了一个资源,但提出了新的资源请求,该资源 已被其他过程占有,此时请求过程被堵塞,但已获得的资源不能保留。(4)循环等待条件:有一个循环等待链的过程资源,链中每个过程获得的资源同时获得 请求链中下一个过程。
9、Ribbon是什么?
答:(1)Ribbon 是基于Netflix的基于HTTP和TCP的客户服务端负载平衡工具 Ribon实现;(2)与spring不同 cloud服务独立部署注册中心、配置中心和API网关,但它几乎存在于每个spring中 cloud 微服务。包括feign提供的声明服务调用也是基于Ribon实现的;(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依赖Jakartata commons-pool对象池机制的数据库连接池.DBCP可以直接用于应用程序,DBCP用于Tomcat的数据源。
(2)c3p0:c3p0是一个开放源代码JDBC连接池,它在lib目录与Hibernate一起发布,包括Conectionne,实现jdbc3和jdbc2扩展规范 以及Statemente DataSourcess池 对象。
(3)Druid:阿里巴巴生产的淘宝和支付宝专用数据库连接池,但它不仅是一个数据库连接池,还包括一系列内置JDBC组件库和SQL Parser。支持包括JDBC在内的所有JDBC兼容数据库Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。
19、DAO模式是什么?
答:DAO(DataAccess Object)顾名思义,它是一个为数据库或其他持久机制提供抽象接口的对象,提供各种数据操作,而不暴露数据库的细节。为了建立一个强大的Java EE应用程序应抽象数据源的所有访问操作,然后包装在公共API中。在程序设计语言方面,建立一个界面,界面定义了应用程序中将使用的所有事务方法。在这个应用程序中,当需要与数据源交互时,使用该接口,并编写一个单独的类来实现该接口,逻辑上对应于一个特定的数据存储。DAO模式实际上包含了两种模式,一种是DATA Accessor(数据访问器)二是Data Object前者应该解决如何访问数据的问题,后者应该解决如何用对象包装数据。
20、数据库存储过程的优点?
答:(1)执行速度更快:数据库中保存的存储过程语句已编译;(2)允许模块化程序设计:类似方法的重用;(3)提高系统安全性:防止SQL注入;(4)减少网络流通量:只要传输存储过程的名称。
上面整理的