1 Star 0 Fork 31

邪恶的笨笨熊 / Ebooks

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

2022年各大厂最新基础Java面试题资料整合及答案

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

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

Java 基础

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

1、名字与类名相同。

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

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

题2:String s = new String("abc"); 创建了几个String对象?

String s = new String("abc"); 创建了2个String对象。

一个是字符串字面常数,在字符串常量池中。

一个是new出来的字符串对象,在堆中。

题3:Java 中 short s1=1; s1+=1; 有错吗?

Java中short s1=1; s1+=1;是正确的。

“+=”是赋值运算符,不牵涉与其它类型的数字计算,也不会转成int类型的,因此不会报错。

注意的是表达式x += i不是表达式x = x + i的简写方式。

表达式x = x + i使用的是简单赋值操作符=,而表达式x += i使用的是复合赋值操作符,复合赋值表达式会自动地将所执行计算的结果转型为其左侧变量的类型。

题4:Java 中能否继承 String 类?

String类是final类所以不可以被继承。

题5:Java 中 JDBC 调用数据库有哪几步骤?

使用JDBC来实现访问数据库记录几个步骤:

1、注册驱动,通过驱动器管理器获取连接接口。

2、获得Statement或它的子类。

3、限制Statement中的参数。

4、执行Statement。

5、查看返回的行数是否超出范围。

6、关闭Statement。

7、处理其它的Statement。

8、关闭连接接口。

// 1.注册驱动
Class.forname("com.mysql.jdbc.Driver");// 这是连接mysql数据库的驱动
// 2.获取数据库连接
java.sql.Connection conn = java.sql.DriverManager.getConnection();
// 3.获取表达式
java.sql.Statement stmt = conn.createStatement("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root", "123456");
// 4.执行SQL
java.sql.ResultSet rs=stmt.executeQuery("select * from user");
// 5.显示结果集里面的数据
while(rs.next())
{
	System.out.println(rs.getInt(1));
	System.out.println(rs.getString("username"));
	System.out.println(rs.getString("password"));
	System.out.pringln();
}
// 执行插入语句
// stmt.executeUpdate("insert into user values(1,'中文','345')");
// 6.关闭连接接口,释放资源
rs.close();stmt.close();conn.close();

题6:静态变量和实例变量有什么区别?

静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。

实例变量:相当于该类的属性,需要初始化这个类后才可以调用。如果这个类未被再次使用,垃圾回收器回收后这个实例也将不存在了,下次再使用时还需要初始化这个类才可以再次调用。

1)存储区域不同:静态变量存储在方法区属于类所有,实例变量存储在堆当中;

2)静态变量与类相关,普通变量则与实例相关;

3)内存分配方式不同。

4)生命周期不同。

需要注意的是从静态变量在jdk7以后和字符串常量池一起存储在了堆中,JDK1.8开始用于实现方法区的PermSpace被MetaSpace取代。

题7:抽象类能使用 final 修饰吗?

abstract类为抽象类,即该类只关心子类具有的功能,而不是功能的具体实现。

抽象类不能实例化,其作用是为了被其他类继承,因此final关键字不能修饰抽象类。

抽象类是被用于继承的,final修饰代表不可修改、不可继承的。

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

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

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

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

题9:RMI 的绑定(Binding)是什么含义?

绑定是为了查询找远程对象而给远程对象关联或者是注册以后会用到的名称的过程。

远程对象可以使用Naming类的bind()或者rebind()方法跟名称相关联。

题10:Java 中 & 和 && 有什么区别?

&是位操作

&&是逻辑运算符

逻辑运算符具有短路特性,而&不具备短路特性。

来看一下代码执行结果:

public class Test{

    static String name;
 
    public static void main(String[] args){
        if(name!=null & name.equals("")){
            System.out.println("ok");
        }else{
            System.out.println("error");
        }
    }
}

执行结果:

Exception in thread "main" java.lang.NullPointerException
	at com.jingxuan.JingXuanApplication.main(JingXuanApplication.java:25)

上述代码执行时抛出空指针异常,若果&替换成&&,则输出日志是error。

题11:a==b-与-a.equals(b)-有什么区别

题12:内部类引用其他类的成员有什么限制

题13:java-中-files-类常用方法都有哪些

题14:main-方法中-args-参数是什么含义

题15:java-编程语言有哪些特点

题16:static-nested-class-和-inner-class-有什么区别

题17:如何使用命令行编译和运行-java-文件

题18:rmi-的-stub扮演了什么样的角色

题19:java-如何实现字符串中查找某字符出现的次数

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

题21:java-中什么是隐式的类型转换

题22:java-中实现多态的机制是什么

题23:java-有没有-goto

题24:成员变量与局部变量有那些区别

题25:java-中-while-和-do-while-有什么区别

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/zhuxinyu114/ebooks.git
git@gitee.com:zhuxinyu114/ebooks.git
zhuxinyu114
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891