Java 面试题整理

devtools/2024/10/21 7:42:33/

Java 基础

  • Java 自动装箱、拆箱(编译器自动处理)

    • 装箱: Jdk1.5 之后提供的功能、将包装类型自动转换为基本数据类型
    • 拆箱: Jdk1.5 之后提供的功能、将基本数据类型自动转换为包装类型
  • Jdk 与 Jre 的 区别

    • Jdk 是 Java 开发工具、包含了Jre 和 开发工具包
    • JRE 是 Java 运行时环境
  • == 和 equals 的区别是什么?

    • == 比较引用地址是否相同
    • equals 比较值是否相同
  • 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

    • 不对、hashCode 相同值、不一定相同, 但是值相同、hashCode 一定相同
  • java%20%E4%B8%AD%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F">final 在 java 中有什么作用?

    • 变量被final 修饰表示他是一个常量、只能被初始化赋值一次、被final修饰的类是无法被继承的
  • java%C2%A0%E4%B8%AD%E7%9A%84%20Math.round(-1.5)%20%E7%AD%89%E4%BA%8E%E5%A4%9A%E5%B0%91%EF%BC%9F">JAVA 中的 Math.round(-1.5) 等于多少?

  • String 属于基础的数据类型吗?

    • 不属于、String 是被final 修饰的包装类型
  • java%C2%A0%E4%B8%AD%E6%93%8D%E4%BD%9C%E5%AD%97%E7%AC%A6%E4%B8%B2%E9%83%BD%E6%9C%89%E5%93%AA%E4%BA%9B%E7%B1%BB%EF%BC%9F%E5%AE%83%E4%BB%AC%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F">java 中操作字符串都有哪些类?它们之间有什么区别?(String、StringBuilder、StringBuffer)
    • 拓展性 :  String 不支持 ( 每次重新赋值、都是重新创建一个对象、将对象引用切换)、StringBuilder、StringBuffer 支持
    • 安全性: String、StringBuilder 非线程安全的、StringBuffer 是线程安全的通过方法上加synchronized 内置锁实现线程安全
  • String str="i"与 String str=new String("i")一样吗

    • 不一样、第一种如果 i 被多次定义的话、会引用同一块内存地址(堆中的运行时常量池)
    • new String() 是重新在堆中创建一个对象
  • 如何将字符串反转?

    • StringBuffer 和 StringBuilder 的 reverse
  • 抽象类必须要有抽象方法吗?

    • 不是
  • 普通类和抽象类有哪些区别?

    • 抽象类是被abstract修饰的、被继承必须重写抽象方法
  • 抽象类能使用 final 修饰吗?

    • 不能、被final修饰的类不能被继承
  • 接口和抽象类有什么区别?

    • 接口是一种特殊的抽象类、内部方法 除了Jdk1.8 之后的 default 修饰的方法外、都需要被实现
    • 接口是 implement 实现、抽象类是 extend 继承
  • java%C2%A0%E4%B8%AD%20IO%20%E6%B5%81%E5%88%86%E4%B8%BA%E5%87%A0%E7%A7%8D%EF%BC%9F">java 中 IO 流分为几种?

    • 传输内容划分: 字符流、字节流
    • 传输方式分为: 阻塞、非阻塞
  • BIO、NIO、AIO 有什么区别?

    • BIO: 阻塞IO、同步阻塞、必须等待结果返回、不会释放线程
    • NIO: 非阻塞IO、Java 中 通过一个Select 监听结果是否返回、不需要线程一直等待结果返回、只需要一个Select 轮训、
    • AIO: 异步IO 、异步、当结果返回时、又系统自动触发通知
  • 重写和重载的区别

    • 重写: 子类对父类方法的一种拓展、方法名、参数、返回值必须相同
    • 重载: 对本类方法的一种增强、只需要方法名相同、参数类型、个数、返回值类型都可以不同
  • 什么是多态

    • 面向对象语言的一种特性、一个方法被不同类做出响应

        



http://www.ppmy.cn/devtools/38670.html

相关文章

Docker与Harbor:构建企业级私有Docker镜像仓库

目录 引言 一、本地私有仓库 (一)基本概述 (二)搭建本地私有仓库 1.下载registry镜像 2.启动容器 3.上传本地镜像 4.客户端下载镜像 二、Harbor简介 (一)什么是 Harbor (二&#xff…

Redis-1 缓存穿透、缓存击穿、缓存雪崩

缓存穿透 一.数据查询的流程 程序根据请求查询数据时,会先到redis中查询,如果redis中查到了目标数据,则直接返回;如果redis中没有目标数据,则到mysql中查找,找到目标数据后返回,同时将该数据写…

微型显示器可以实时监测大脑活动

美国团队开发基于LED的设备,以可视化大脑活动,在脑外科手术中指导神经外科医生 来自加州大学圣地亚哥分校和马萨诸塞州总医院的工程师和医生开发了一种薄膜显示设备,该设备结合了电极网格和特殊的GaN LED,可以在手术过程中实时跟…

MySQL: Buffer Pool概念整理

一. 简介 MySQL中的Buffer Pool是InnoDB存储引擎用来缓存表数据和索引的内存区域。这是InnoDB性能优化中最关键的部分之一。通过在内存中缓存这些数据,InnoDB可以极大减少对磁盘I/O的需求,因为从内存中读取数据远比从磁盘读取要快得多。因此&#xff0c…

NSSCTF Web方向的例题和相关知识点(一)

[SWPUCTF 2021 新生赛]jicao 解题: 打开环境,是一段php代码 包含了flag.php文件,设定了一个POST请求的id和GET请求的json 语句会对GET请求的数据进行json解码 如果id和json变量的值都等于设定字符串,则得到 flag 我们可以使用…

MATLAB 代数

MATLAB 代数 到目前为止,我们已经看到所有示例都可以在MATLAB及其GNU(也称为Octave)中运行。但是,为了求解基本的代数方程,MATLAB和Octave几乎没有什么不同,因此我们将尝试在单独的部分中介绍MATLAB和Octa…

一款开源高性能AI应用框架

前言 LobeChat 是一个基于 Next.js 框架构建的 AI 会话应用,旨在提供一个 AI 生产力平台,使用户能够与 AI 进行自然语言交互。 LobeChat应用架构 LobeChat 的整体架构由前端、EdgeRuntime API、Agents 市场、插件市场和独立插件组成。这些组件相互协作&a…

[1726]java试飞任务规划管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java试飞任务规划管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql…