当前位置: 首页 > news >正文

java基础面试题 第四天

一、java基础面试题 第四天

1. String 为什么不可变?

**不可变对象:**不可变对象在java中就是被final修饰的类就称为不可变对象,具体含义是,不可变对象一但被赋值以后,他的引用地址就不能被修改(它的属性的值可以被修改)

不可变原因

线程安全。同一个字符串实例可以被多个线程共享,因为字符串不可变,本身就是线程安全的。

支持hash映射和缓存。因为String的hash值经常会使用到,比如作为 Map 的键,不可变的特性使得 hash 值也不会变,不需要重新计算。

出于安全考虑。网络地址URL、文件路径path、密码通常情况下都是以String类型保存,假若String不是固定不变的,将会引起各种安全隐患。比如将密码用String的类型保存,那么它将一直留在内存中,直到垃圾收集器把它清除。假如String类不是固定不变的,那么这个密码可能会被改变,导致出现安全隐患。

字符串常量池优化。String对象创建之后,会缓存到字符串常量池中,下次需要创建同样的对象时,可以直接返回缓存的引用

2.为何JDK9要将String的底层实现由char[]改成byte[]?

这样能节省内存

在java的存放堆内存中,存放最多的就是字符串,大部分的字符串编码类型为拉丁字符,拉丁字符只占1个字节

在Java中char类型占两个字节,这样就极大的浪费Java中堆内存,所以JDK9将String的底层实现由char[]改成byte[]

3.String, StringBuffer 和 StringBuilder区别

  • String类是不可变字符串,他是不可以进行修改的,而

    StringBuffer和StringBuilder为可变字符串

  • StringBuffer实在1.5之前出的,StringBuilder实在1.5之后出的,StringBuffer 和StringBuilder 区别在于,StringBuffer方法都加同步锁,所以在单线程情况下,StringBuilder效率要比StringBuffer 效率要高

4.什么是StringJoiner?

StringJoiner是Java 8新增的一个API,他是基于StringBuilder实现,用于实现对字符串之间通过分隔符拼接的场景。

StringJoiner sj = new StringJoiner("间隔符号");
//创建一个StringJoiner对象,指定拼接时的间隔符号
间隔符号为:“---”
1---2---3StringJoiner sj = new StringJoiner("间隔符号","开始符号","结束符号");
//创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号
间隔符号为:“---”  开始符号:“[”  结束符号:“]”
[1---2---3]

5.String 类的常用方法有哪些?

  • indexOf():返回指定字符的索引。
  • charAt():返回指定索引处的字符。
  • replace():字符串替换。
  • trim():去除字符串两端空白。
  • split():分割字符串,返回一个分割后的字符串数组。
  • getBytes():返回字符串的 byte 类型数组。
  • length():返回字符串长度。
  • toLowerCase():将字符串转成小写字母。
  • toUpperCase():将字符串转成大写字符。
  • substring():截取字符串。
  • equals():字符串比较。

6.new String(“dabin”)会创建几个对象?

会创建两个对象

"dabin"会在字符运行常量中生产一份

在堆中生成一份字符串对象

7.什么是字符串常量池?

字符串常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = "java"这种申明方式;当然也可扩充,执行器产生的常量也会放入常量池,故认为常量池是JVM的一块特殊的内存空间。

相关文章:

java基础面试题 第四天

