首页 > 编程语言 >Java面试题大全(全网最全,持续更新)初级(2)

Java面试题大全(全网最全,持续更新)初级(2)

时间:2024-09-23 09:54:29浏览次数:11  
标签:面试题 Java 方法 最全 数据类型 线程 重写 构造函数

1. 基础语法

1.1. Java 的数据类型有哪些?

Java 有两种数据类型:

  • 基本数据类型(Primitive Types):包括 byteshortintlongfloatdoublecharboolean
  • 引用数据类型(Reference Types):包括类、接口、数组等。

1.2. final 关键字有什么作用?

final 关键字可以用来修饰类、方法和变量:

  • :不能被继承。
  • 方法:不能被子类重写。
  • 变量:值不能被修改(常量)。

1.3. 解释 Java 中的异常处理机制。

Java 提供了一种基于 try-catch-finally 的异常处理机制:

  • try 块:放置可能抛出异常的代码。
  • catch 块:捕获并处理异常。
  • finally 块:始终执行,无论是否有异常,通常用于资源释放。
try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("ArithmeticException caught");
} finally {
    System.out.println("This block is always executed");
}

2. 面向对象编程

2.1. 什么是构造函数?构造函数有什么特点?

构造函数是用于初始化对象的特殊方法。特点:

  • 与类名相同,没有返回类型。
  • 当创建对象时自动调用。
  • 可以通过重载实现多个构造函数。

2.2. 什么是方法重载和方法重写?

  • 重载(Overloading):同一类中方法名相同,但参数类型或数量不同。
  • 重写(Overriding):子类重新定义父类的非 final 方法,方法签名相同。

2.3. 解释继承和多态。

  • 继承:一个类继承另一个类,可以复用父类的属性和方法。
  • 多态:对象在不同情况下表现出不同的行为,通常通过继承和方法重写实现。

3. 集合框架

3.1. Java 集合框架中 ArrayListLinkedList 有什么区别?

  • ArrayList:基于数组实现,随机访问性能较好,但插入和删除时需要移动元素,性能较差。
  • LinkedList:基于链表实现,插入和删除操作快,但随机访问较慢。

3.2. HashSet 是如何实现去重的?

HashSet 通过哈希表(HashMap)实现,元素不能重复。每次插入元素时,它会计算哈希值并检查是否已经存在相同的哈希值。


4. 多线程基础

4.1. 如何在 Java 中创建线程?

可以通过三种方式创建线程:

  1. 继承 Thread 类,重写 run 方法。
  2. 实现 Runnable 接口,重写 run 方法。
  3. 使用 ExecutorService 创建线程池。
class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
}

new MyThread().start();

4.2. 什么是线程的生命周期?

线程有五种状态:

  1. 新建(New):创建但尚未启动。
  2. 就绪(Runnable):等待 CPU 调度。
  3. 运行(Running):CPU 正在执行线程。
  4. 阻塞(Blocked):等待资源。
  5. 终止(Terminated):线程执行完毕。

 想要更大提升,点击使用小奈AI,免费创造无限可能

标签:面试题,Java,方法,最全,数据类型,线程,重写,构造函数
From: https://blog.csdn.net/m0_55472195/article/details/142450052

相关文章

  • 全网最全挂机掘金脚本合集,单机一天壹张+无压力
    摘要本文介绍了一款功能丰富的挂机型脚本软件,该软件支持多种平台的自动化操作项目概述当前市场上,挂机型脚本软件种类繁多,功能齐全。本软件集成了多种平台的自动化脚本,包括微信阅读、卷轴平台、广告掘金、自动养机、短视频挂机等。用户只需下载一款软件,即可享受多达十几......
  • idea运行java项目main方法报build failure错误的解决方法
    当在使用IntelliJIDEA运行Java项目的main方法时遇到"BuildFailure"错误,这通常意味着在项目的构建过程中遇到了问题。解决这类问题通常需要系统地检查和调整项目设置、代码、依赖项等多个方面。以下是一些详细的解决步骤,以及一个简单的代码示例,用于展示如何确保Java程......
  • JavaScript基础内容
    JavaScript字面量在编程语言中,一般固定值称为字面量,如3.14。数字(Number)字面量可以是整数或者是小数,或者是科学计数(e)。数组(Array)字面量定义一个数组:[40,100,1,5,25,10]对象(Object)字面量定义一个对象:{firstName:"John",lastName:"Doe",age:50,eyeColor:"blue"......
  • 【解决方案】Java 互联网项目中常见的 Redis 缓存应用场景
    目录前言一、常见key-value二、时效性强三、计数器相关四、高实时性五、排行榜系列六、文章小结前言在笔者3年的Java一线开发经历中,尤其是一些移动端、用户量大的互联网项目,经常会使用到Redis作为缓存中间件的基本工具来解决一些特定的问题。下面是笔者总结梳理的一些常......
  • Java反序列化利用链篇 | JdbcRowSetImpl利用链分析
    JdbcRowSetImpl利用链前言首先说明一下:利用链都有自己的使用场景,要根据场景进行选择不同的利用链。JdbcRowSetImpl利用链用于fastjson反序列化漏洞中。为什么?因为fastjson会在反序列化类时自动调用set开头的方法(不一定是setter方法),而JdbcRowSetImpl中存在一个set开头的方法,即......
  • Java反序列化利用链篇 | CC1链_全网最菜的分析思路【本系列文章的分析重点】
    CC1链_全网最菜的分析思路1你必须知道的点1.1反序列化利用链的起点是readObject()方法Java的序列化机制允许将对象的状态保存到一个字节流中,之后可以从这个字节流中恢复(或“反序列化”)出对象。这个过程中,ObjectInputStream类负责读取这些字节流,并尝试根据包含的类型信息重新......
  • Java 入门基础篇08 - Java的变量与数据类型的认识
    1.变量概述什么是变量在程序运行的过程中其值可以在某个范围改变的量变量的作用在程序运行过程中存放某一个不断发生改变的值,在运行时JVM会为变量分配一块内存空间如何定义变量数据类型变量名=变量值;在java中定义变量时必须指定数据类型1. 数据类型数据类型概述......
  • Java反序列化调用链分析系列 | URLDNS链
    URLDNS链URLDNS链是java通过反序列化发起dns请求的利用链。一般用于测试反序列化漏洞。该链比较简单,利用链也比较短。其中入口类为HashMap,执行类为URLStreamHandler的hashCode()方法。整个调用链如下:HashMap.readObject()HashMap.putVal()HashMap.hash()URL.hashCode()......
  • 【Java】掌握Java:基础概念与核心技能
    文章目录前言:1.注释2.字面量3.变量详解3.1变量的定义3.2变量里的数据存储原理3.3数据类型3.4关键字、标识符4.方法4.1方法是啥?4.2方法的完整定义格式4.3方法如何使用:4.4方法的其他形式4.5方法的其他注意事项4.5.1方法是可以重载的4.5.2无返回值的方法中......
  • javaseday28 IO
    IO流IO流;存储和读取数据的解决方案。纯文本文件:Windows自带的记事本打开能读懂的文件,word和Excel不是纯文本文件,txt和md是纯文本文件。小结 IO流体系FileOutputStreampublicclassDemo1{publicstaticvoidmain(String[]args)throwsIOException{......