每日面经03

1.String一些方法?

答:length()方法是获取字符串长度,charAt(int index)是返回指定索引的字符,equals(Object anther)比较两个字符串的内容是否完全相同,compareTo(String s)按照字典顺序比较两个字符串,相等是0,小于为负数,否者是正数。contains(CharSequence s)检查字符串中是否包含某个字符,replace(CharSequence s,CharSequence sb)用新的字符替换旧的字符,substring(int begin,int end)截取字符,获取新的字符。

2.抽象类和接口有什么区别?

答:抽象类主要是规定了所继承的它的子类必须要实现具体的方法,但是不涉及该方法的具体实现。而接口通常是涉及了到了方法的具体实现。一个类可以实现多个接口,但是只能继承一个抽象类,抽象类可以包含各种类型的成员变量,但是接口只能包含常量,不能有变量,在抽象类中可以有多种访问修饰符,比如说private、protected或public,而接口中的方法和变量默认都是public。直到jdk8引入了private方法,但是场景有限。

3.Java容器有哪些?

答:Java容器主要是指Java集合框架中的类和接口,它们主要用于存储对象的集合。主要是分成四个部分,列表(List),集合(Set),队列(Queue),映射(Map)。每个部分都有他们的具体实现。首先是列表List:特点是有序(存取顺序),有索引,可以包含重复元素。主要的实现类是ArrayList:基于动态数组的实现,因为有索引所以可以快速的进行随机访问和高效的遍历。LinkedList是基于双向链表实现的,因为每个元素节点包含三部分,数据部分和两个指针,所以在执行新增或者是删除的时候只需要修改元素的前后两个指针即可时间复杂度是O(1)。Vector(迭代器):和ArrayList相似,但是他是同步的,用于多线程环境,其内部通过在关键的方法上使用synchronized关键字来实现线程安全。然后,是集合Set:其特点是无序的,元素不可重复的,无索引,其实现类有HashSet:基于哈希表实现的,提供高效的遍历,但是不保证存取元素的顺序,LinkedHashSet基于哈希表和链表的实现,维护了元素的插入顺序。底层的数据结构依然是哈希表,只是每个元素又额外的多了一个链表的机制记录存储的顺序。最后的话是TreeSet:基于红黑树实现,元素按照自然排序或者自定义比较器去排序。自然排序的话基本数据类型是从小到大的顺序,字符串是按照字符在ASCLL码表中的数字升序进行排序,自定义规则的话是实现重写compareTo接口进行自定义。

然后就是队列(Queue),按照指定顺序处理元素的集合,主要的实现类包括LinkedList、PriorityQueue等,LinkedList:基于优先级堆实现,元素按照自然顺序或者自定义的比较器进行排序。最后是映射(Map)存储键值对的对象,主要实现类包括HashMap、LinkedHashMap,TreeMap和Hashtable。HashMap:基于哈希表的Map接口实现,不保证顺序。LinkedHashMap:基于哈希表和链表实现,保持了键值对的插入顺序,TreeMap:基于红黑数实现,按照键的自然排序或自定义排序。HashTable和HashMao类似但是他是同步的。

4.创建线程的方式?

在Java中一共有四种常见的创建线程的方式,第一种是继承Thread类,需要创建一个继承Thread类的子类,并且在子类中重写run()方法定义线程执行的操作,然后创建该子类的实例并且调用其start()方法来启动线程。

class MyThread extends Thread {
    public void run() {
        System.out.println("Thread running by extending Thread class.");
    }
}

// 使用示例
public class ThreadExample {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start();
    }
}

第二种是实现runnable接口的run方法,然后将Runnanle实例传递给Thread类的构造器,并且通过Thread对象的start()方法启动线程,

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode使用remote-ssh免密连接服务器

你还在使用XShell、Hyper、FinalShell等等SSH客户端软件吗,作为前端的我们,一直在用的功能强大的开发工具vscode,早已实现SSH连接功能(借助官方提供的插件)。而且更加好用,可以直接打开服务器上的文件&…

如何在Linux使用docker安装Plik并实现无公网ip上传下载内网存储的文件资源

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&…

内网穿透的应用-如何在Linux系统Docker安装JSON Crack并实现远程访问本地数据

文章目录 1. 在Linux上使用Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 JSON Crack 是一款免费的开源数据可视化应用程序,能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互…

javaEE5(javascript/jquery附加作业(选做))

