Java-面试题(2)

java 中操作字符串都有哪些类?

它们之间有什么区别? String、StringBuffer、StringBuilder String与后两者的区别:String声明的是不可变对象,每次操作都会生成新的String对象,而后两者可 以在原有对象的基础上进行操作,所以在需要经常改变字符串内容的情况下最好不要使用String,否则 会造成资源浪费。 StringBuffer与StringBuilder的区别:前者是线程安全的,后者是非线程安全的,但兜着的性能却高 于前者,所以在单线程环境下StringBuilder性能优于StringBuffer,在多线程环境下,StringBuffer安 全性高于StringBuilder。

(1)列举字符串操作方法 indexOf():返回指定字符的索引。 charAt():返回指定索引处的字符。 replace(char oldchar, char newchar):字符串替换。 trim():去除字符串两端空白。 split():定义一个分隔符分割字符串,若分隔符为子串,那么该字串去除 getBytes():返回字符串的 byte 类型数组。 length():返回字符串长度。 toLowerCase():将字符串转成小写字母。 toUpperCase():将字符串转成大写字符。 substring(int start, int end):截取字符串。 equals():字符串比较。 equalsIgnoreCase( ): 忽略字符串大小写的比较 concat(): 两个字符串相连 append(String s) 追加、 reverse()反转 、 delete(int start, int end)删除 、 insert(int offset, int i)插入 、 replace(int start, int end, String str) 替换、 charAt(int index) 索引值、 indexOf(String str) 值索 引、 length() 长度、 toString() 转字符串

(2)String str="i"与 String str=new String(“i”)一样吗? 不一样。前者定义的是一个不可变字符串,存入到常量池中,后者是一个对象,存入到堆内存中。

(3)java的存储机制 1. 堆:位于RAM,只存储创建出的对象,存储分配时间长,但分配灵活(分配空间、存活时间)。 2. 栈:位于RAM,只保存基础数据类型的值和对象引用。每个线程包含一个栈区,每个栈中的数据 都是私有的,共分为三个部分:基本类型变量区、执行环境上下文、操作指令区。 3. 方法区:与堆类似,包含所有的class和static变量(唯一性元素) 4. 常量池:用于保存在编译期已确定的,已编译的 .class 文件中的各种字面量(Literal)和符号引用 (Symbolic References);

抽象类必须要有抽象方法吗?

不是。但包含抽象方法的类一定是抽象类。 (1)抽象类与抽象方法 抽象方法必须被子类的方法所重写,否则其子类的该方法依然是抽象的,子类也必须是抽象的。如果一 个类中有抽象方法,那么该类必须用abstract修饰。抽象类不能被实例化。 (2)抽象类与接口 抽象类不能被实例化,只能被继承,不一定包含抽象方法,只能修饰为public或protected。子类必须 重写父类的抽象方法,否则也为抽象方法和抽象类。抽象类可以具有main方法并且可以运行。 接口支持多继承,一个类也可以实现多个接口。接口可以包含变量、方法,变量被隐式指定为 public static final,方法被隐式指定为public abstract 。接口不能有main方法 Add:接口方法默认是 public abstract 的,且实现该接口的类中对应的方法的可 见性不能小于接口方法的可见性 (3)抽象类与普通类 普通类不能包含抽象方法,可以被实例化 抽象类不能直接实例化。 (4)抽象类可以使用final修饰吗 不能,定义抽象类就是让其他类来继承的,final修饰为最终类就不可继承了。 (5)说一下你对面向对象的理解 面向对象具有三大基本特征,分别是:继承、封装、多态。(第四个特征是抽象) 继承:是面向对象实现代码复用的重要手段,Java通过extends作为关键字实现类的继承,实现继承的类被 称为子类,被继承的类称为父类(有的也被称为基类和超类),父类和子类的关系是一种一般和特殊的关 系。 封装:是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,让外部程序通过 该类提供的方法来实现对内部信息的操作和访问,这种做法有助于规范使用者的行为,让使用者只能通过 事先预定的方法访问数据,提高了代码的可维护性 。 多态:多态的实现离不开继承,在设计程序时,我们可以将参数的类型定义为父类型。在调用程序时,则可 以根据实际情况,传入该父类型的某个子类型的实例,这样就实现了多态。对于父类型,可以有三种形式,即 普通的类、抽象类、接口。对于子类型,则要根据它自身的特征,重写父类的某些方法,或实现抽象类/接口 的某些抽象方法。 (6)说一说重写与重载的区别 两者都是实现多态的方式,重写实现的是运行时的多态,而重载实现的是编译时的多态性。 重写:将父类中的方法在自身中重新写一遍,在方法名、参数列表、返回类型都相同的情况下,对方法 体进行重写。并且重写的方法的访问修饰符范围要大于被重写的方法。 重载:在方法名相同的情况下,参数列表不同,返回值类型也可不同,对方法进行重载。无法通过返回 类型不同来判断是否重载。

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

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

