JAVA面试题

Posted y-u-p

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA面试题相关的知识,希望对你有一定的参考价值。

1.JDK.JRE.JVM的区别?

JDK:是三者之中范围最大的,JDK包含JRE与JVM。JDK主要包括java运行环境,java开发工具包,java基础类(API)库。JDK是整个java开发的核心,其中的java开发工具包是java开发中必不可少的,能够将源代码编译成.class文件交给JRE运行。

JRE:具体在java的运行环境。包括两个部分,JVM标准实现和java的一写基本类库。能够运行javac编译后的.class

文件。

JVM:即java虚拟机,识别.class文件并将其中的字节码文件进行执行。当然JVM执行.class文件时还需要调用jre下的lib类库。

2.java中常见的排序有哪些?具体代码实现

1.冒泡排序

// 冒泡排序
    public static int[] bubbleSort(int[] arr){
        for (int i = 0;i < arr.length - 1;i++){
            for (int j = 0;j < arr.length -1 - i;j++){
                if (arr[j] < arr[j + 1]){
                    int temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

2.选择排序

// 选择排序
    public static int[] choice(int[] arr){
        int min = 0;
        for (int i = 0;i < arr.length - 1;i++){
            min = i;
            for (int j = i + 1;j < arr.length;j++) {
                if (arr[min] > arr[j]) {
                    min = j;
                }
            }
            if (min != i){
                int temp = arr[min];
                arr[min] = arr[i];
                arr[i] = temp;
            }
        }
        return arr;
    }

3.java的基本数据类型有哪些?各占几个字节?

数据类型 字节 位数
byte 1 8
short 2 16
char 2 16
float 4 32
int 4 32
long 8 64
double 8 64
boolean 1 8

4.方法的重载与方法的重写的区别?

方法重写是子类继承父类,对父类的方法进行重新实现,即有相同的方法签名(方法名,参数类型,参数数量,返回值类型)。

方法重载是在相同了类中,多个方法的方法名相同,参数列表不同(参数类型,参数数量)。

相同点:方法名都是相同的

不同点:重写发生在不同的类中,重载发生在同一个类中

5.public,protected,default,private的区别?

public:拥有最大权限,其成员属性,成员方法,函数对所有用户都是开放的,都可以被访问,被调用。

protected:对于同一包下的类和不同包下的子类都是开放的,相当于public,对不同包下的其他类是不可见的。

default:对于同一包下的所有类都是可见的,对不同包下的类是不可见的。

private:仅限于类内部使用。

本类 本包 子类 外包
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N

6.Http的异常状态码有哪些?各代表什么?

400:客户端异常,前台参数与后台参数不一致

404:请求资源未找到,css,js,image,后台方法映射地址等

405:请求方式不匹配

500:服务端内部错误,service层方法或业务逻辑代码错误

503:应用,服务提供方,service,业务重启,代码修改等

7.JDBC的具体实现步骤?

public class Demo02 {
    public static void main(String[] args) throws Exception {
        // 加载驱动
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        // 获取连接
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/note","root","root");
        // 创建处理块
        Statement statement = connection.createStatement();
        // 设置sql语句
        String sql = "select uname from tb_user";
        // 执行处理块
        ResultSet resultSet = statement.executeQuery(sql);

        // 处理结果集
        while (resultSet.next()){
            String uname = resultSet.getString(1);
            String uname1 = resultSet.getString("uname");
            System.out.println(uname);
            System.out.println(uname1);
        }

        // 关闭资源 先开后关
        resultSet.close();
        statement.close();
        connection.close();
    }
}

8.抽象类和接口的区别?

1.抽象类和接口都不能被实例化

2.一个类只能继承一个抽象类,但可以实现多个接口

3.抽象类和接口子类必须实现全部方法,如果子类没有全部实现,那么其子类也必定是一个抽象类

4.接口中的方法都是抽象方法,而抽象类中可以有抽象方法,也可以有非抽象方法

5.接口只能进行方法声明,而抽象类既可以声明也可以实现

6.接口没有构造方法,抽象类可以用构造方法

以上是关于JAVA面试题的主要内容,如果未能解决你的问题,请参考以下文章

经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!

前端面试题之手写promise

一道经典面试题:字符串在Java中如何通过“引用”传递

Java之String相关内容详解(字符串和字符串常量池)面试题

JAVA基础面试题

Java面试题及答案2020,java登录界面代码