每日速记10道java面试题04

其他资料

每日速记10道java面试题01-CSDN博客

每日速记10道java面试题02-CSDN博客

每日速记10道java面试题03-CSDN博客

目录

一、什么是java的自动拆箱和装箱?

二、什么是java中的迭代器?

三、Java 运行时异常和编译时异常之间的区别是什么?

四、Java 中的访问修饰符有哪些?

五、Java 中静态方法和实例方法的区别是什么?

六、什么是 Java 中的双亲委派模型?

七、java中sleep和wait方法的区别?

八、什么是BIO、NIO、AIO?

九、什么是Channel?

十、什么是 Selector?


一、什么是java的自动拆箱和装箱?

自动装箱:将基本数据类型自动的转化为包装类型
自动拆箱:将包装类型自动转化为基本数据类型
减少了代码复杂度,减少了代码的编写常见于集合处理
算数运算。

二、什么是java中的迭代器?

迭代器就是java集合框架提供的一种用来遍历集合元素的接口,可以遍历和修改集合的元素(set,map)。
通过ltearator. hasNext()看是否有下一个元素。

通过ltearator. next()返回其元素。

三、Java 运行时异常和编译时异常之间的区别是什么?

编译时异常是指在编写程序时编译器检查出来的异常,需要显示的进行处理,try catch 进行捕获或者throw扔出。常见的编译异常,如FileNotFoundException,IOException等
运行时异常 ,是在程序运行时抛出的异常,需要在代码编写时处理好逻辑,减少运行时异常。常见的运行时异常如算数异常,空指针异常,数组下标越界异常等

四、Java 中的访问修饰符有哪些?

访问权限:用来控制类、方法、变量的访问级别,有4种:public、protected、default、private
public:访问权限最大,当前类、当前包、子类(不同包)、不同包,可以访问
protected:当前类、当前包、子类(不同包),可以访问
default:当前类、当前包,可以访问
private:当前类,可以访问

五、Java 中静态方法和实例方法的区别是什么?

静态方法:1.属于类 2.可以使用类名访问 3.不能访问实例变量和实例方法 4.场景:作为工具类的方法实例方法:1.属于对象 2.只能通过对象访问 3.可以访问静态变量和静态方法

六、什么是 Java 中的双亲委派模型?

双亲委派模型是 Java 类加载机制的设计模式之一。它的核心思想是:类加载器在加载某个类时,会先委派给父类加载器去加载,父类加载器无法加载时,才由当前类加载器自行加载。
工作流程:
当一个类加载器(如自定义类加载器)试图加载某个类时,先将加载请求向上委派给父类加载器,父类加载器再向上委派给它的父类,直到根类加载器(Bootstrap ClassLoader)。

在 JDK9 之前,Java 自身提供了 3种类加载器:
1.启动类加载器( Bootstrap classLoader ),它是属于虚拟机自身的一部分,用 C++实现的,主要负责加载<JAVA_HOME>\1ib 目录中或被xbootclasspath 指定的路径中的并且文件名是被虚拟机识别的文件。它是所有类加载器的爸爸。
2.扩展类加载器( Extension classloader),它是 Java 实现的,独立于虚拟机,主要负责加载<JAVA HOME>\lib\ext 目录中或被java.ext.dirs 系统变量所指定的路径的类库,
3.应用程序类加载器( Application classoader),它是Java 实现的,独立于虚拟机。主要负责加载用户类路径( classpath)上的类库,如果我们没有实现自定义的类加载器那这玩意就是我们程序中的默认加载器。
所以一般情况类加载会从应用程序类加载器委托给扩展类再委托给启动类,启动类找不到然后扩展类找,扩展类加载器找不到再应用程序类加载器找。

为什么要有双亲委派机制?

安全性:避免重复加载类。例如,java.lang.0bject 类只能由根类加载器加载,防止恶意代码加载不受信任的类来替代系统核心类。
一致性:保证同一个类在 JVM 中只会被加载一次,确保在整个应用中使用的是同一个类对象。

双亲委派机制先自下而上委托,再自上而下加载,那为什么不直接自上而下加载?
因为本来类加载器是组合关系,也就是子加载器只记录了父加载器,父加载器没记录子加载器(找不到子加载器)其次如果先父加载器接活再传给子加载器,假设有5个子加载器(比如5个平级的自定义加载器)传给哪个加载呢?每个试过去嘛?效率就不高了。

一般聊到双亲委派机制会说到类加载过程,具体看以下博文:

每日速记10道java面试题03-CSDN博客