相关文章

市场监管总局发布区块链和分布式记账技术6项标准,中创积极推动区块链产业发展!

近日,市场监管总局(国家标准委)批准发布一批重要国家标准,涉及生产生活、绿色可持续等多个领域,这些标准将在引领产业发展、促进绿色转型、助力对外贸易、推动城乡建设、提升生活品质等方面发挥重要作用。 其中一项标…

02-编程猜谜游戏

本章通过演示如何在实际程序中使用 Rust,你将了解 let 、 match 、方法、关联函数、外部crate等基础知识。 本章将实现一个经典的初学者编程问题:猜谜游戏。 工作原理如下:程序将随机生成一个介于 1 和 100 之间的整数。然后,程序…

C# Cad2016二次开发选择csv导入信息(七)

//选择csv导入信息 [CommandMethod("setdata")] //本程序在AutoCAD的快捷命令是"DLLLOAD" public void setdata() {Microsoft.Win32.OpenFileDialog dlg new Microsoft.Win32.OpenFileDialog();dlg.DefaultExt ".csv";// Display OpenFileDial…

DNS寻址过程

用一张图详细的描述DNS寻址的过程,是高级前端进阶的网络篇: 主要是第三步要记仔细就行啦,每一步都要详细的记录下来,总结的脉络如下: 本地DNS缓存本地DNS服务器根域名服务器 顶级域名服务器再次顶级域名服务器权威域名…

YOLOv5改进 | 主干篇 | 华为移动端模型GhostnetV2一种移动端的专用特征提取网络

一、本文介绍 本文给大家带来的改进机制是华为移动端模型Ghostnetv2,华为GhostNetV2是为移动应用设计的轻量级卷积神经网络(CNN),旨在提供更快的推理速度,其引入了一种硬件友好的注意力机制,称为DFC注意力。这个注意力机制是基于全连接层构建的,它的设计目的是在通用硬…

Vue-21、Vue监测数组改变

1、数组调用以下方法Vue可以监测到。 arr.push(); 向数组的末尾追加元素 const array [1,2,3] const result array.push(4) // array [1,2,3,4] // result 4arr.pop(); 删除末尾的元素 const array [a, b] array.pop() // b array.pop() // a array.pop() // undefi…

Elasticsearch各种高级文档操作3

本文来记录几种Elasticsearch的文档操作 文章目录 初始化文档数据聚合查询文档概述对某个字段取最大值 max 示例对某个字段取最小值 min 示例对某个字段求和 sum 示例对某个字段取平均值 avg 示例对某个字段的值进行去重之后再取总数 示例 本文小结 初始化文档数据 在进行各种文…

代码随想录Day25 | 216.组合总和III 17.电话号码的字母组合

代码随想录Day25 | 216.组合总和III 17.电话号码的字母组合 216.组合总和III[ 17.电话号码的字母组合 ](https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/) 216.组合总和III 文档讲解:代码随想录 视频讲解: 和组合问题…

