1 Star 0 Fork 31

霍月龙 / Ebooks

forked from dearHaoGeGe / Ebooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
最新100道面试题2021年Java基础面试题及答案汇总.md 10.37 KB
一键复制 编辑 原始数据 按行查看 历史

最新100道面试题2021年Java基础面试题及答案汇总

全部面试题答案,更新日期:01月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

Java 基础

题1:如何理解 final 关键字?

1)类的final变量和普通变量有什么区别?

当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。

2)被final修饰的引用变量指向的对象内容可变吗?

引用变量被final修饰之后,虽然不能再指向其他对象,但是它指向的对象的内容是可变的

3)final参数的问题

在实际应用中,我们除了可以用final修饰成员变量、成员方法、类,还可以修饰参数、若某个参数被final修饰了,则代表了该参数是不可改变的。如果在方法中我们修改了该参数,则编译器会提示你:

The final local variable i cannot be assigned. It must be blank and not using a compound assignment。

java采用的是值传递,对于引用变量,传递的是引用的值,也就是说让实参和形参同时指向了同一个对象,因此让形参重新指向另一个对象对实参并没有任何影响。

题2:Java 事务都有哪些类型?有什么区别?

ava事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。

JDBC事务

JDBC事务是用Connection对象控制的。JDBC Connection接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交。

JTA(java Transaction API)事务

JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。

JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。

容器事务

容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现。

三种类型Java事务差异

1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。

2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。

3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用。

题3:如何使用命令行编译和运行 Java 文件?

编译和运行Java文件,需了解两个命令:

1)javac命令:编译java文件;使用方法: javac Hello.java ,如果不出错的话,在与Hello.java 同一目录下会生成一个Hello.class文件,这个class文件是操作系统能够使用和运行的文件。

2)java命令: 作用:运行.class文件;使用方法:java Hello,如果不出错的话,会执行Hello.class文件。注意:这里的Hello后面不需要扩展名。

新建文件,编写代码如下:

public class Hello{
	public static void main(String[] args){
		System.out.println("Hello world,欢迎关注微信公众号“Java精选”!");
	}
}

文件命名为Hello.java,注意后缀为“java”。

打开cmd,切换至当前文件所在位置,执行javac Hello.java,该文件夹下面生成了一个Hello.class文件

输入java Hello命令,cmd控制台打印出代码的内容Hello world,欢迎关注微信公众号“Java精选”!

题4:Java 中构造方法有哪些特性?

1、名字与类名相同。

2、没有返回值,但不能用void声明构造函数。

3、生成类的对象时自动执行,无需调用。

题5:Java 常量命名规则是什么?

常量名:全部使用大写,最好使用下划线分割单词。

题6:为什么静态方法中不能调用非静态方法或变量?

非静态的方法可以调用静态的方法,但是静态的方法不可以调用非静态的方法。

类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。

在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错。

题7:Java 中 this 和 super 有哪些用法区别?

this

this表示一个对象的引用,它指向正在执行方法的对象。特别的是在构造方法中,通过this关键字调用其他构造方法时,必须放在第一行,否则编译器会报错。并且在构造方法中,只能通过this调用一次其他构造方法。

this是自身的一个对象,代表对象本身,大致分为3种用法如下:

1、普通直接引用当前对象本身;

2、形参和成员名重名,用this来区分;

3、引用构造方法 ,this(参数),应该为构造函数中的第一条语句,调用的是本类中另外一种形式的构造方法。

super

super表示指向父类的引用,如果构造方法没有显示地调用父类的构造方法,那么编译器会自动加上一个默认的super()方法调用。如果父类由没有默认的无参构造方法,编译器就会报错,super()语句必须是构造方法的第一个子句。

定义子类的一个对象时,会先调用子类的构造函数,然后在调用父类的构造函数,如果父类函数足够多的话,会一直调用到最终的父类构造函数,函数调用时会使用栈空间,所以按照入栈的顺序,最先进入的是子类的构造函数,然后才是邻近的父类构造函数,最后再栈顶的是最终的父类构造函数,构造函数执行是则按照从栈顶到栈底的顺序依次执行。

super大致分为3种用法如下:

1、普通的直接引用,与this类似,只不过它是父类对象,可以通过它调用父类成员;

2、子类中的成员变量或方法与父类中的成员变量或方法同名,可以使用super区分;

3、引用构造方法,super(参数):调用父类中的某一个构造方法(应该为构造方法中的第一条语句)。

题8:RMI体系结构分哪几层?

RMI体系结构分以下几层:

存根和骨架层(Stub and Skeleton layer): 这一层对程序员是透明的,它主要负责拦截客户端发出的方法调用请求,然后把请求重定向给远程的RMI服务。

远程引用层(Remote Reference Layer): RMI体系结构的第二层用来解析客户端对服务端远程对象的引用。这一层解析并管理客户端对服务端远程对象的引用。连接是点到点的。

传输层(Transport layer): 这一层负责连接参与服务的两个JVM。这一层是建立在网络上机器间的TCP/IP连接之上的。它提供了基本的连接服务,还有一些防火墙穿透策略。

题9:Java 方法命名规则是什么?

方法名:通常是具有含义的单词组成,第一个单词首字母小写,其他单词的首字母都大写。

题10:Java 中 WEB-INF 目录有什么作用?

WEB-INF是Java的WEB应用的安全目录。

所谓安全是指客户端是无法直接访问的目录,必须通过服务端才可以可以访问的目录。如果需要在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

如果放在WEB-INF中,必须修改resources映射,例如:

<resources mapping="/index/**" location="/WEB-INF/jsp/index" />

参数含义:

mapping参数表示对应访问应用程序时的地址。

location参数表示对应应用程序中文件所在的位置。

题11:java-中-error-和-exception都有哪些区别

题12:a.hashcode()-有什么用与-a.equals(b)-有什么关系

题13:java-中-&-和-&&-有什么区别

题14:switch-中能否使用-string-作为参数

题15:java-中基本类型都有哪些

题16:java-中什么是重写override

题17:什么是-java-内部类

题18:rmi中的远程接口remote-interface扮演了什么样的角色

题19:为什么-hashmap-负载因子是-0.75

题20:非对称加密主要有哪些实现方式

题21:重载和重写有什么区别

题22:java-中-integer-a=-128-与-integer-b-=-128-相等吗

题23:object-类都有哪些公共方法

题24:java-中->>>>>>-三者有什么区别

题25:java-中常量和变量有哪些区别

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/huo-yuelong/ebooks.git
git@gitee.com:huo-yuelong/ebooks.git
huo-yuelong
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891