Java
文章平均质量分 73
Java学习笔记
用晦而明.
路漫漫其修远兮,吾将上下而求索!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习笔记092——Windows如何将 jar 包启动设置成系统服务
本文介绍了使用WinSW工具将Java Jar包注册为Windows服务的方法。主要内容包括:1) 下载WinSW-net4.exe并重命名为与Jar包同名;2) 创建同名XML配置文件,配置服务参数、JVM参数、日志设置等;3) 强调Jar包、exe和XML文件必须同名;4) 提供安装步骤:管理员权限下执行uninstall、install和start命令。通过WinSW可以方便地将Java应用作为系统服务运行,并支持内存配置、日志管理等实用功能。原创 2025-09-30 15:54:53 · 223 阅读 · 0 评论 -
学习笔记091——如何实现web登录时,密码复杂度校验?(后端)
【代码】学习笔记091——如何实现web登录时,密码复杂度校验?(后端)原创 2025-08-12 10:50:25 · 283 阅读 · 0 评论 -
学习笔记087——Java接口和抽象类的区别和使用
【代码】学习笔记087——Java接口和抽象类的区别和使用。原创 2025-06-11 10:24:43 · 496 阅读 · 0 评论 -
学习笔记086——@PostConstruct注解和InitializingBean接口的使用
是 Java EE/Jakarta EE 中的一个注解,用于标记一个方法在依赖注入完成后执行初始化操作。它通常与 Spring 框架一起使用,适用于需要在对象初始化时执行特定逻辑的场景。初始化方法:标注的方法会在以下两个操作完成后被调用:依赖注入(DI)完成:Spring 容器完成对 Bean 的属性注入(如 @Autowired、@Value 等)。Bean 实例化:Bean 对象被创建后。原创 2025-06-11 10:06:33 · 584 阅读 · 0 评论 -
学习笔记083——Java Stream API
Java中list.stream()是 Java 8引入的Stream API。本文是自己的学习笔记原创 2025-04-09 15:26:57 · 577 阅读 · 0 评论 -
学习笔记079——数据结构之【树】
*树(Tree)**是n(n>=0)个结点的有限集。n=0时称为空树。有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一个根结点。子树的个数没有限制,但它们一定是互不相交的。示例树:下图为一棵普通的树:图2.1 普通树由树的定义可以看出,树的定义使用了递归的方式。二叉树。原创 2025-01-02 17:06:35 · 1077 阅读 · 0 评论 -
学习笔记078——Java Properties类使用详解
Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串。Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。我们在很多需要避免硬编码的应用场景下需要使用properties文件来加载程序需要的配置信息,比如 JDBC、MyBatis框架等。原创 2025-01-02 16:58:16 · 843 阅读 · 0 评论 -
学习笔记075——编码和加密
可以将任意的二进制数据进行Base64编码。数据加密之后,数据量会变大,变大1/3左右。编码后有个非常显著的特点,末尾有个=号。可进行反向解密。Base64编码具有不可读性MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代。原创 2024-12-26 12:54:49 · 800 阅读 · 0 评论 -
学习笔记073——Java中的【Object】和【包装类】
Java 通过类来构建代码的结构,类分为两种:1、Java 提供的工具类,不需要开发者自定义的类,可以直接调用。2、开发者自定义的类。Java 程序 = JDK 类库+开发者自定义类+第三方框架Object 就是 JDK 提供的一个类,并且它很特殊,它是所有类的根节点,Java 中的所有类包括 JDK 提供,以及开发者自定义的,第三方框架的所有内容都属于 Object 的派生类。hashCode:每一个 Java 对象都有自己的 hashCode,什么是 hashCode。原创 2024-12-16 09:24:31 · 911 阅读 · 0 评论 -
学习笔记072——Java中的【JUC 并发编程】
并行和并发并发是指多线程操作同一个资源,但不是同时操作,而是交替操作,单核 CPU。并行才是真正的多个线程同时执行,多核 CPU,每个线程使用一个 CPU 的资源来运行。我们所说的并发其实是一种程序的设计标准,在单核 CPU 的情况下,开发出来的代码应该更加充分利用资源,有效提升程序的效率。编写出来的代码具备处理多个任务在同一时间段内执行的能力。高并发是互联网分布式系统架构设计中必须要考虑的因素之一,它是指通过设计保证系统在互联网海量用户请求的情况下,能够确保系统正常运行。原创 2024-12-15 11:53:05 · 1125 阅读 · 0 评论 -
学习笔记071——Java中的【线程】
在同一个进程中,多个线程同时执行,这里的同时执行是一个假象,并不是真正的同时执行。系统会为每个线程分配 CPU 资源,在某个具体的时间段内 CPU 资源会被某个线程所占用,在下一个时间段内被另外一个线程所占用,多个线程交替占用 CPU 资源,因为线程运行速度很快,所以看起来是同时在执行的。i < 10;i++) {Java 程序的 main 方法就是一个主线程,无论在 main 方法中创建多个对象,调用多少个方法,它们都是单线程,有主线程来依次排队完成多个任务的执行。原创 2024-12-15 10:43:27 · 963 阅读 · 0 评论 -
学习笔记070——Java中【泛型】和【枚举】
Generics 是指在定义类的时候不指定类中某个信息(属性/方法返回值)的具体数据类型,而是用一个标识符来替代,当外部实例化对象的时候再来指定具体的数据类型。实现泛型接口有两种方式,一种是实现类在定义时继续使用泛型标识,另一种时实现类在定义时直接给出具体的数据类型。实现类给出具体的数据类型,在具体实例化的时候不需要给出具体的数据类型。我们在定义类的时候可以使用泛型,定义接口的时候同样可以使用泛型。实现类继续使用泛型,在具体实例化的时候需要给出具体的数据类型。2、实现类给出具体的数据类型。原创 2024-12-14 22:15:22 · 682 阅读 · 0 评论 -
学习笔记069——Java集合框架
LinkedList 实现了链表的数据结构,“先进先出”,元素的存储空间是不连续的,随机分散在内存中的,元素和元素之间通过存储彼此的位置信息来形成连接关系,通过位置信息找到前后节点的关系。ArrayList 实现了长度可变的数组,可以在内存中分配连续的空间,底层是基于索引的数据结构,所以查询效率很高,缺点是添加或删除数据效率较低,需要完成元素的移动。优势是增删效率高,缺点是查询效率低,与 ArrayList 形成对比,它们的特性都是由于底层的存储结构决定的。原创 2024-12-14 22:11:43 · 1166 阅读 · 0 评论 -
学习笔记068——Hibernate框架介绍以及使用方法
文章目录一、如何使用二、具体操作1、创建 Maven 工程,pom.xml2、hibernate.cfg.xml3、创建实体类4、创建实体关系映射文件5、实体关系映射文件注册到 Hibernate 的配置文件中。6、使用 Hibernate API 完成数据操作。7、pom.xml 中需要配置 resource三、Hibernate 级联操作1、一对多关系2、多对多关系四、Hibernate 实现一对多五、Hibernate 实现多对多六、Hibernate 延迟加载1、一对多2、多对多七、Hibernat原创 2024-12-12 16:42:09 · 2371 阅读 · 0 评论 -
学习笔记065——Java实现 Word 转 PDF
方法有很多,本人是通过使用 Aspose.Words 库的方式来转换。Aspose.Words 库它是一个商业 Java 库,是专用于处理 Microsoft Word 文档。项目中,需要将word导出成pdf,方便前端展示给用户预览。但是本人的maven镜像无论是换成阿里的还是官方的,都无法通过该方法自动导入依赖。下载本地后,手动导入maven本地仓库。然后通过pom文件写入依赖就好了。这时候,就得需要通过Java程序来实现word转PDF了。首先项目的pom文件导入依赖。原创 2024-12-10 08:54:07 · 671 阅读 · 0 评论 -
学习笔记059——JavaWeb
当服务器接收到⼀个后缀是 jsp 的请求时,将该请求交给 JSP 引擎去处理,每⼀个 JSP ⻚⾯第⼀次被访问的时候,JSP 引擎会将它翻译成⼀个 Servlet ⽂件,再由 Web 容器调⽤ Servlet 完成响应。服务器⽆法识别每⼀次 HTTP 请求的出处(不知道来⾃于哪个终端),它只会接受到⼀个请求信号,所以就存在⼀个问题:将⽤户的响应发送给其他⼈,必须有⼀种技术来让服务器知道请求来⾃哪,这就是会话技术。原创 2024-12-05 12:42:51 · 862 阅读 · 0 评论 -
学习笔记058——Java中的【线程】
在同一个进程中,多个线程同时执行,这里的同时执行是一个假象,并不是真正的同时执行。系统会为每个线程分配 CPU 资源,在某个具体的时间段内 CPU 资源会被某个线程所占用,在下一个时间段内被另外一个线程所占用,多个线程交替占用 CPU 资源,因为线程运行速度很快,所以看起来是同时在执行的。i < 10;i++) {Java 程序的 main 方法就是一个主线程,无论在 main 方法中创建多个对象,调用多少个方法,它们都是单线程,有主线程来依次排队完成多个任务的执行。原创 2024-12-05 10:11:42 · 1258 阅读 · 0 评论 -
学习笔记053——实现WebSocket
继承TextWebSocketHandler。实现HandshakeInterceptor。原创 2024-12-03 21:08:38 · 458 阅读 · 0 评论 -
学习笔记049——Java字符流
字符流是有别于字节流的另一种数据流,两者的区别在于每次处理的数据单位不同,一个是以字节为单位进行处理,另一个是以字符为单位进行处理,相当于用两根不同粗细的管子抽水。IO 流实现,文本类型可以使用字符流,除了文本类型之外的其他类型,不能使用字符流,只能使用字节流去处理,因为使用字符流会破坏其内部构成,导致文件无法使用。不能直接访问文件的就是处理流(缓冲流),必须基于节点流,构造处理流的时候必须将节点流作为参数传入到处理流中。缓冲流属于处理流,不能直接访问文件。 字节输入缓冲流 字节输出缓冲流。原创 2024-12-03 11:16:53 · 573 阅读 · 0 评论 -
学习笔记048——Java字节流
java.io.File 类专门用来创建文件对象的,表示某个文件。输入:将文件以数据流的形式读取到 Java 程序中,上传。输出:通过 Java 程序将数据流写到文件中,下载。Java 程序是如何操作文件的?Java 中的流有很多种分类。(InputStream)和。字节流又可以按照方向分为。原创 2024-12-03 11:14:04 · 886 阅读 · 0 评论 -
学习笔记044——HashMap源码学习2
尽管如此,取到的值仍然很可能超过数组下标,所以为了保证绝对的安全性,拿到 hash 值之后,再与数组的最大索引(15)进行按位与运算(都为1返回1,否则返回0)得到索引。int 的取值范围是 -21 亿- 21 亿,40 亿种可能,而数组的默认长度为 16,远远小于 hash 可取值的范围,所以很有可能多次求出的下标根本不能用。3、如果链表很长的话,会影响到元素的查询速度,为了提高查询速度,引入了红黑树(平衡二叉树),当链表长度大于 8 的时候,自动转换成红黑树。而要进行复杂的运算呢?原创 2024-11-29 15:26:32 · 505 阅读 · 0 评论 -
学习笔记043——HashMap源码学习1
红黑树是一个平衡二叉树红黑树1、结点是红色或者黑色2、根节点是黑色的3、每个叶子节点都是空节点4、每个红色节点的两个子节点都是黑色的5、从任一节点到它的每个叶子节点的所有路径都包含相同数目的黑色节点哈希冲突:key 所映射的 hash 一样HashMap 源码从构造器入手来看并没有创建数组,而是给加载因子赋值 = 0.75,加载因子是用来完成数组扩容的。只有在添加数据的时候才会创建数组,HashMap 是懒加载的形式。原创 2024-11-29 15:23:00 · 580 阅读 · 0 评论 -
学习笔记038——Java类中代码的执行顺序
System.out.println("User类的无参构造执行");System.out.println("main执行............");static {System.out.println("static执行");静态代码的执行一定先于 main 方法,静态代码块和静态成员变量的执行顺序是由代码位置决定的,谁写前面就先执行谁。原创 2024-11-27 08:34:59 · 573 阅读 · 0 评论 -
学习笔记037——Java中【Synchronized锁】
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;4. 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所原创 2024-11-27 08:27:43 · 622 阅读 · 0 评论 -
学习笔记036——Java中【注解与反射】
Annotation是从 JDK5.0 开始引入的新技术。Annotation的作用:不是程序本身,可以对程序做出解释。(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取。Annotation的格式:以 “@注解名” 在代码中存在的,还可以添加一些参数值。如:@SuppressWarnings(value=“unchecked”)Annotation在哪里使用?在 package、class、method、field 等上面使用。原创 2024-11-26 15:35:36 · 910 阅读 · 0 评论 -
学习笔记023——Ubuntu中设置Java项目的 jar 包自启动
背景:有个需求,Ubuntu服务器中,虽有Java环境,但是没有tomcat。想要运行jar包,只能通过java -jar命令了。但是我希望当Java服务停止,或者服务器重启时,我的java服务能够尝试自启动。思路:通过Ubuntu自带的crontab,来定时运行我手动写的守护脚本不就好了吗?说干就干,上代码。原创 2024-11-15 10:57:33 · 1026 阅读 · 0 评论 -
学习笔记002——Java后端解决跨域问题
无聊整理~原创 2022-06-22 21:22:21 · 288 阅读 · 0 评论 -
学习笔记016——将所需内容转为二维码,并生成Base64图片
获取文件下载地址的二维码,可使用户通过手机扫描下载。2、将地址通过工具类转为二维码图片。3、将图片转Base64返给前端。原创 2024-11-02 20:33:07 · 326 阅读 · 0 评论
分享