一、java基础面试题 第四天 1. String 为什么不可变? **不可变对象:**不可变对象在java中就是被final修饰的类就称为不可变对象,具体含义是,不可变对象一但被赋值以后,他的引用地址就不能被修改(它的属性…...

postgresql-常用日期函数

postgresql-常用日期函数 简介计算时间间隔获取时间中的信息截断日期/时间创建日期/时间获取系统时间时区转换 简介 PostgreSQL 提供了以下日期和时间运算的算术运算符。 获取当前系统时间 select current_date,current_time,current_timestamp ;-- 当前系统时间一周后的日…...

【业务场景】用户连点

处理用户连点 1.时间戳处理 思路:通过检查当前时间和上一次触发事件的时间之间的间隔,判断是否允许继续执行。 代码如下: // clickThrottle.js /* 防止重复点击 */ let clickTimer 0function clickThrottle(interval 3000) {let now n…...

zabbix企业微信告警

目前,企业微信使用要设置可信域名 华为云搜索云函数 创建函数 选择http函数,随便输入函数名字 回到函数列表,选择刚创建的函数,创建触发器,安全模式选择none 点击右上角管理 选刚创建的api,右边操作点…...

(高频面试1)Redis缓存穿透、缓存击穿、缓存雪崩

目录 一:缓存数据 1.1 应用场景 1.2:缓存数据出现的问题 1.2.1 缓存穿透 1.2.2 解决办法 1.2.3 缓存击穿 1.2.4 解决办法 1.2.5 缓存雪崩 1.2.6 解决办法 一:缓存数据 1.1 应用场景 数据库查询结果缓存是一种常见的缓存应用场景&a…...

c++推箱子小游戏

上代码: #include <stdio.h> #include <stdlib.h> #include <conio.h>int map[2][7][8] {//0:空的 1:■ :墙//3&#xff1a;☆ 4&#xff1a;★ //目的地和箱子//5&#xff1a;※ //人//7:⊙ //目的(3)和箱子(4)在一起//8&#xff1a;※ //人(5…...

SpringMVC:从入门到精通

一、SpringMVC是什么 SpringMVC是Spring提供的一个强大而灵活的web框架&#xff0c;借助于注解&#xff0c;Spring MVC提供了几乎是POJO的开发模式【POJO是指简单Java对象&#xff08;Plain Old Java Objects、pure old java object 或者 plain ordinary java object&#xff0…...

jmeter 数据库连接配置 JDBC Connection Configuration

jmeter 从数据库获取变量信息 官方文档参考&#xff1a; [jmeter安装路径]/printable_docs/usermanual/component_reference.html#JDBC_Connection_Configuration 引入数据库连接&#xff1a; 将MySQLjar包存放至jemter指定目录&#xff08;/apache-jmeter-3.3/lib&#xff09…...

TVC广告片制作成本多少

电视是广告传播的主要媒介之一&#xff0c;具有广泛的受众群体和较高的覆盖率。通过在电视上播放广告片&#xff0c;企业可以将产品或者服务的信息传达给大量潜在客户&#xff0c;提高知名度和曝光度。接下来由深圳TVC广告片制作公司老友记小编从以下几个方面浅析制作一条TVC广…...

【Express.js】代码规范

代码规范 编程规范&#xff0c;对于一个优秀的项目是不可或缺的&#xff0c;有了良好的代码规范&#xff0c;有益于项目的维护与拓展。 命名规范 命名的第一要义是明了&#xff0c;要让阅读者看到命名就能大概猜测出其意义或用处。 以用户身份&#xff08;userRole&#xff…...

Vue2+Vue3基础入门到实战项目(前接六 副线一)—— 面经 项目

day1 接口文档地址&#xff1a;https://www.apifox.cn/apidoc/project-934563/api-20384515 一、项目功能演示 1.目标 启动准备好的代码&#xff0c;演示移动端面经内容&#xff0c;明确功能模块 2.项目收获 二、项目创建目录初始化 vue-cli 建项目 1.安装脚手架 (已安装…...

QT tcpserver

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 服务端有QTcpServer库&#xff0c;封装了监听操作server new QTcpServer();// 直接监听&#xff0c;内部根…...

Android adb shell svc 知识详解

adb shell svc 详解 文章目录 adb shell svc 详解一、svc 常用命令&#xff1a; 二、svc 命令和使用示例&#xff1a;查看系统是否安装了svc1、svc2、svc help3、svc power svc wifi has been migrated to WifiShellCommand,simply perform translation to cmd wifi set-wifi-e…...

Debian12系统下LAMP环境中Nubuilder4.5的安装

一、环境搭建 按照官方的说法&#xff0c;Apache2和Nginx都可以的&#xff0c;实际上&#xff0c;你最好直接按照 Mariadb\Apache2\Php8.2 这个顺序&#xff0c;搭建LAMP环境较好。不然各种调试&#xff0c;还不一定能够成功。 相关搭建方法&#xff0c;属于一般操作&#xf…...

百度超级链BaaS服务平台调研

目录 一、菜单功能1.1、在线版1.2、服务版 二、其他说明2.1、服务平台的部署方式2.2、混合部署 百度超级链XuperChain管理平台文档地址&#xff1a;https://xuper.baidu.com/n/doc#/c8737c7b/1_0_0/c8737c7b 一、菜单功能 1.1、在线版 在线版功能稍多。 菜单子菜单/功能点子…...

计算机网络之TCP/IP协议第二篇:OSI参考模型详解

文章目录 写给自己的话 一:协议分层与OSI参考模型 二:通过对话理解分层 三:OSI参考模型...

Linux内核分析与应用2-内存寻址

本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好&#xff0c;推荐观看 留此记录&#xff0c;蜻蜓点水,可作抛砖引玉 2.1 内存寻址 数据连续存储和选择读取思想,是目前我们使用的几乎所有机器运行背后的灵魂 计算机体系结构中的核心问题之一,就是如…...

苍穹外卖 day12 Echats 营业台数据可视化整合

苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现&#xff1a;工作台、数据导出 工作台效果图&#xff1a; 数据导出效果图&#xff1a; 在数据统计页面点击数据导出&#xff1a;生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系…...

代码随想录算法训练营day45|70. 爬楼梯(进阶版)|322. 零钱兑换|279.完全平方数

70. 爬楼梯(进阶版) 一步一个台阶&#xff0c;两个台阶&#xff0c;三个台阶&#xff0c;…&#xff0c;直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢&#xff1f; 1阶&#xff0c;2阶&#xff0c;… m阶就是物品&#xff0c;楼顶就是背包。 每一阶可以重复使用&#…...

数据结构和算法(3):列表

列表是一种线性数据结构&#xff0c;它允许在其中存储多个元素&#xff0c;并且可以动态地添加或删除元素。 循秩访问 可通过重载下标操作符&#xff0c;实现寻秩访问 template <typename T> // assert: 0 < r < size T List<T>::operator[](Rank r) cons…...

妙趣AI:开源Agent工具链与AI导航平台的工程实践

1. 妙趣AI&#xff1a;一个AI工具导航与开源Agent生态的实践如果你和我一样&#xff0c;每天被各种新冒出来的AI工具、模型和概念搞得眼花缭乱&#xff0c;同时又对“AI Agent”这个听起来很酷但落地很虚的东西充满好奇&#xff0c;那么“妙趣AI”这个项目可能正是你需要的。它…...

Roast:颠覆AI助手模式,打造苏格拉底式思维拷问引擎

1. 项目概述&#xff1a;当AI开始“拷问”你如果你用过市面上那些主流的AI助手&#xff0c;不管是ChatGPT、Claude还是DeepSeek&#xff0c;你大概率有过这样的体验&#xff1a;你抛出一个想法&#xff0c;它总能给你一堆“哇&#xff0c;这个想法太棒了&#xff01;”、“很有…...

2026届学术党必备的六大降重复率平台推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 令AI精确执行任务的基础&#xff0c;是下达精准的指令&#xff0c;此即降AI指令。降AI指令专…...

数字永生:将意识上传云端的技术与伦理极限

——一个软件测试从业者的技术解构与风险分析各位同行&#xff0c;当你看到“数字永生”这四个字时&#xff0c;脑海里浮现的是什么&#xff1f;是马斯克口中2045年即将实现的意识上传&#xff0c;还是《黑镜》里那些被困在虚拟牢笼中的数字灵魂&#xff1f;作为一个每天与需求…...

如何永久保存微信聊天记录:5分钟学会WeChatMsg免费完整指南

如何永久保存微信聊天记录&#xff1a;5分钟学会WeChatMsg免费完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/…...

打破高频、高速四种材料混压

打破高频、高速四种材料混压&#xff0c;铸就PCB行业硬核实力。在航空航天领域&#xff0c;每一次技术的突破都意味着对材料与工艺的极致追求。今天&#xff0c;我们要聊的这款产品&#xff0c;堪称多材料混压天花板&#xff0c;——16层、四种材料混压、三次压合、板厚5.0mm、…...

2026年医疗卫生/护理求职AI工具横评:白衣天使的求职神器大比拼

导语 2026年&#xff0c;医疗卫生行业依然是最具社会价值和就业稳定性的行业之一。随着中国老龄化加速&#xff0c;医护人员需求持续扩大&#xff0c;仅公立医院护士岗位需求量就突破200万。然而&#xff0c;医护求职并不轻松&#xff1a;编制紧张、规培政策复杂、职称考试压力…...

Windows平台即时通讯消息保留技术深度解析:RevokeMsgPatcher企业级解决方案完全手册

Windows平台即时通讯消息保留技术深度解析&#xff1a;RevokeMsgPatcher企业级解决方案完全手册 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; …...

RT-Thread Sensor框架实战:5分钟搞定INA226电流电压功率监测(含I2C避坑指南)

RT-Thread Sensor框架实战&#xff1a;5分钟搞定INA226电流电压功率监测&#xff08;含I2C避坑指南&#xff09; 在嵌入式系统开发中&#xff0c;精准监测电流、电压和功率是许多应用场景的核心需求&#xff0c;无论是电池管理系统、智能硬件功耗分析&#xff0c;还是工业设备状…...

VS2019/2022插件安装指南:让CppCheck帮你揪出C++代码里那些编译器发现不了的‘幽灵Bug’

VS2019/2022插件安装指南&#xff1a;让CppCheck帮你揪出C代码里那些编译器发现不了的‘幽灵Bug’ 在C开发中&#xff0c;编译器能捕捉语法错误&#xff0c;但那些潜伏在逻辑深处的"幽灵Bug"——内存泄漏、未初始化变量、数组越界——往往要等到运行时才暴露。CppCh…...