zoukankan      html  css  js  c++  java
  • Java经典面试题(一)

    1.在 Java 中类的定义在 Java 中,类是用于创建对象和定义数据类型的模板。 它充当面向 Java 语言的系统的构建块。
    2.静态加载和动态加载有什么区别?静态类加载涉及使用新关键字来创建对象和实例,而动态加载是在编译时不知道类的名称的场景执行的。
    3. 什么是多线程多线程是一种编程概念,用于在单个程序中以并发方式运行多个任务。
    4. 何时以及是谁开发的 Java ?Java 由 James Gosling 于 1995 年在 Sun Microsystem 中开发。
    5. JDK,JRE 和JVM 分别代表什么?

    • JVM 代表 Java 虚拟机
    • JRE 代表 Java Runtime Environment
    • JDK 代表 Java Development Kit

    6. Java 中使用指针吗?不,Java不使用指针。 它具有严格的安全性。 而不是指针,Java中使用引用,因为与指针相比,它们更安全,更安全。
    7.如何使用Java连接数据库?使用Java连接数据库的步骤如下:

    • 注册驱动程序类
    • 创建连接
    • 创建声明
    • 执行查询
    • 关闭连接

    8. JVM和JRE的功能是什么?JVM 为要执行的 Java 字节代码提供运行时环境。 JRE 包括 JVM 在运行时期间所需的文件集。
    9.重载和覆盖(重写)有什么区别?当有两个名称相同但属性不同的方法时,它会重载。 当有两个具有相同名称和属性的方法时,会发生覆盖,一个在子类中,另一个在父类中。 查看此帖子以获得更深入的分析。
    10.哈希基于集合的负载因子的默认大小是多少?默认大小为0.75,默认容量计算如下: 初始容量*负载因子
    11.什么是包?包是相关类和接口的集合。
    12.所有异常类的基类是什么?Java.lang.Throwable 是所有异常类的超类,所有异常类都是从这个基类派生的。
    13. equals()和= =之间有什么区别?equals()方法用于检查业务逻辑定义的两个对象的相等性。 == 或等于运算符用于比较基元和对象。
    14.说两个内部类和子类之间的差异Inner类在同一个文件中,子类可以在另一个文件中。 考虑到这一点,虽然子类具有其父类的方法,但内部类获取他们想要的方法。
    15.如何用Java定义析构函数?由于Java有自己的垃圾收集,因此不需要定义析构函数。 垃圾收集机制自动执行对象的回收。
    16. JSON定义JSON是JavaScript Object Notation的首字母缩写。 它使用JavaScript语法,格式仅为文本。
    17.列举Java最重要的特性Java是一种独立于平台的语言。
    18.什么是匿名类?使用new关键字在单行代码中没有名称定义的类称为匿名类。
    19.什么是JVM?JVM是Java虚拟机,它是已编译的Java类文件的运行时环境。
    20.死去的线程可以重新开启吗?不,处于死状态的线程无法再次启动。
    21. 数组是原始数据类型吗?不,在Java中,数组是对象。
    22.什么是Java中的构造函数?在Java中,构造函数是用于初始化对象的代码块。
    23.有哪些类型的构造器?有两种类型的构造函数: 1.默认构造函数: 没有参数的构造函数称为默认构造函数。 如果我们没有在类中定义构造函数,编译器会为该类创建一个默认构造函数(没有参数),如下所示:

     1 // no-argument constructor
     2 importjava.io.*;
     3 class Sprint{
     4   intnum;
     5   String name;
     6   // this would be invoked while object
     7   // of that class created.
     8   Sprint(){
     9     System.out.println("Constructor called");
    10   }
    11 }
    12 class Z{
    13   public static void main (String[] args){
    14     // this would invoke default constructor.
    15     Sprint zeal1 = new Sprint();
    16     // Default constructor provides the default
    17     // values to the object like 0, null
    18     System.out.println(zeal1.name);
    19     System.out.println(zeal1.num);
    20   }
    21 }

    参数化构造函数 参数化构造函数具有已知参数的构造函数是参数化构造函数。 如果我们想用自己的值初始化类的字段,那么使用*参数构造函数。

     1 // Java Program to illustrate calling of
     2 // parameterized constructor.
     3 import java.io.*;
    4
    5 class Sprint{
    6
    7   // data members of the class. 8   String name; 9   int id; 10   // contructor would initialized data members 11   // with the values of passed arguments while 12   // object of that class created. 13   Sprint(String name, int id){ 15     this.name = name; 16     this.id = id; 17   } 18 } 19 class Z{
    20
    21 public static void main (String[] args){ 22 23   // this would invoke parameterized constructor. 24   Sprint zeal1 = new Sprint("adam", 1); 25   System.out.println("Sprint Name :"+ zeal1.name +" and Sprint Id :" + zeal1.id); 26  } 27 }

    24.解释Java中的垃圾收器。在Java中,当不再使用或引用对象时,将调用垃圾收集并自动销毁对象。
    25.堆栈和队列之间有什么区别?堆栈和队列之间的区别在于堆栈基于后进先出(LIFO)原则,而队列基于FIFO(先进先出)原则。

  • 相关阅读:
    Java技术路线--2循环
    Java技术路线--1基本类型与包装类
    Linux内存管理之UMA模型和NUMA模型
    最长XX子串/数组/子序列
    epoll LT 模式和 ET 模式详解
    OS篇:OS中进程的阻塞与挂起的区别
    约瑟夫环问题
    最大公约数和最小公倍数
    C++之寻找素数(素数筛)
    Linux OOM机制分析
  • 原文地址:https://www.cnblogs.com/JackpotHan/p/9585093.html
Copyright © 2011-2022 走看看