![](https://img-blog.csdnimg.cn/409bb063f6ba4e6eafbd9ceaa1f00724.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 82
笔记记录
lucky_fd_
这个作者很懒,什么都没留下…
展开
-
Spring WebSocket实现实时通信的详细教程
WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的,必须是客户端主动触发的行为,服务端只是做好接口被动等待请求。而在某些场景下的动作,是需要服务端主动触发的,比如向客户端发送消息、实时通讯、远程控制等。原创 2024-01-18 20:00:00 · 1780 阅读 · 1 评论 -
深入解析HashMap的优雅之处
HashMap基本介绍:1. Hashmap底层数据结构原理2. HashMap的树化规则与意义3. HashMap的扩容机制介绍4. HashMap索引的计算方式5. HashMap插入数据源码分析原创 2023-09-26 21:00:00 · 237 阅读 · 0 评论 -
Java 时间日期处理,工作必用(建议收藏)
工作中经常会遇到对时间日期进行处理的业务,像日期类的API个人觉得不需要背,需要的时候去查资料就行。日期时间格式化处理、日期对象类相互转换,计算日期时间间隔等方法原创 2023-08-26 20:00:00 · 2260 阅读 · 0 评论 -
Java 强制类型转换原理(父类转子类、子类转父类)
在Java中,对象的强制转换(也称为类型转换)是将一个对象的引用转换为另一个类的引用,前提是这两个类之间存在继承或实现关系。强制转换可能会导致运行时异常,因为在转换的过程中,如果对象的实际类型与转换的目标类型不兼容,就会抛出ClassCastException异常。原创 2023-07-24 18:30:00 · 6580 阅读 · 0 评论 -
Java 反射机制
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象 (一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射。原创 2023-04-30 22:39:57 · 1957 阅读 · 0 评论 -
Java 静态代理与动态代理全面讲解
静态代理和动态代理都是代理模式的具体实现,它们都可以增强类的功能,但是实现方式不同。静态代理在编译期间已经确定了代理类的代码,适合代理少量的类;动态代理在运行时动态生成代理类的代码,适合代理大量对象或者不确定代理哪个类的情况。Java中的静态代理需要手动编写代理类的代码,不够灵活,但是效率较高;动态代理不需要手动编写代理类的代码,比较灵活,但是效率较低。Java中的静态代理和动态代理都是基于接口的代理,因此被代理类必须实现接口。动态代理在Java中是通过反射机制实现的,反射机制会带来一定的性能开销。原创 2023-04-28 17:19:38 · 2337 阅读 · 0 评论 -
java8 stream List集合的常用流操作
filter方法用于通过设置条件过滤出满足条件的元素。以下代码片段使用filter方法过滤出空字符串。count 方法用于统计集合内对象的数量,以下代码片段使用filter方法过滤出空字符串并计数。distinct 方法用于去掉重复数据。以下代码片段使用filter方法过滤出空字符串并去重。sorted方法用于对流进行排序。以下代码片段使用sorted方法对集合中的数字进行排序。分组的字段按照TreeMap的规则进行排序放入Map,底层是TreeMap。map方法用于映射每个元素到对应的结果。原创 2023-03-27 12:03:10 · 3002 阅读 · 0 评论 -
java IO流的使用
1.抽象基类InputStreamOutputStreamReaderWriter2.节点流(或文件流)FileInputStreamFileOutputStreamFileReaderFilewriter3.缓冲流(处理流的一种)BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter原创 2023-03-22 09:37:16 · 269 阅读 · 0 评论 -
Java集合:Map的使用
Map中的key:无序的、不可重复的,使用Set存储所有的key ---》 key所在的类要重写equals()和ashode() (以HashMap为例。Map 中的value:无序的、可重复的,使用Collection存储所有的alue --->value所在的类要重写equals()|----TreeMap:保证按照添加的key-value 对进行排序,实现序遍历。l----Map:双列数据,存储key-value对的数据 ---类似于高中的函数: y = f(x)3.HashMap的底层实现原理?原创 2023-02-14 15:27:28 · 833 阅读 · 0 评论 -
工厂设计模式
基本概念:为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。分为三类:简单工厂模式:不利于产生系列产品;工厂方法模式:又称为多形性工厂;抽象工厂模式:又称为工具箱,产生产品族,但不利于产生新的产品;原创 2023-02-10 14:44:27 · 341 阅读 · 0 评论 -
Java集合:Collection的使用
一、java集合概述1.集台、数组都是对多个数据进行存储操作的结构,简称java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储 (.txt,jpg,avi,数据库)2. 数组在存储多个数据方面的特点:一旦初始化以后,其长度就确定了。数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了比如: Stringl] arr;int[] arr1;数组存储的数据有序、可重复。2. 数组在存储多个数据方面的缺点:一旦初始化以后,其长度就不可修改。原创 2023-02-06 21:03:42 · 1634 阅读 · 1 评论 -
Java 异常处理Exception
一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会被抛出。3.1 如果父类中被重写的方法没有throws方式处理异常,则子类重写的方法也不能使用throws,意味着如果子类重写的方法中有异常,必须使用try-catch-finally方式处理。2.使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象,根据此对的类型,去catch中进行匹配。|---java.lang.Exception:可以进行异常的处理。原创 2023-02-06 11:40:03 · 374 阅读 · 0 评论 -
java interface接口的使用
3.1 JDK7及以前,只能定义全局常量和抽象方法全局常量: public static final的。但是书写时,可以省略不写抽象方法:public abstract的3.2 JDK8,除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。我们经常在相互一起使用的类中使用静态方法。你可以在标准库中找到像Collection/Collections或者Path/Paths这样成对的接口和类。默认方法。原创 2023-02-06 11:27:25 · 547 阅读 · 0 评论 -
Java关键字:static final abstract的使用
此类不能实例化抽象类中一定有构造器,便于子类实例化时调用《涉及,子类对象实例化的全过程)v>开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作a. 抽象方法只有方法的声明,没有方法体b. 包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法。c. 若子类重写了父类中的所有的抽象方法后,此子类方可实例化;若子类没有重写父类中的所有的抽象方法,则此子类也是一个抽象类,需要使用abstract修饰a. abstract不能用来修饰:属性、构造器等结构。原创 2023-02-06 11:10:19 · 258 阅读 · 0 评论 -
Java 注解(Annotation)
Retention: 指定所修饰的 Annotation 的生命周期: SOURCE\CLASS (默认行为)\RUNTIME只有声明为RUNTIME生命周期的注解,才能通过反射获取。3.Annotation 可以像修饰符一样被使用,可用于修饰包,类,构造器方法,成员变量,参数,局部变量的声明,这些信息被保存在 Annotation的“name=value”对中。**********出现的频率较低**************如果注解有成员,在使用注解时,需要指明成员的值,原创 2023-01-05 20:40:36 · 462 阅读 · 0 评论 -
枚举类的使用
1.枚举类的理解:类的对象只有有限个,确定的。3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。说明:定义的枚举类默认继承于java.Lang.Enum类。方式二: jdk5.0,可以使用enum关键字定义枚举类。四、使用enum关键字定义的枚举类实现接口的情况。情况二: 让枚举类的对象分别实现接口中的抽象方法。2.当需要定义一组常量时,强烈建议使用枚举类。情况一:实现接口,在enum类中实现抽象方法。方式一: jdk5.0之前,自定义枚举类。三、Enum类的主要方法。原创 2023-01-05 20:32:09 · 177 阅读 · 0 评论 -
单例(Singleton)设计模式
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。并且该类只提供一个取得其对象实例的方法如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。原创 2022-12-29 15:11:07 · 483 阅读 · 0 评论 -
java比较器:Comparable和Comparator
当元素的类型没有实现java.Lang.Comparable接口而又不方便修改代码或者实现了java.Lang.Comparable接口的排序规则不适合当前的操作,那么可以考虑使用 Comparator 的对象来排序。4.对于自定义类来说,如果需要排序,我们可以让自定义类实现Comparable接口,重写compareTo(Object obj)1.像string、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。返回负整数,表示o1小于o2。原创 2022-12-29 13:56:48 · 652 阅读 · 0 评论 -
Java 日期和时间接口 Date-Time API
1.System类中的currentTimeMillis()2.Java.util.Date类|---java.sql.Date类3.SimpleDateFormat的使用: simpleDateFormat对日期Date类的格式化和解析4.Calendar日历类(抽象类)的使用5.LocalDate、LocalTime、LocalDateTime 的使用说明:6.Instant类的使用7.DateTimeFormatter:式化或解析日期、时间原创 2022-12-29 13:31:10 · 1445 阅读 · 0 评论 -
多线程的创建和使用(4种)
方式一:继承于Thread类方式二:实现Runnable接口方式三:实现Callable接口方式四:使用线程池进程可以细化为多个线程。每个线程,拥有自己独立的: 栈、程序计数器。多个线程,共享同一个进程中的结构:方法区、堆。并行与并发并行:多个CPU同时执行多个任务。比如:多个人同时做不同的事并发:一个CPU(采用时间片)同时执行多个任务。比如:秒杀、多个人做同一件事原创 2022-12-29 12:08:39 · 491 阅读 · 0 评论