【Java八股文总结】之类

news2025/7/15 1:19:59

文章目录

      • Q:一个Java文件中可以有多个类么(不含内部类)?
      • 一、Object类
        • 1、Object类的常见方法有哪些?
        • 2、== 和 equals() 的区别
        • 3、HashCode()的作用?
        • 4、为什么要有hashCode?
        • 5、为什么重写equals()时必须重写hashCode()方法?
      • 二、String类
        • 1、String、StringBuffer、StringBuilder的区别?
        • 2、String为什么是不可变的?
        • 3、字符串拼接用“+”还是StringBuilder?
        • 4、String#equals() 和 Object#equals() 有何区别?
        • 5、字符串常量池
        • 6、intern方法有什么作用?
        • 7、String类型的变量和常量做“+”运算时发生了什么?
      • 三、实用类
        • 1、枚举
          • Q:为什么要有枚举?
        • 2、Math
        • 3、random
        • 4、日期类
          • 1、java.util.Date
          • 2、java.util.Calendar

Q:一个Java文件中可以有多个类么(不含内部类)?

答:可以,一个Java文件中可以有多个类,但是最多只能有一个被public修饰的类;此外,如果一个Java文件中包含public修饰的类,则这个类的类名必须和Java文件名保持一致。

一、Object类

1、Object类的常见方法有哪些?

在这里插入图片描述
在这里插入图片描述

2、== 和 equals() 的区别

在这里插入图片描述
在这里插入图片描述

3、HashCode()的作用?

在这里插入图片描述

4、为什么要有hashCode?

在这里插入图片描述

5、为什么重写equals()时必须重写hashCode()方法?

在这里插入图片描述

二、String类

1、String、StringBuffer、StringBuilder的区别?

在这里插入图片描述
在这里插入图片描述

2、String为什么是不可变的?

在这里插入图片描述

3、字符串拼接用“+”还是StringBuilder?

建议使用StringBuilder,因为使用“+”实际上还是调用StringBuilder来拼接字符串的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、String#equals() 和 Object#equals() 有何区别?

在这里插入图片描述

5、字符串常量池

字符串常量池 是JVM为了提升性能和减少内存消耗针对字符串(String类)专门开辟的一块区域。主要目的是为了避免字符串的重复创建。
String s1 = new String(“abc”);这句话创建了几个字符串对象?
创建1个或2个字符串对象 。(如果字符串常量池中不存在,则创建两个;反之,如果字符串常量池中存在,则创建一个)

6、intern方法有什么作用?

String.intern()是—个native(本地)方法,其作用是将指定的字符串对象的引用保存在字符串常量池中。可以简单分为两种情况:

  • 如果字符串常量池中保存了对应的字符串对象的引用,就直接返回该引用。
  • 如果字符串常量池中没有保存了对应的字符串对象的引用,那就在常量池中创建一个指向该字符串对象的引用并返回。
    在这里插入图片描述

7、String类型的变量和常量做“+”运算时发生了什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、实用类

1、枚举

枚举 Enum,是一种有确定值区间的数据类型,本质上就是一个类,具有简洁、安全、方便等特点。
枚举的值被约束到一个特定的范围内,只能从这个范围以内取值。

Q:为什么要有枚举?

因为描述某些对象的属性时,该属性的值不能随便定义,必须在某个特定的区间内取值,如星期、月份等。
出于对数据安全的考虑,类似这种有特定取值范围的数据我们就可以使用枚举来描述。
枚举指由一组常量组成的类型,指定一个取值区间,我们只能从区间中取值。

2、Math

在这里插入图片描述

3、random

用来产生随机数的类,并且可以任意指定一个区间,在此区间范围内产生一个随机数。
在这里插入图片描述

4、日期类

1、java.util.Date

Date表示当前的系统时间
SimpleDateFormat转换时间格式(“yyyy-MM-dd hh:mm:ss”)(M —— 月份,m —— 分钟,H —— 24小时制,h —— 12小时制)

2、java.util.Calendar

Calendar用来完成日期数据的逻辑运算
运算思路:(op + com + t)
①将日期数据传给Calendar (Calendar 提供了很多静态常量,专门用来记录日期数据)
在这里插入图片描述
②调用相关方法进行运算
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

古人的雅趣

学习古人雅趣,为今日生活增添情趣。 目录 曲水流觞 九月九日重阳节赏菊 中秋赏月 一、曲水流觞 中国古代汉族民间的一种传统习俗,后来发展成为文人墨客诗酒唱酬的一种雅事。 夏历的三月上巳日人们举行祓禊(fx)仪式之后&#xf…

单流 TCP 100Gbps+ 难题的直观解释

关于 400Gbps 场景的概括,参见:400Gbps 网络面临的挑战 首先定义规则: 画坐标系,横轴为到达时间,纵轴为服务(处理)时间。每到达一个任务在横轴对应时间画一条垂直线。每处理一个任务在纵轴对应时间画一条水平线。任务…

【Linux】文件操作/文件描述符/重定向原理/缓冲区

目录 一.文件的概念 1.什么是内存级文件? 2.什么是磁盘级文件? 3.文件IO的过程 4.linux下, 一切皆文件 二.文件操作(C语言接口) 1.语言级文件接口与系统级文件接口 1).什么是语言级别的文件接口? 2).为什么要有语言级别文件接口, 直接用系统接口不好吗? 3).系统级…

老系统如何重构之最全总结

目录 1. 重构的概念 1.1 重构的定义 1.2 重构的分类 2 为什么重构 3 如何重构 3.1 说服业务方 3.2 确定重构的目标 3.3 老系统的熟悉与梳理 3.4 数据库的重构 3.5 前后端的系统重构 3.6 数据迁移与检查 3.7 系统检查联调测试 3.8 系统切换 1. 重构的概念 1.1 重构…