flutter获取地理定位:geolocator依赖详细用法

本文使用geolocator插件实现app物理定位功能。 该插件的主要功能有: 获取最后已知位置;获取设备当前位置;获取连续的位置更新;检查设备是否启用了定位服务;计算两个地理坐标之间的距离(米)&am…

AI时代—ChatGPT-4.5的正确打开方式

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…

java 操作es 的基本操作

创建索引创建索引别名索引的相关设置查询索引数据bulk 导入数据持续更新中~ pom的坐标 <!--es相关--><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><versio…

微信小程序(七)navigator点击效果

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.默认效果 2.无效果 3.激活效果 源码&#xff1a; index.wxml //如果 <navigator url"/pages/logs/logs">跳转到log页面&#xff08;默认&#xff09; </navigator><navigator url&q…

【LeetCode2744】最大字符串配对数目

1、题目描述 【题目链接】 标签&#xff1a;数组&#xff0c;哈希表&#xff0c;字符串&#xff0c;模拟  给你一个下标从 0 开始的数组 words &#xff0c;数组中包含 互不相同 的字符串。  如果字符串 words[i] 与字符串 words[j] 满足以下条件&#xff0c;我们称它们可以…

kafka hang 问题记录

参考文档 https://cloud.tencent.com/developer/article/1821477 9092端口 端口9092通常与Apache Kafka关联。 Kafka是一个开源的分布式事件流平台&#xff0c;用于构建实时的数据管道和流应用。 它能够处理任意大小的数据&#xff0c;以容错的方式处理数据流。 在默认配置…

C# HPSocket 服务器端的详细 Demo,数据收发打包方式,避免出现沾包的情况

HPSocket 是一款跨平台的 Socket 服务器框架&#xff0c;支持快速开发高性能、高可靠性的网络通信应用程序。它提供了丰富的 API&#xff0c;可以轻松实现客户端与服务器之间的数据收发、连接管理等功能。 代码结构&#xff1a; 1、Program.cs&#xff1a;程序入口&#xff0c…

从零开始,自己搭建一个autonomous mobile robot做gazebo仿真(1):mobile robot建模与添加差速控制器

这样一个简单的mobile robot模型 首先写xacro文件&#xff0c;创建 link joint transmission <?xml version"1.0"?> <robot xmlns:xacro"http://www.ros.org/wiki/xacro" name"whill_modelc" ><xacro:property name"PI&q…

【点云、图像】学习中 常见的数学知识及其中的关系与python实操[更新中]

文章目录 前言一、平均值、方差、协方差平均值&#xff08;mean&#xff09;np.mean()方差&#xff08;variance&#xff09;np.var()总体方差 np.var(a, ddof0)无偏样本方差np.var(a, ddof1)有偏样本方差标准差&#xff08;standard deviation&#xff09;np.std(a, ddof1)默认…

Docker 部署考核

Docker安装 安装必要的系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 添加docker-ce安装源&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 配置阿里云Docker Yum源: yum-config-manager --ad…

docker 挂载的文件同步问题 及 telnet redis账号可用

在一台新的服务器上部署docker发现redis服务因白名单没配不通&#xff0c;可以通过telnet来进行测试&#xff0c;包括账号是否可用&#xff1a; 1 telnet 192.168.1.11 6379 # ip port 2 ctrl ] 3 回车 4 键入 auth 111111 # 密码 5 成功 OK 失败 -WRONGPASS invalid us…

UE学习笔记--如何区分FString、FName、FText,以及使用场景

目录 前言FStringFNameFTextFString、FName 和 Text 之间的区别可变性内存开销用例表现本地化支持 结论参考链接 前言 最近在学习 UE&#xff0c;发现 UE 基本没有用到 std::string&#xff0c;基本使用的是FString、FName、FText。去网络上查了些资料并且学习了下&#xff0c…