七、java中sleep和wait方法的区别?

1.sleep方法 属于Thread类中的方法 释放cpu给其它线程 不释放锁资源 seep(1000)等待超过1s被唤醒
2. wait方法 属于Object类中的方法 释放cpu给其它线程,同时释放锁资源 wait(1000) ,等待超过1s被唤醒 ,wait() 一直等待需要通过notify或者notifyAll进行唤醒 ,wait 方法必须配合 synchronized 一起使用,不然在运行时就会抛出legalMonitorStateException异常

八、什么是BIO、NIO、AIO?

BIO(阻塞IO):人一直盯着水烧开,水烧开之后亲自关火
NIO(非阻塞IO):人在烧水的时候去干别的事情,时不时看着水烧没烧开,烧开之后亲自关火
AIO(异步IO):人找了一个帮手,帮手在烧水的时候一直盯着,水烧开之后帮手关火,然后提醒人水烧开了。人全程不管烧水的事情

九、什么是Channel?

是非阻塞式IO中的一个核心概念(NIO),是一种更有利于数据读写操作的数据结构

1.Channel是双向的,可以同时进行读取和写入
2.非阻塞式的,可以引入Selector实现多路复用,并发操作。
3. Channel有四种实现,SocketChannel、ServerSocketChannel、DatagramChannel、FileChannel

十、什么是 Selector?

selector是NIO 中IO多路复用的一个组件,它可以通过一个单独的线程同时监视多个通道(Channel)的事件。

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

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

相关文章

SQL进阶技巧:非等值连接--单向近距离匹配

目录 0 场景描述 1 数据准备 2 问题分析 ​编辑 ​编辑 3 小结 数字化建设通关指南 0 场景描述 表 t_1 和表 t_2 通过 a 和 b 关联时&#xff0c;有相等的取相等的值匹配&#xff0c;不相等时每一 个 a 的值在 b 中找差值最小的来匹。 表 t_1&#xff1a;a 中无重复值…

微积分复习笔记 Calculus Volume 2 - 3.1

The first 2 chapters of volume 2 are the same as those in volume 1. Started with Chapter 3. 3.1 Integration by Parts - Calculus Volume 2 | OpenStax

红日靶场-5

环境搭建 这个靶场相对于前几个靶场来说较为简单&#xff0c;只有两台靶机&#xff0c;其中一台主机是win7&#xff0c;作为我们的DMZ区域的入口机&#xff0c;另外一台是windows2008&#xff0c;作为我们的域控主机&#xff0c;所以我们只需要给我们的win7配置两张网卡&#…

软通动力携子公司鸿湖万联、软通教育助阵首届鸿蒙生态大会成功举办

11月23日中国深圳&#xff0c;首届鸿蒙生态大会上&#xff0c;软通动力及软通动力子公司鸿湖万联作为全球智慧物联网联盟&#xff08;GIIC&#xff09;理事单位、鸿蒙生态服务&#xff08;深圳&#xff09;有限公司战略合作伙伴&#xff0c;联合软通教育深度参与了大会多项重磅…

Mac配置和启动 Tomcat

Tomcat 配置与启动&#xff1a; 配置 Tomcat&#xff1a; homebrew install tomcat 启动 Tomcat&#xff1a; 如果cd ~/tomcat/bin文件夹存在startup.sh文件&#xff0c;可以直接在终端运行&#xff1a;./startup.sh 如果~/bin目录下&#xff0c;只有catalina文件。则在终端运行…

基于matlab程序实现人脸识别

1.人脸识别流程 1.1.1基本原理 基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间内对肤色进行了建模发现&#xff0c;肤色聚类区域在Cb—Cr子平面上的投影将缩减&#xff0c;与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。…

Java多线程介绍及使用指南

“多线程”&#xff1a;并发 要介绍线程&#xff0c;首先要区分开程序、进程和线程这三者的区别。 程序&#xff1a;具有一定功能的代码的集合&#xff0c;但是是静态的&#xff0c;没有启动运行 进程&#xff1a;启动运行的程序【资源的分配单位】 线程&#xff1a;进程中的…

[论文阅读]Poisoning Retrieval Corpora by Injecting Adversarial Passages

Poisoning Retrieval Corpora by Injecting Adversarial Passages 通过注入对抗性文本对检索语料库进行中毒 http://arxiv.org/abs/2310.19156 EMNLP2023 文章的目标就是要让检索器检索的结果包含攻击者生成的对抗性文本&#xff0c;如果能够检索到&#xff0c;则认为攻击成…

