每日速记10道java面试题03
其他资料
每日速记10道java面试题01-CSDN博客
每日速记10道java面试题02-CSDN博客
目录
一、你使用过java的反射机制吗?如何应用反射?
二、什么是泛型?泛型的作用是什么?
三、java的泛型擦除是什么?
四、Java 中的深拷贝和浅拷贝有什么区别?
五、什么是 Java 的 Integer 缓存池?
六、java的类加载过程是怎样的?
七、String s = new String("abc")会创建几个对象?
八、如果一个线程在 Java 中被两次调用 start0) 方法,会发生什么?
九、java的IO流是什么?
十、java的基本数据类型有哪些?
‘‘’
一、你使用过java的反射机制吗?如何应用反射?
Java 的反射机制是指在运行时获取类的结构信息(如方法、字段、构造函数)并操作对象的一种机制。
对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意方法和属性,并且能改变它的属性。
Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。其本质是JVM得到Class对象之后,再通过Class对象进行反编译,从而获取对象的各种信息。
java反射的优点:
可以动态地获取类的信息,不需要在编译时就知道类的信息。
可以动态地创建对象,不需要在编译时就知道对象的类型。
可以动态地调用对象的属性和方法,在运行时动态地改变对象的行为。
应用场景有:
spring就是使用反射机制来读取配置文件,实现依赖注入和aop。
二、什么是泛型?泛型的作用是什么?
泛型允许类、接口和方法在定义时使用一个或多个类型参数,这些类型参数在使用时可以被指定为具体的类型。
类型安全:运行时异常转为编译时异常,提早发现异常,确保类型安全
代码重用:方法或者类,可以使用泛型,使方法和类能够处理多种不同的数据类型。而不用每个数据类型都写一个方法或者类。
三、java的泛型擦除是什么?
java的泛型擦除是指java编译器在编译过程中将所有的泛型信息删除的过程,这样做的目的是为了保证java版本的兼容性,因为在java5之前一些集合比如ArrayList和LinkedList都是非泛型化的,java5之后这两个集合都是泛型化的,为了保证这两个java版本的兼容性,就有这个泛型擦除。
会在编译的时候将<E>替换成Object,并通过插入类型转换指令保持类型安全和多态性。
四、Java 中的深拷贝和浅拷贝有什么区别?
深拷贝:不仅拷贝对象本身和基本类型成员变量,堆内的引用对象也会复制一份(相互独立不干扰)
浅拷贝:仅拷贝对象本身和基本类型成员变量,共享堆内的引用对象(仅复制引用地址)
五、什么是 Java 的 Integer 缓存池?
java的Interger缓存池为了提高性能和减少内存,在-128到127以内的对象会被缓存并复用,例如:interger a =127,这时候就会将a放进interger缓存池,在interger b =127的时候,并不是重新创建创建一个对象,而是去interger缓存池查找有没有这个值的缓存对象,有的话直接拿过来用,没有才去重新创建并存入缓存池。
六、java的类加载过程是怎样的?
Java的类加载过程包括加载、链接和初始化三个主要步骤。
1.在加载阶段,通过类加载器将类文件加载到内存中,生成一个Class对象。
2.在链接阶段,包括 验证 、 推备 和 解析 三个子阶段,确保类的字节码安全并为静态变量分配内存和进行符号引用解析。
3.最后在初始化阶段,执行类的初始化逻辑,将静态变量和静态代码块的初始化操作整合并执行。
七、String s = new String("abc")会创建几个对象?
1.首先,new会先在堆内存中创建一个String对象(第一个对象,称它为new String对象吧),并让s引|用指向该对象。
2.JVM用字面量”abc“去字符串常量池中尝试获取“abc”对应的String对象的引用。
2.1 如果获取成功,则让new String对象引用常量池中的"abc”
2.2 如果获取失败,则在堆内存中创建一个"abc"的String对象(第二个对象),并把它的引用保存在字符串常量池。然后让newString对象引用常量池中的"abc"。
所以,使用new String方法时,会创建1个或者2个对象。
八、如果一个线程在 Java 中被两次调用 start0) 方法,会发生什么?
会报错!因为在 Java 中,一个线程只能被启动一次!所以尝试第二次调用 start0) 方法时,会抛出 legalThreadStateException 异常。这是因为一旦线程已经开始执行,它的状态不能再回到初始状态。线程的生命周期不允许它从终止状态回到可运行状态。
九、java的IO流是什么?
Java的I/O流是用于处理数据输入输出的类库,可以从各种位置读取数据,也可以将数据写入特定位置I/O流分为两大类:
字节流:处理8字节数据,适合处理二进制文件,比如图片、视频。承担任务的类有Inputstream和Outputstream类及其子类。
字符流:处理16字节数据,适合处理文本文件。承担任务的类有Reader和Writer及其子类。
十、java的基本数据类型有哪些?
四种八类
1.整型
o byte 1字节
oshort 2字节
o int 4字节
o long 8字节
2.浮点型
o float 4字节
odoble 8字节
3. 字符型
ochar 2字节
4.布尔型
oboolean 不定
相关文章:
每日速记10道java面试题03
其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 目录 一、你使用过java的反射机制吗?如何应用反射? 二、什么是泛型?泛型的作用是什么? 三、java的泛型擦除是什么? 四、Java 中…...
Vue 3 的双向绑定原理
Vue 3 的双向绑定原理是基于 响应式系统 和 数据劫持 技术来实现的。在 Vue 3 中,双向绑定通常是通过 v-model 指令来完成的,它本质上是数据的双向同步:当数据改变时,视图自动更新,反之,视图的修改也会更新…...
如何使用 Chrome 无痕浏览模式访问网站?
无痕浏览(Incognito Mode)是 Google Chrome 浏览器提供的一种隐私保护功能,它允许用户在一个独立的会话中浏览网页,而不会记录用户的浏览历史、下载历史、表单数据等。这对于希望保护个人隐私或进行临时性匿名浏览的用户来说非常有…...
Idea 2024.3 突然出现点击run 运行没有反应,且没有任何提示。
写这篇文章的目的是为了提供一个新的解决思路,因为存在同病不同原因。 如果你进行了1. 检查运行配置 (Run Configuration) 2. 清理和重建项目 3. 清除缓存并重启 IDEA 4.排除kotlin 5.重装idea等等操作之后仍然没有解决,可以试着按一下步骤进行解决。 检…...
【小白学机器学习36】关于独立概率,联合概率,交叉概率,交叉概率和,总概率等 概念辨析的例子
目录 1 先说结论 2 联合概率 3 边缘概率 4 (行/列)边缘概率的和 总概率1 5 条件概率 5.1 条件概率的除法公式 5.2 条件概率和联合概率区别 1 先说结论 关于独立概率,联合概率,交叉概率,交叉概率和,总概率 类型含义 …...
Spring Boot 项目——分层架构
在创建一个 Spring Boot 项目时,为了提高代码的可维护性、可扩展性和清晰度,通常会按照一定的分层架构进行设计。常见的分层架构包括以下几层: 1. Controller 层(Web 层) 作用:接收用户请求,并…...
wordpress网站首页底部栏显示网站备案信息
一、页脚文件footer.php 例如,wordpress主题使用的是simple-life主题,服务器IP为192.168.68.89,在wordpress主题文件中有个页脚文件footer.php,这是一个包含网站页脚代码的文件。 footer.php 路径如下: /www/wwwroot/192.168.68…...
python面向对象编程练习
学生成绩管理系统 定义一个Student类,包括属性(姓名、成绩)和方法(设置成绩、获取成绩、计算平均成绩)。 实例化多个学生对象并调用方法。 功能说明: Student 类: init(self, name):…...
OpenCV_Code_LOG
孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…...
力扣第 74 题是 搜索二维矩阵
题目描述 给定一个 m x n 的矩阵 matrix 和一个目标值 target,请你编写一个函数来判断目标值 target 是否在矩阵中。 每行的元素按升序排列。每列的元素按升序排列。 示例 1 输入: matrix [[1, 4, 7, 11],[2, 5, 8, 12],[3, 6, 9, 16],[10, 13, 14…...
[极客大挑战 2019]BabySQL--详细解析
信息搜集 进入界面: 输入用户名为admin,密码随便输一个: 发现是GET传参,有username和password两个传参点。 我们测试一下password点位能不能注入: 单引号闭合报错,根据报错信息,我们可以判断…...
实现Linux平台自定义协议族
一 简介 我们常常在Linux系统中编写socket接收TCP/UDP协议数据,大家有没有想过它怎么实现的,如果我们要实现socket接收自定义的协议数据又该怎么做呢?带着这个疑问,我们一起往下看吧~~ 二 Linux内核函数简介 在Linux系统中要想…...
RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程
这是一篇基于RL78/G15 Fast Prototyping Board的Arduino IDE开发记录 RL78/G15 Fast Prototyping Board硬件简介(背景)基础测试(方法说明/操作说明)开发环境搭建(方法说明/操作说明代码结果)Arduino IDE RL…...
YOLOv11 NCNN安卓部署
YOLOv11 NCNN安卓部署 前言 yolov11 NCNN安卓部署 目前的帧率可以稳定在20帧左右,下面是这个项目的github地址:https://github.com/gaoxumustwin/ncnn-android-yolov11 上面的检测精度很低时因为这个模型只训练了5个epoch,使用3090训练一个…...
对载入的3dtiles进行旋转、平移和缩放变换。
使用 params: {tx: 129.75845, //模型中心X轴坐标(经度,单位:十进制度)//小左ty: 46.6839, //模型中心Y轴坐标(纬度,单位:十进制度)//小下tz: 28, //模型中心Z轴坐标(高…...
Rust个人认为将抢占C和C++市场,逐渐成为主流的开发语言
本人使用C开发8年、C#开发15年、中间使用JAVA开发过项目、后期在学习过程中发现了Rust语言说它是最安全的语言,能够解决C、C的痛点、于是抽出一部分时间网上买书,看网上资料进行学习,这一学习起来发现和其它语言比较起来,在编码的…...
在openEuler中使用top命令
在openEuler中使用top命令 概述 top 命令是Linux系统中最常用的实时性能监控工具之一,允许用户查看系统的整体状态,包括CPU使用率、内存使用情况、运行中的进程等。本文档将详细介绍如何在openEuler操作系统中有效利用top命令进行系统监控。 启动top命令 打开终端并输入t…...
探索文件系统,Python os库是你的瑞士军刀
文章目录 探索文件系统,Python os库是你的瑞士军刀第一部分:背景介绍第二部分:os库是什么?第三部分:如何安装os库?第四部分:简单库函数使用方法1. 获取当前工作目录2. 改变当前工作目录3. 列出目…...
【小白学机器学习41】如何从正态分布的总体中去抽样? 获得指定正态分布的样本的2种方法
目录 1 目标:使用2种方法,去从正态分布的总体中去抽样,获得样本 1.1 step1: 首先,逻辑上需要先有符合正态分布的总体population 1.2 从总体中取得样本,模拟抽样的过程 2 从正态分布抽样的方法1 3 从正态分布抽样…...
将VSCode设置成中文语言环境
目录 VSCode默认是英文语言环境,这对于像我这种英语比较菜的人来说不是那么友好 另外也习惯了用中文,所以接下来介绍下如何将VSCode设置成中文语言环境。 1、打开VSCode软件,按快捷键【CtrlShiftP】 2、在弹出的搜索框中输入【configure l…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