在网页结尾嵌入一段javascript/jquery代码,作用:将网页中所有粗体字(strong标签包裹的文字)以链接方式提取出来作为提纲,放到页面右上角,点击它,文章定位到相应位置(附件两个文件可作…

LoadBalancer负载均衡服务调用

LoadBalancer负载均衡服务调用 1、Ribbon目前也进入维护 ​ Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。 ​ 简单的说,Ribbon是Netflix发布的开源项目,主要功能是**提供客户端的软件负载均衡算法和服务调用。**Ribbon…

Python安装第三方库

前言:大部分时候我们都是使用pip install去安装一些第三方库,但是偶尔也会有部分库无法安装(最典型的就是dlib这个库),需要采取别的方法解决,这里做笔记记录一下。 使用国内镜像源安装 因为pypi的服务器在…

集群软件部署

目录 软件部署集群软件前置环境网络配置ssh配置 JDK环境防火墙和SELinux制作快照 scp(ssh cp)ZooKeeper介绍安装 Hadoop介绍Hadoop集群角色角色和节点分配安装内存调整Hadoop集群安装 报错分析结果 Spark介绍下载安装 软件部署 包含zookeeper、Hadoop、spark的安装…

【Redis】redis持久化

redis 持久化 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之…

nginx的使用,homebrew安装及使用nginx。

Nginx 是一个高性能的 HTTP 和反向代理服务器,它提供了诸如 IMAP、POP3 和 SMTP 等邮件代理服务。以下是 Nginx 的主要作用:12345 作为 Web 服务器。Nginx 能够以较少的系统资源提供高效率的服务,尤其在高并发连接下表现出色。1…

【java数据结构】HashMap和HashSet

目录 一.认识哈希表: 1.1什么是哈希表? 1.2哈希表的表示: 1.3常见哈希函数: 二.认识HashMap和HashSet: 2.1关于Map.Entry的说明:,> 2.2Map常用方法说明: 2.3HashMap的使用案例: 2.4Set常见方法…

图机器学习(1)--导论

0 引入 斯坦福大学CS224W图机器学习公开课-同济子豪兄中文精讲:https://github.com/TommyZihao/zihao_course/tree/main/CS224W 为什么是图?图是描述关联数据的通用语言。 前期的研究:节点之间独立同分布,没有关系。 图&#x…

解决input事件监听拼音输入法导致高频事件

1、业务场景 在文本框中输入内容,执行查询接口,但遇到一个问题,当用拼音打字写汉字去搜索的时候,会输入一些字母拼成汉字,怎么能监听等拼音文字输入完成后再触发文本框监听事件 2、解决方案 通过查阅资料得知在输入中…

【C++ Primer Plus学习记录】简单文件输入/输出

有时候,通过键盘输入并非最好的选择。例如,假设您编写了一个股票分析程序,并下载了一个文件,其中包含1000种股票的价格。在这种情况下,让程序直接读取文件,而不是手工输入文件中所有的值,将方便…

2024大广赛Canva可画都有哪些命题?

大广赛官网在3月8日发布了2024年Canva可画的命题,Canva可画是全球领先的视觉传播平台,2013年诞生于悉尼,2018年进入中国市场。秉承“赋予世界设计的力量”的使命,Canva可画为用户提供零门槛的设计编辑工具(网页端/App/小程序)&…

矢量图片转换软件Vector Magic mac中文版功能特色

Vector Magic mac中文版是一款非常流行的矢量图片转换软件,它的功能特色主要体现在以下几个方面: 首先,Vector Magic mac中文版拥有出色的矢量转换能力。它采用世界上最好的全彩色自动描摹器,能够将JPG、PNG、BMP和GIF等位图图像…

【C语言程序设计】C语言求圆周率π(三种方法)

题目一&#xff1a; 利用公式①计求π的近似值&#xff0c;要求累加到最后一项小于10^(-6)为止。 程序代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){float s1;float pi0;float i1.0;float n1.0;while(fabs(i)&…

利用ffmpeg对两个音频文件进行混音处理

前言 最近&#xff0c;拿到了一个语音识别程序&#xff0c;想测试一下它识别的准确性。原本程序有一段自己的测试音频&#xff0c;准确性还可以&#xff0c;但是&#xff0c;自己想增加一下测试素材的复杂性。想到了在原本的测试音频中引入干扰数据&#xff08;噪点&#xff…

Policy Gradient Methods

Policy Gradient Methods 是一类直接对策略本身进行参数化并优化的强化学习算法。与基于值函数的方法&#xff08;如 Q-Learning 和其变种 DQN&#xff09;不同&#xff0c;策略梯度方法直接学习一个参数化策略&#xff0c;该策略指定了在给定状态下选择每个动作的概率。这些方…

沙发3d模型制作过程---模大狮模型网

制作沙发的3D模型通常需要经历以下步骤&#xff1a; 概念设计&#xff1a; 首先&#xff0c;根据设计师或客户的需求&#xff0c;进行概念设计。这包括通过手绘草图或数字绘图软件创建初始设计概念。 建模&#xff1a; 使用专业的3D建模软件(例如Blender、Maya、3ds Max)进行建…

jeecgboot 开放页面权限,免登录访问

前端需要配置路由和添加白名单 1、配置路由 2、 在permission.js里&#xff0c;把刚才的路由添加到白名单 3、 后端需要把该页面涉及到的接口排除权限拦截 比如我这个页面涉及到两个接口&#xff1a; 那么就在后端的excludeUrls把这两个接口加进去。 前端后端都设置好了&…