- 博客(44)
- 收藏
- 关注
原创 Java基础——十、注解
*Java 注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。**注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。注解(Annotations)是Java中的一种元数据提供机制,它可以在代码中标记类、方法、变量、参数等,从而**在编译时或运行时为代码提供额外的信息。**注解不会直接影响代码的执行逻辑,但可以通过编译器或框架工具进行解析和处理,从而实现自动配置、代码生成、验证等功能。
2024-08-17 17:44:56
984
原创 Java基础——九、泛型
总结,Java中的泛型是一种强大且灵活的工具,虽然其实现细节(如类型擦除)带来了一些限制和复杂性,但它显著提高了代码的类型安全性和可重用性。理解和正确使用泛型是成为高级Java工程师的重要一步。
2024-08-17 17:40:55
597
原创 Java基础——七、反射
反射是Java中的一个强大功能,它允许程序在运行时动态地获取有关类、方法和字段的信息,并且可以创建对象、调用方法和访问字段。简单来说,反射使程序能够在运行时进行自我检查和自我修改。反射是Java中一个非常强大的工具,但也需要谨慎使用。它提供了动态操作类和对象的能力,使得许多高级编程技术成为可能,比如框架和库的设计。但是,由于其性能开销和潜在的安全风险,在使用时需要权衡利弊,避免滥用。
2024-07-20 15:38:29
882
原创 Java基础——八、异常
创建自定义异常类,以提供更明确的错误信息。异常处理是Java编程中必不可少的一部分。通过正确的处理异常,可以提高程序的健壮性和可维护性。在日常工作中,应该养成良好的异常处理习惯,如记录日志、进行参数验证、合理的选择处理策略等。这些实践将帮助你编写出更加稳定和可靠的代码。
2024-07-20 15:36:10
673
原创 Java基础——六、IO
Java I/O提供了多种类和接口,用于处理字节流和字符流、标准I/O、对象流和文件操作。Java NIO引入了更高效的I/O操作,适用于大规模和高性能应用。根据具体的需求选择适当的I/O方式,可以有效地提高程序的性能和可维护性。
2024-06-30 17:14:50
434
原创 Java基础——五、继承
抽象类是不能被实例化的类,它用来作为其它类的基类。抽象类可以包含抽象方法(没有具体的方法)和具体方法(有方法体的方法)。抽象类为什么不能被实例化?不完整的实现:抽象类是用了作为其它类型的基类的,它包含抽象方法,这些方法没有实现。因为抽象类本身并没有提供所有方法的实现,它不完整,所以不能被实例化。实例化一个不完整的对象是没有意义的。强制子类实现:抽象类中的抽象方法定义了子类必须实现的行为,这是一种设计模式,确保所有子类都提供具体实现。
2024-06-29 18:41:59
613
原创 Java基础——四、关键字
编译器负责在编译阶段执行静态检查,并在生成的字节码中包含适当的标记。JVM在运行时通过字节码中的这些标记来执行相应的约束。编译期约束:在编译期,final关键字的约束确保程序的静态正确性。任何违反final规则的代码都不会通过编译。运行期约束:在运行期,JVM利用字节码中的final标记来确保变量、方法或类的不可变性。这种机制保证了final语义在整个程序生命周期内的一致性。final关键字的实现依赖于Java编译器和JVM的合作,通过在编译期和运行期的检查和优化,确保其语义得到正确执行。
2024-06-02 11:23:53
1009
原创 程序员面试经典—— 02.03. 删除中间节点
简单提示若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。例如,传入节点c(位于单向链表中),将其删除后,剩余链表为通过率85.8%
2024-04-05 15:28:51
355
原创 程序员面试经典——02.02. 返回倒数第 k 个节点
已解答简单提示实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。**注意:**本题相对原题稍作改动给定的k保证是有效的。
2024-04-05 15:26:55
223
原创 程序员面试经典——02.01. 移除重复节点
简单提示编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。如果不得使用临时缓冲区,该怎么解决?
2024-04-05 15:24:53
161
原创 程序员面试经典—— 01.09. 字符串轮转
简单提示字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,是旋转后的字符串)。通过次数90.5K提交次数168.2K通过率53.8%
2024-04-05 15:23:18
359
原创 程序员面试经典—— 01.07. 旋转矩阵
已解答中等给你一幅由N × N矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?:本题与主站 48 题相同:https://leetcode-cn.com/problems/rotate-image/
2024-04-05 15:19:14
689
原创 程序员面试经典—— 01.06. 字符串压缩
简单字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
2024-04-05 15:16:55
260
原创 程序员面试经典——01.05. 一次编辑
中等字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
2024-04-05 15:15:01
399
原创 程序员面试经典——01.04. 回文排列
简单给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。审题正反两个方向都相同的单词或者短语,排列是重新打乱顺序之后的排列。
2024-04-05 15:12:48
183
原创 程序员面试经典——01.03. URL化
简单URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。
2024-04-05 15:10:33
131
原创 程序员面试经典——01.02. 判定是否互为字符重排
简单给定两个由小写字母组成的字符串s1和s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
2024-04-05 15:08:19
381
原创 Java基础——三、运算
Java是按值传递的!基本数据类型(如int、float、boolean等)是按值传递的。在Java中,对象并不直接传递;相反,对象的引用被按值传递。
2024-04-05 14:40:17
1022
原创 Java基础——二、数据类型
自动装箱是Java编译器在基本类型与其相应的对象包装类之间的自动转换。例如,将int转换为Integer,将double转换为Double,等等。如果转换以另一种方式进行,则称为拆箱。基本上有适合的包装类型,就可以进行相互转换,使用自动拆箱装箱完成。// 装箱 调用了 Integer.valueOf(2)int y = x;// 拆箱 调用了 X.intValue()自动装箱和拆箱使开发人员可以编写更简洁的代码,使其更易于阅读缓存池是一个用于存储和重复利用对象的容器,通常用于。
2024-04-05 14:38:46
746
原创 Java基础——一、特征
提供了一个新的日期和时间 API,使日期和时间处理更加简单。语句:支持在 Try 语句中声明资源,并在使用后自动关闭。:提供了一种更为简单、可读性更高的方式来处理集合数据。:提供了一种新的并行处理方式,可以更快地处理大数据集。:允许接口在不破坏现有实现的情况下添加新方法。:引入了一个新的 JavaScript 引擎。:提供了一种高效的累加器,可用于并发计算。:引入了一些新的 API,以支持动态语言。:简化了代码编写,并支持函数式编程。:引入了一个新的 I/O API。:增加了对代码中类型注解的支持。
2024-04-05 14:37:24
754
原创 Java特征
提供了一个新的日期和时间 API,使日期和时间处理更加简单。语句:支持在 Try 语句中声明资源,并在使用后自动关闭。:提供了一种更为简单、可读性更高的方式来处理集合数据。:提供了一种新的并行处理方式,可以更快地处理大数据集。:允许接口在不破坏现有实现的情况下添加新方法。:引入了一个新的 JavaScript 引擎。:提供了一种高效的累加器,可用于并发计算。:引入了一些新的 API,以支持动态语言。:简化了代码编写,并支持函数式编程。:引入了一个新的 I/O API。:增加了对代码中类型注解的支持。
2024-03-30 15:31:47
579
原创 HashMap为什么要指定初始大小?
在这个情况下,初始大小为4,容量为4,因此当存储第3个元素时,哈希表的元素数量为3,容量为4,还有一个空位。此时,需要重新计算哈希值并将元素重新插入到新的更大的哈希表中,这个过程需要花费一定的时间,但是由于初始容量等于元素数量,因此扩容时所需的空间通常比较小,因此空间代价相对较小。,因此在这个情况下,哈希表的容量从4扩容到了8,扩容了两倍。具体来说,当初始大小为4时,哈希表的容量为4,而负载因子为0.75,表示当哈希表中元素数量达到容量的 0.75 倍即 3 个时,就会触发自动扩容。
2024-02-24 15:03:28
1093
原创 OOP面向对象编程
面向对象的三大特征就是封装、继承,多态。但从更加宽泛的角度而言,对**抽象(Abstraction)和消息传递(Message Passing)**的理解也同样很重要!抽象(Abstraction):抽象是面向对象编程的重要概念之一,它是隐藏对象的复杂性的过程,使得用户只需要关注对象的关键特征而忽略其实现细节。在面向对象编程中,抽象通过类和接口来实现。类定义了对象的属性和方法,而接口定义了对象的行为规范,通过这些抽象概念,程序员可以更加专注于问题的本质而不是实现细节。
2024-02-22 14:51:25
417
原创 消息队列——介绍及选择
是指。消息队列系统通常由消息生产者、消息中间件和消息消费者组成。消息生产者将消息发送到消息队列中,消息中间件负责将消息传递到消息消费者,消息消费者则从消息队列中接收并处理消息。消息队列的。当系统的业务量增加时,可以通过增加消息队列的数量和容量来满足需求,从而提高系统的性能和可靠性。同时,由于消息队列可以实现消息的持久化存储,即使发生系统故障,也不会丢失消息。:将耗时的操作放到消息队列中异步处理,避免阻塞主线程,提高系统的吞吐量和响应速度。
2023-06-04 16:01:49
917
原创 消息队列——kafka基础
Kafka 是一个分布式的---基于发布/订阅模式的消息队列(Message Queue),主要应用于 大数据实时处理领域。发布/订阅模式 原文链接:https://blog.csdn.net/tjvictor/article/details/5223309 定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相应对象间的一致性。
2023-06-04 15:06:52
2402
原创 Java框架——springBoot基础
一、笔记资源下载地址:[首页](javascript:void(0)😉 > 导航 > 笔记下载https://www.kuangstudy.com/app/codeWeb UI 组件库:https://www.layui.com/博客笔记资源:https://www.cnblogs.com/yaolicheng/p/13689710.html绘图:https://www.processon.com/diagramshttps://www.bootcss.com/p/layoutit/前端组件:https:
2023-06-01 19:19:32
2477
原创 Java基础——HashMap指定初始值
因此,指定初始大小可以控制负载因子的值,达到平衡空间和时间的效果。此时,需要重新计算哈希值并将元素重新插入到新的更大的哈希表中,这个过程需要花费一定的时间,但是由于初始容量等于元素数量,因此扩容时所需的空间通常比较小,因此空间代价相对较小。但是,这里需要注意的是,在初始大小等于元素数量的情况下,扩容所需的代价通常比较小,因为仍然有足够的空间可以容纳元素。具体来说,当初始大小为4时,哈希表的容量为4,而负载因子为0.75,表示当哈希表中元素数量达到容量的 0.75 倍即 3 个时,就会触发自动扩容。
2023-06-01 15:37:04
3204
原创 非关系型——Redis基础
官方文档:http://redis.cn/1、Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程2、当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定3、指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认 端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字port 6379。
2023-05-30 17:51:04
422
原创 Java框架——日志整合slf4j+log4j2
ApacheLog4j 2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。被誉为是目前最优秀的Java日志框架log4j是apache实现的一个开源日志组件logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现Log4j2。
2023-05-28 14:38:15
3594
原创 Java框架——SSM整合
AJAX初体验异步可理解为局部刷新,同步指需要按部就班地完成一整套流程AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。
2023-05-28 14:34:54
2195
原创 关系型——MySQL进阶
什么是索引?排序 + 查找解决order by排序查找的快你可以简单理解为==“排好序的快速查找数据结构”==索引的目的在于提高查询效率,可以类比字典一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上MySQL官方对索引的定义为:索引(Index) 是帮助MySQL高效获取数据的数据结构,可以得到索引的本质索引是数据结构要查“mysql”这个单词,我们肯定需要定义到m字母,然后从上往下找到y字母,再找到剩下的sql。在数据之外,
2023-05-21 16:15:45
311
原创 关系型——MySQL基础
方式一:计算机——右击管理——服务方式二:通过管理员身份运行net start 服务名(启动服务)net stop 服务名(停止服务)一、用户变量SET @变量名=值;SET @变量名:=值;SELECT @变量名:=值;方式一:一般用于赋简单的值SET 变量名=值;SET 变量名:=值;SELECT 变量名:=值;方式二:一般用于赋表 中的字段值SELECT 字段名或表达式 INTO 变量FROM 表;select @变量名;二、局部变量。
2023-05-18 19:32:50
439
原创 Java框架——springMVC基础
Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。查看官方文档:https://docs.spring.io/spring/docs/5.2.0.RELEASE/spring-framework-reference/web.html#spring-web我们为什么要学习SpringMVC呢?轻量级,简单易学高效 , 基于请求响应的MVC框架与Spring兼容性好,无缝结合约定优于配置。
2023-05-16 19:20:10
2061
原创 Java框架——spring基础
1、在官网中获取xml配置文件。第一步:打开Core Technologies (spring.io)第二步:Spring:春天------>给软件行业带来了春天!2002,首次推出了Spring框架的雏形——interface21框架!Spring框架以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版Rod Johnson——Spring Framework创始人,著名作家。很难想象Rod Johnson的学历,真的让好多人大吃一惊,它却是悉尼大
2023-05-15 21:23:12
1255
1
原创 JVM——初体验
为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。一、认识 native 即 JNI,Java Native Interface凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。二、用 Java 调用 C 的“Hello,JNI”1、创建一个Java类,里面包含着一个 native 的方法和加载库的方法 loadLibrary。
2023-05-15 18:01:17
513
原创 Java框架——mybatis基础
注: 可以将框架理解为帮助开发,被封装的工具,不必细究代码细节,重点源码原理做好笔记即可!官方文档地址:https://mybatis.org/mybatis-3/index.html入门基础需要掌握的以及开发环境:github上面看源码等资料它是一套软件开发中的解决方案,不同框架解决的是不同的问题。使用框架的好处:框架封装了很多的细节,使用开发者可以使用极简的方式实现功能,大大提高了开发效率。框架实际上算是半成品。1、表现层:是用于展示数据的2、业务层:是处理业务需求的3、持久层: 是与数
2023-05-14 18:29:48
911
原创 网站搭建——wordPress
CGI(Common Gateway Interface),全文名是通用网关接口,用于HTTP服务器和其他机器通信的一种工具。传统CGI程序性能较弱,因此每次HTTP服务器遇到动态程序的时候,都需要重启解析器来执行解析,之后的处理结果才会返回给HTTP服务器。这样在高并发场景下访问几乎是太差劲了,因此诞生了FastCGI。
2023-05-11 19:41:38
1605
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人