Leetcode 二叉树的锯齿形层序遍历

算法思想&#xff1a; 这段代码实现了 二叉树的锯齿形层序遍历&#xff0c;其核心思想是基于广度优先搜索&#xff08;BFS&#xff09;进行层序遍历&#xff0c;并根据当前层数决定从左到右或从右到左的顺序来组织每一层的节点值。 level.add 和 level.addFirst 有点类似单链…

OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解

摘要&#xff1a;本文详细介绍了 OpenCV 中用于查找图像轮廓的 cv2.findContours() 函数以及绘制轮廓的 cv2.drawContours() 函数的使用方法。涵盖 cv2.findContours() 各参数&#xff08;如 mode 不同取值对应不同轮廓检索模式&#xff09;及返回值的详细解析&#xff0c;搭配…

Linux操作系统2-进程控制3(进程替换,exec相关函数和系统调用)

上篇文章&#xff1a;Linux操作系统2-进程控制2(进程等待&#xff0c;waitpid系统调用&#xff0c;阻塞与非阻塞等待)-CSDN博客 本篇代码Gitee仓库&#xff1a;Linux操作系统-进程的程序替换学习 d0f7bb4 橘子真甜/linux学习 - Gitee.com 本篇重点&#xff1a;进程替换 目录 …

0基础学前端系列 -- 深入理解 HTML 布局

在现代网页设计中&#xff0c;布局是至关重要的一环。良好的布局不仅能提升用户体验&#xff0c;还能使内容更具可读性和美观性。HTML&#xff08;超文本标记语言&#xff09;结合 CSS&#xff08;层叠样式表&#xff09;为我们提供了多种布局方式。本文将详细介绍流式布局、Fl…

Springboot集成通义大模型

1.先到阿里云平台开头阿里云白炼账号&#xff0c;创建apiKey 2. 引入maven依赖 <dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><version>2.8.3</version></dependency><!-- htt…

哈希表算法题

目录 题目一——1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 1.1.暴力解法1 1.2.暴力解法2 1.2.哈希表解法 题目二——面试题 01.02. 判定是否互为字符重排 - 力扣&#xff08;LeetCode&#xff09; 2.1.哈希表解法 2.2.排序解法 题目三——217. 存在重复元…

Cookie跨域

跨域&#xff1a;跨域名&#xff08;IP&#xff09; 跨域的目的是共享Cookie。 session操作http协议&#xff0c;每次既要request&#xff0c;也要response&#xff0c;cookie在创建的时候会产生一个字符串然后随着response返回。 全网站的各个页面都会带着登陆的时候的cookie …

个人博客接入github issue风格的评论,utteranc,gitment

在做个人博客的时候&#xff0c;如果你需要评论功能&#xff0c;但是又不想构建用户体系和评论模块&#xff0c;那么可以直接使用github的issue提供的接口&#xff0c;对应的开源项目有utteranc和gitment&#xff0c;尤其是前者。 它们的原理是一样的&#xff1a;在博客文章下…

React第十节组件之间传值之context

1、Context 使用creatContext() 和 useContext() Hook 实现多层级传值 概述&#xff1a; 在我们想要每个层级都需要某一属性&#xff0c;或者祖孙之间需要传值时&#xff0c;我们可以使用 props 一层一层的向下传递&#xff0c;或者我们使用更便捷的方案&#xff0c;用 creatC…

JVM_垃圾收集器详解

1、 前言 JVM就是Java虚拟机&#xff0c;说白了就是为了屏蔽底层操作系统的不一致而设计出来的一个虚拟机&#xff0c;让用户更加专注上层&#xff0c;而不用在乎下层的一个产品。这就是JVM的跨平台&#xff0c;一次编译&#xff0c;到处运行。 而JVM中的核心功能其实就是自动…

RPA:电商订单处理自动化

哈喽&#xff0c;大家好&#xff0c;我是若木&#xff0c;最近闲暇时间较多&#xff0c;于是便跟着教程做了一个及RPA&#xff0c;谈到这个&#xff0c;可能很多人并不是很了解&#xff0c;但是实际上&#xff0c;这玩意却遍布文末生活的边边角角。话不多说&#xff0c;我直接上…

字符型注入‘)闭合

前言 进行sql注入的时候&#xff0c;不要忘记闭合&#xff0c;先闭合再去获取数据 步骤 判断是字符型注入 用order by获取不了显位&#xff0c;select也一样 是因为它是’)闭合&#xff0c;闭合之后&#xff0c;就可以获取数据了 最后就是一样的步骤