![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础知识
文章平均质量分 79
本专栏用于记录Java基础相关知识
minh_coo
个人学习所用博客,用于记录个人学习过程中所遇的知识和问题。有问题欢迎一起探讨,欢迎批评指正!
展开
-
Spring响应式编程之Reactor操作符
操作符并不是响应式流规范的一部分,但为了改进响应式代码的可读性并降低开发成本,Reactor 库中的 API 提供了一组丰富的操作符,这些操作符为响应式流规范提供了最大的附加值。下面介绍一些常用的操作符。flatmap:将Mono中的值或Flux中的每个元素转换为另一个Mono或另一个Publisher,并展平结果;collectList: 将Flux中的所有元素收集到一个List中,返回Mono;window:将Flux中的元素分组到Flux中,每组包含指定数量的元素;原创 2024-06-23 21:11:53 · 1547 阅读 · 3 评论 -
Spring响应式编程之Reactor核心组件
Reactor 框架提供了两个核心组件来发布数据,分别是 Flux 和 Mono 组件。两者都是实现Publisher接口的高级抽象,可以说是应用程序开发过程中最基本的编程对象。二者都可以被onComplete信号或者onError信号所终止。原创 2024-06-23 21:09:40 · 418 阅读 · 0 评论 -
Spring响应式编程之Reactor核心接口
Subscription代表一种订阅上下文对象,用于管理Publisher和Subscriber之间的订阅关系。Subscription是确保发布者和订阅者针对数据处理速度达成一种动态平衡的基础,也是流量控制中实现背压机制的关键。Processo接口既可以是Publisher也可以是Subscriber,用于对数据流进行处理和转换。核心接口包括:Publisher、Subscriber、Subscription 和 Processor原创 2024-06-23 21:08:09 · 816 阅读 · 0 评论 -
Spring响应式编程之Reactor背压机制
在生产-发布模式下,由于事件处理平台大小有限制,生产者和消费者存在处理速度的差异,生产者不能持续不断的发布数据并推送,即流量控制问题。适用于消费者处理能力波动较大,需要动态调整处理速率的场景。背压机制简单理解,通过一种反馈机制来告知生产者当前消费者的处理能力,生产者动态调整数据生成的速率,确保消费者能够处理生产者产生的数据。丢弃(dropping):丢弃超出消费者处理能力的数据,只保留最新的数据或最重要的数据。最新(lastest):只保留最新的数据,丢弃旧的数据,确保消费者始终处理最新的数据。原创 2024-06-23 21:07:14 · 350 阅读 · 0 评论 -
Spring响应式编程之Reactor介绍
响应式编程(Reactive Programming)是一种面向数据流和变化传播的编程范式。Java中的Reactor是一个用于响应式编程的库,它建立在Reactive Streams规范之上,旨在帮助开发者构建非阻塞的、高效的、具有弹性的应用程序。原创 2024-06-23 21:06:15 · 993 阅读 · 0 评论 -
Java中的过滤器Filter和拦截器Interceptor
过滤器和拦截器在Java Web应用程序中,都用于请求处理过程中执行特定的操作。过滤器:从一堆东西中筛选出符合要求的,例如过滤敏感信息;拦截器:干预到一个请求当中,不符合可以直接终止,例如鉴权,qos设置。原创 2023-08-19 15:49:15 · 251 阅读 · 0 评论 -
JVM之jstat
jstat对程序的资源和性能进行实时的监控,用于查看heap size和垃圾回收情况。每隔1000ms打印10次gc信息。原创 2023-04-05 11:38:54 · 216 阅读 · 1 评论 -
JVM之jmap
jmap -F -dump:format=b,file= :如果进程没有响应,这个命令会强制生成一个堆内存快照,即使进程正在执行垃圾回收。生成一个堆内存快照。展示进程中所有等待被调用的finalize()方法的对象信息,包括对象的数量和占用内存等。jmap用于生成Java进程的内存快照(dump文件),查看进程堆内存的使用情况。展示Java Heap中对象的统计信息,包括:对象的数量,占用内存大小,类的全类名。原创 2023-04-05 11:33:29 · 367 阅读 · 0 评论 -
JVM之jstack
jstack是JVM当前时刻的线程快照,是JVM当前每一条线程正在执行的堆栈信息的集合。通过jstack命令可以获取Java应用程序运行时线程的状态、调用栈、锁状态等信息,以此来定位线程出现长时间停顿的原因,如线程死锁,线程阻塞等。信息中包含死锁具体位置和原因,便于定位问题。可以发现可能存在问题的代码行。原创 2023-04-05 11:26:37 · 159 阅读 · 0 评论 -
PowerMock的简单使用
在做ut时,发现要测试的方法会引用很多外部依赖的对象,就可能需要用Mock工具来模拟这些外部依赖的对象,来完成ut。PowerMock在EasyMock、Mockito等的基础上,增加了对static、final、private等方法的mock。PowerMock有两个十分重要的注解:@Runwith、@prepareForTest原创 2022-12-17 17:10:13 · 1907 阅读 · 0 评论 -
Java之PriorityQueue的用法
方法作用add();队尾插入元素,调整堆结构,失败时抛异常offer();队尾插入元素,调整堆结构,失败时抛falseremove();根据value值删除指定元素,调整堆结构,失败时抛异常poll();删除队头元素,调整堆结构,失败时抛nullelement();获取队列头元素peek();获取队列头元素clear();清空队列size();获取队列元素个数contains();判断队列中是否包含指定元素isEmpty();判断队列是否为空。原创 2022-10-23 12:01:41 · 6046 阅读 · 0 评论 -
Java之BigInteger的用法
BigInteger在Java中用于操作大整数,当一个数超过了Long表示的最大范围时就可以考虑使用BigInteger来操作。BigInteger的使用方法很多,也可以用于进制转换的一些操作,本文记录了一些BigInteger的常用方法。原创 2022-10-22 11:47:14 · 3063 阅读 · 0 评论 -
Java中反射的相关知识
目录反射1、定义2、Class类(1)获取字节码信息的方式(2)Class类的实例的种类3、获取相关信息(示例)4、补充反射代码举例:Class cls = Class.forName("..."); //获取具体类的字节码信息Object o = cls.newInstance(); //创建类对象Method method = cls.getMethod("...") //获取类对象的方法method.invoke(o); //使用该方法1、定义Java反射机制是在运行原创 2022-04-21 22:06:04 · 209 阅读 · 0 评论 -
Java中枚举类的相关知识
目录1、枚举类2、自定义枚举类3、使用enum关键字定义枚举类4、Enum类的常用方法5、枚举类实现接口6、应用举例1、枚举类枚举类的对象是有限个,确定的。通常用来定义一组常量,例如:季节、星期、性别等。2、自定义枚举类JDK1.5之前均需要自定义枚举类。如下,定义了一个枚举类:季节。public class Season { //属性 private final String seasonName; private final String seasonMonth;原创 2022-04-21 15:50:49 · 415 阅读 · 0 评论 -
Java中JUnit和注解的相关知识
目录一、JUnit单元测试1、JUnit介绍2、测试案例二、注解1、JUnit中的注解2、文档相关注解3、JDK内置的3个注解4、实现替代配置文件功能的注解三、元注解1、@Retention2、@Target3、@Documented4、@Inherited一、JUnit单元测试1、JUnit介绍JUnit是帮我们进行代码测试,平时我们要测试一段代码是否正确,就必须创建main()方法对其进行测试。JUnit大大简化了这个操作,可以使我们在不创建main()方法的情况下,对所要进行测试的方法进行测试原创 2022-04-21 14:40:16 · 482 阅读 · 0 评论 -
Java中网络编程的相关知识
目录一、InetAddress和InetSocketAddress二、套接字(Socket/DatagramSocket)1、基于TCP的网络编程2、基于UDP的网络编程一、InetAddress和InetSocketAddressInetAddress:Java中封装IP的一个类;InetSocketAddress:封装IP,端口号 //InetAddress ia = new InetAddress(); //不能直接创建对象,因为InetAddress()被default修饰原创 2022-04-20 21:31:24 · 401 阅读 · 0 评论 -
Java中多线程的相关知识
目录一、创建线程的三种方式1、继承Thread类2、实现runnable接口3、实现Callable接口二、线程的生命周期三、线程常用方法四、线程同步方式1、同步代码块方式2、同步方法方式3、Lock锁4、线程同步的优缺点五、线程通信1、未加线程同步之前2、加线程同步后(1)同步代码块的方式(2)同步方法的方式3、wait()和notify()方法4、进一步优化一、创建线程的三种方式1、继承Thread类新建一个类,当这个类继承Thread类,同时重写Thread类中的run方法,并且线程的任务/逻辑原创 2022-04-20 11:34:52 · 318 阅读 · 0 评论 -
java中IO流的相关知识
目录一、背景二、IO流的分类三、字符流操作相关代码示例1、FileReader读取文件内容2、FileWriter向文件写数据3、实现文件内容复制4、注意事项5、利用try-catch-finally处理异常四、字节流操作相关代码示例1、用字节流读取文本文件操作(不建议)2、读图片文件3、非文本文件内容的复制五、缓冲字节流(-->处理流)六、缓冲字符流(-->处理流)七、转换流(-->处理流)八、System类1、System.in2、System.out九、数据流(-->处理流)十原创 2022-04-18 18:40:23 · 249 阅读 · 0 评论 -
Java中集合类的相关知识(二)
目录Map接口1、HashMap实现类2、Hashtable实现类3、TreeMap实现类Map接口Map接口常用方法:增加:put(K key, V value)删除:clear(); remove(Object key)查看:entrySet(); get(Object key); keySet(); size(); values()判断:containsKey(Object key); containsValue(Object value); equals(Object o); isEm原创 2022-04-16 18:13:21 · 667 阅读 · 0 评论 -
Java中集合类的相关知识(一)
目录一、Collection接口1、List接口(1)ArrayList实现类(2)Vector实现类(3)二者联系与区别一、Collection接口Collection接口常用方法:增加:add(E e); addall(Collection<? extends E> c)删除:clear(); remove(Object o)查看:iterator(); size()判断:contains(Object o); equals(Object o); isEmpty()遍历方式原创 2022-04-16 10:19:46 · 915 阅读 · 0 评论 -
Java的泛型相关知识
目录一、泛型二、自定义泛型结构1、泛型类的定义和实例化2、继承(1)父类指定泛型(2)父类不指定泛型3、一些细节问题4、泛型方法5、泛型参数存在继承关系的情况6、通配符7、泛型受限一、泛型没有使用泛型之前,若向集合中添数据,可以添加的是任意引用类型的数据。如下: //al:一个存放学生成绩的集合 ArrayList al = new ArrayList(); al.add(11); al.add(10); al.add('c'); al.add("oo");此时会使得这个集合达不到预期只原创 2022-04-14 17:33:14 · 938 阅读 · 0 评论 -
Java中保存表格数据的方式
Java用于保存表格数据的两种方式原创 2022-04-12 16:09:47 · 1388 阅读 · 0 评论 -
内部类的基本概念和用法
Java内部类的基本概念原创 2022-04-12 11:28:26 · 158 阅读 · 0 评论 -
接口的相关知识
Java的接口相关知识原创 2022-04-11 21:30:16 · 269 阅读 · 0 评论 -
抽象方法、抽象类
目录一、抽象方法二、抽象类三、抽象类的使用要点四、代码示例一、抽象方法1、使用abstract修饰的方法,没有方法体,只有声明;2、定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现;二、抽象类包含抽象方法的类就是抽象类。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。三、抽象类的使用要点1、有抽象方法的类只能定义为抽象类;2、抽象类不能实例化,即不能用new来实例化抽象类;3、抽象类可以包含属性、方法、构造方法,但构造方法不能用来new实例;4、原创 2022-04-11 19:45:12 · 492 阅读 · 0 评论