DlhSoft Gantt Chart Hyper Library for HTML5 Standard Edition

DlhSoft Gantt Chart Hyper Library 甘特图超级库包括一组交互式计划组件,可用于使用纯 JavaScript、TypeScript 或 Angular、React 或 Vue 等框架构建的启用时间线的应用程序 基于 JavaScript 的甘特图 可定制的网格列、汇总的工作分解结构、带有可拖动条和依赖线…

静态HTML网页设计作品 DIV布局家乡介绍网页模板代码---(太原 10页带本地存储登录注册 js表单校验)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 家乡旅游景点 | 家乡民生变化 | 介绍自己的家乡 | 我的家乡 | 家乡主题 | HTML期末大学生网页设计作业 HTML:结构 CSS:样式 在…

基于ssm jsp超市在线销售平台的设计与实现

近年来,网络信息技术的迅猛发展,互联网逐渐渗透到人们日常生活中的方 方面面,而给我们的生活带来巨大变化的电子商务正在以前所未有的速度蓬勃发 展,电子商务也成为网络研究与应用的热点之一。网上商店是电子商务的重要方 面&…

【干货】教你在十分钟内编译一个Linux内核,并在虚拟机里运行!

前言 这篇文章将会简单的介绍如何在Linux系统上面,编译一个5.19的内核,然后在QEMU虚拟机中运行。 下载Linux内核源码 首先,我们需要下载Linux的代码: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.19.10.t…

使用vue互联QQ音乐完成网站音乐播放器

🎶 文章简介:使用vue互联QQ音乐完成网站音乐播放器 💡 创作目的:记录使用APlayer播放器MetingJs实现 在线播放qq音乐、网易云音…等平台的音乐 ☀️ 今日天气:2022-11-19 小雨多云 天空灰蒙蒙的 🥲 &#x…

还在付费使用 XShell?我选择这款超牛逼的 SSH 客户端,完全免费

分享过FinallShell这款SSH客户端,也是xiaoz目前常用的SSH客户端工具,FinalShell使用起来方便顺手,但令我不爽的是tab数量变多的时候FinalShell越来越卡,而且内存占用也比较高。 最近发现一款使用使用C语言开发的跨平台SSH客户端W…

【无人机】基于Matlab的四旋翼无人机控制仿真

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

uni-app —— 下拉刷新 上拉加载

文章目录 前言一、下拉刷新 1.开启下拉刷新2.监听下拉刷新3.关闭下拉刷新二、上拉加载总结一、下拉刷新 1. 开启下拉刷新 在uni-app中有两种方式开启下拉刷新 需要在 ​​pages.json ​​​ 里,找到的当前页面的pages节点,并在​​style​​​ 选项中开…

这次把怎么做好一个PPT讲清-总体篇

文章目录一、背景二、图表化、图示化三、关键词设计四、版式层级五、逻辑关系图**1)常用逻辑****2)如何让逻辑关系图好看**六、对齐、分组和对比**对齐****分组****分组就是将同类得信息放在一起,靠的更近一点**那么,实现分组原则…

基于S32K144实现TPS929120的基本控制功能

文章目录前言1.TPS92910简介2.硬件调试平台2.1 灯板原理图2.2 参考电流2.3 器件地址3.TPS929120通信协议3.1 物理层3.2 数据链路层3.3 传输层2.3.1 读写时序2.3.2 帧格式说明2.3.3 寄存器lock与unlock2.3.4 输出通道控制4.使用S32K144驱动TPS929104.1 实现命令帧格式4.1.1 写寄…

【云原生】玩转Kubernetes实战(一):Pod、ConfigMap的使用

本文主要是利用Kubernetes 集群搭建出一个 WordPress 网站,用了三个镜像:WordPress、MariaDB、Nginx。 下面是其简单的架构图,用于直观的展示这个系统的内部逻辑关系: 简单来说,就是要通过本地地址http://127.0.0.1…

Spring AOP[详解]

一.需求引入 在开发过程中,总会有一些功能与业务逻辑代码耦合度不强(例如保存日志,提交事务,权限验证,异常处理),我们可以将这些代码提取到一个工具类中,需要使用时在调用工具类来实现. ​ 但是这样也会有弊端,那就是我们的代码已经开发完毕,后期如果需要增加公共功能就需要更…

Pinpoint--基础--03--安装部署

Pinpoint–基础–03–安装部署 前提 使用hd用户登陆 完成基础环境搭建https://blog.csdn.net/zhou920786312/article/details/118212302代码位置 https://gitee.com/DanShenGuiZu/learnDemo/tree/master/pinpoint-learn/demo11、安装环境准备 1.1、jdk1.8 基础环境搭建 包含…

一文搞懂MySQL表字段类型长度的含义

不知道大家第一眼看标题的时候有没有理解,什么是“字段类型长度”,这里我来解释下,就比如我们在MySQL建表的时候,比如下面这个建表语句: CREATE TABLE user (id int(10) DEFAULT NULL,name varchar(50) DEFAULT NULL,…

linux系统离线安装docker(分步法一键法)

1 前言 在有的项目场景中,服务器是不允许连接外网的。此时若想在服务器上安装部署docker容器,就不能采用在线方式了,不过可以采取离线方式进行安装。下面我们就一起看看离线安装的两种办法。 一种是分步安装法,一种是一键安装法…

Python冷知识:如何找出新版本增加或删除了哪些标准库?

“内置电池”是 Python 最为显著的特性之一,它提供了 200 多个开箱即用的标准库。但是,历经了 30 多年的发展,很多标准库已经成为了不得不舍弃的历史包袱,因为它们正在“漏电”! 好消息是,Python 正在进行…