- 博客(22)
- 收藏
- 关注
原创 java基础面试题(10)-反射
在 Java 中,是指程序在运行时可以访问、检测和修改自身结构及行为的能力。简单来说,就是 Java 代码可以在运行时 “看透” 类的内部信息(如类名、方法、字段等),并动态调用类的方法或操作类的字段,而无需在编译期就知道类的具体信息。
2025-07-31 16:38:38
140
原创 java基础面试题(9)-泛型
在类的声明中引入类型参数,使得类中的字段、方法参数或返回值可以使用该类型参数,从而让类具备操作多种数据类型的能力。
2025-07-31 15:23:11
250
原创 java基础面试题(8)-异常
Exception(异常)表示程序运行过程中出现的可预期、可处理的问题,通常是由代码逻辑或外部环境导致的(如用户输入错误、文件不存在等)。它的出现不会导致 JVM 终止,程序可以通过try-catch捕获并处理,使程序继续执行。Error(错误)表示 JVM 自身在运行过程中出现的严重问题,通常是由系统底层故障或资源耗尽导致的(如内存溢出、类加载失败等)。它的出现往往意味着 JVM 已无法正常工作,程序无法处理,最终会导致 JVM 终止运行。Checked Exception(受检异常)
2025-07-31 13:56:09
471
原创 java基础面试题(7)-String
优先根据是否需要修改和是否多线程选择:字符串不变 →String字符串可变 + 单线程 →字符串可变 + 多线程 →避免在循环中使用String的拼接,改用提升性能。Java 9 为何要将String的底层实现由char[]改成了byte[]?char 2个字节,byte 1个字节Java 9 将String底层从char[]改为byte[],是基于 “大多数字符串可通过单字节编码” 这一现实场景的针对性优化,核心目标是减少内存占用。
2025-07-30 16:42:49
642
原创 java基础面试题(6)--Object
Java 中的类是所有类的根类,任何类都直接或间接继承自它。Object类提供了一些基本方法,这些方法在所有 Java 对象中都可用。
2025-07-29 15:27:54
408
原创 java基础面试题(5)
两者都属于抽象类型,无法直接创建对象,只能作为父类(抽象类)或实现类(接口)的模板。都能声明没有具体实现的方法(抽象方法),强制子类 / 实现类去实现这些方法,体现 “约定大于实现” 的思想。抽象类通过extends被子类继承,接口通过implements被类实现,且子类 / 实现类都必须实现所有抽象方法(除非自身也是抽象类)。都可以定义规范(方法签名),供多个类遵循,实现代码的抽象和解耦,便于扩展和维护。
2025-07-29 14:28:11
256
原创 java基础面试题(4)-变量
成员变量:定义在类中,方法之外,属于类的属性。// 成员变量(类中,方法外)int age;// 方法体局部变量:定义在方法内部、方法参数列表、代码块(如iffor块)中,属于方法或代码块的临时变量。public void sayHello(String message) { // message 是局部变量(参数)// 局部变量(方法内)// 局部变量(代码块内)特性成员变量局部变量定义位置类中,方法外方法内、参数列表、代码块内作用范围整个类仅定义它的方法或代码块初始化。
2025-07-28 18:47:18
717
原创 java基础面试题(3)
Java 中的包装类型(如IntegerLongBoolean等)为了提高性能和减少内存消耗,引入了:对一定范围内的基本类型值,在创建包装对象时会复用已存在的对象,而不是每次都新建对象。这一机制主要应用于频繁使用的小范围数值。ByteShortIntegerLong这 4 种包装类默认创建了数值的相应类型的缓存数据,Character创建了数值在范围的缓存数据,Boolean直接返回TRUEorFALSE。对于Integer,可以通过 JVM 参数修改缓存上限,但不能修改下限 -128。
2025-07-28 18:29:40
653
原创 jvm的栈和堆
维度栈(Stack)堆(Heap)所有者线程私有(每个线程一个栈)所有线程共享存储内容局部变量、方法栈帧、对象引用对象实例、数组生命周期随方法调用 / 线程结束而创建 / 销毁随对象是否被引用动态变化(由 GC 管理)内存管理自动弹出栈帧,无需 GC依赖 GC 回收无引用对象访问速度快(连续内存,直接操作)较慢(需通过引用定位,可能有碎片)异常类型栈溢出(内存溢出(
2025-07-28 17:20:05
286
原创 java基础面试题(2)
依赖关系:Java EE 完全基于 Java SE,使用 Java EE 必须先掌握 Java SE 的基础(如语法、集合、多线程等)。应用场景:Java SE 是 “基石”,适用于轻量级、单机或简单网络应用;Java EE 是 “扩展”,适用于复杂的企业级分布式系统。现状:2018 年 Java EE 被移交 Eclipse 基金会管理,更名为 Jakarta EE,但核心技术规范和用途未变。Java SE 是基础,让你能用 Java 写程序;
2025-07-28 16:48:46
468
原创 java基础面试题(1)
指在一个程序中同时运行多个线程(Thread),每个线程都可以独立的执行不同的任务,从而提高执行效率和资源利用率,是用来处理并发任务的重要手段,尤其适用于需要同时处理多个操作的场景(如网络请求,文件读写, UI交互等)重载的方法名相同,但参数列表必须不同,比如实现一个加法方法,修改参数类型就是重载,方法重写主要用于子类继承父类的方法,但是子类可能有自己的表现形式或是输出结果,要对方法的内容加以修改。线程:是进程的一个执行单元,共享进程的内存空间和资源,是 CPU 调度的基本单位。
2025-07-28 15:34:16
810
原创 SpringBoot3 + Vue3 实现基本的前后端数据交互
简单来说,就是后端写好接口,前端调用接口,前端可以将接收的数据用一个合适的容器包装展示给用户查看,前端调用接口的关键在于导入axios包并且配置好request.js,之后就可以利用request来调用接口获取数据。前端发起请求之前需要先封装一个request.js的工具(命名可以按自己喜好来),用这个工具来帮助我们发请求。这里的get('/employee/selectAll') 是后端提供的接口。然后在request.js中输入以下代码,注意修改端口号,和后端保持一致。为前端安装axios依赖。
2025-07-17 13:27:41
234
原创 SpringBoot3集成mybatis
首先创建mapper包(resources下)并在其中写入大致的框架,下一步写方法的接口,创建mapper包(com.example下)并创建接口方法;有了接口之后要对其进行实现,这里采用的是创建service包(com.example下)并在其中编写该接口的具体方法,实际上是一个包含该方法的类,下一步就是让这个方法可以被调用,我们回到controller中,创建一个控制器调用接口,最终往往需要调用数据库的信息,所以同时需要在java中创建数据库中的实体,以便于返回数据;
2025-07-15 22:49:12
856
原创 为SpringBoot3创建测试接口
这里写了一个hello方法,并且加上了@GetMapping注解,表示该方法可以被访问。这里只知道报错,但不知道哪里错了,这种问题肯定会增加开发成本,所以下面解决这个问题。之后编写该类,自定义方法中包含错误码和错误信息,以及get、set方法。点击蓝色部分代码,转移到出错部分,会发现是a变量的定义有问题。举个例子,这里有一个count接口,变量a的定义明显有问题。此时当我们再次调用 count 接口时,错误就会被捕获,现在还有一个问题,怎么知道具体是什么地方出问题了?
2025-07-15 13:24:03
268
原创 创建SpringBoot3项目
摘要:本文介绍了SpringBoot项目初始配置步骤。首先建议选用较低版本SpringBoot并修改配置文件为yml格式,设置UTF-8编码。接着配置Maven依赖和镜像仓库。重点说明了数据库连接配置方法,需在application.yml中设置MySQL连接参数(数据库名、密码等)。最后建议修改默认端口为9091,完成基础配置后项目即可运行。这些步骤为后续应用程序开发奠定了基础。
2025-07-14 23:19:24
294
原创 Vue3+TypeScript 学习记录02
笔者最近在学习李一鸣老师著的《Vue.js3+TypeScript从入门到项目实践》,02会陆续更新。
2025-05-23 18:45:30
928
原创 JavaScript学习记录05
异步编程(Asynchronous Programming)是JavaScript语言的一大特色,同时也是学习JavaScript的一大难点。异步是与同步相对的概念,所以先来了解下同步。同步指的是JavaScript代码执行时,严格按照代码的编写顺序依次执行,是连续执行的,意味着下一行代码的执行必须等待前一行代码执行完毕之后才会执行。同步代码的好处在于编写简单,而且可以直观地观察程序在每一步地运行状态,程序很好控制。
2025-05-16 21:25:03
949
原创 JavaScript学习记录04
script></script>注意,类的声明不会提升,一定要先定义类,再去使用类,并且定义的类名首字母要大写。
2025-05-14 20:42:30
882
原创 JavaScript学习记录03
三个函数都可以改变函数内部的this指向三个函数中的第一个参数都是函数内部 this 所要指向的对象不同点:call方法的第二个参数是散列值,多个参数间用逗号隔开apply方法的第二个参数是一个数组,传递给函数的参数封装在数组中bind方法第二个参数是散列值,多个参数间用逗号隔开call和apply方法调用后,会立刻执行函数bind方法调用后,会返回原来函数的拷贝,并且不会直接调用新函数call方法主要用来做继承,call()可以看作是apply()的语法糖。
2025-05-10 22:34:16
1106
原创 JavaScript学习记录02
<script>//Spring</script></body>只有一种方式,即“元素节点.setAttribute(属性,属性值)”。<body><script>//输出了 helloworld 但是这里的name并非HTML特性</script>
2025-04-27 20:54:31
984
原创 JavaScript学习记录01
笔者最近在学习郭超老师著的《JavaScript快速入门与开发实战》,文章内容主要是本人对书本内容学习的记录。内容不是将书本内容完全复现,只记载了笔者认为较为重要或是容易遗忘的内容。01已经更新完结。目录1.初识JavaScript1.1 js特点1.2 js的应用场景1.3 js的组成2.如何调用JavaScript2.1行内调用2.2内嵌方式2.3外部链接js文件3.JavaScript基本语法3.1变量3.1.1js变量使用注意事项3.1.2变量命名规范3.2数据类型3.3数据类型转换3.3.1显式类
2025-04-23 22:23:21
693
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人