
java
文章平均质量分 53
沐雪架构师
专注于 AI人工智能 | AI大模型开发 | 软件架构 | 软件技术
展开
-
idea中工程Language Level自动变到5问题解决
我的解决方案是 修改maven的settings.xml文件。原创 2023-03-06 21:49:09 · 677 阅读 · 0 评论 -
Java虚拟机JVM-面试题
在编译生成的字节码中,每个方法都附带一个异常表。异常表中的每一个条目代表一个异常处理器,并且由 from 指针、to 指针、target 指针以及所捕获的异常类型构成。这些指针的值是字节码索引(bytecode index,bci),用以定位字节码。其中,from 指针和 to 指针标示了该异常处理器所监控的范围,例如 try 代码块所覆盖的范围。target 指针则指向异常处理器的起始位置,例如 catch 代码块的起始位置。原创 2023-03-05 20:36:06 · 496 阅读 · 0 评论 -
Java虚拟机JVM-运行时数据区域说明
HotSpot虚拟机中含有两个即时编译器,分别是编译耗时短但输出代码优化程度较低的客户端编译器(简称为C1)以及编译耗时长但输出代码优化质量也更高的服务端编译器(简称为C2),通常它们会在分层编译机制下与解释器互相配合来共同构成HotSpot虚拟机的执行子系统。自JDK 10起,HotSpot中又加入了一个全新的即时编译器:Graal编译器,看名字就可以联想到它是来自于前一节提到的Graal VM。Graal编译器是以C2编译器替代者的身份登场的。原创 2023-03-05 13:22:05 · 680 阅读 · 0 评论 -
Netty入门学习笔记3-异步提升的是什么
单线程没法异步提高效率,必须配合多线程、多核 cpu 才能发挥异步的优势。异步提升的是吞吐量:单位时间内处理请求的数据量,而非提升相应相应时间。异步并没有缩短响应时间,反而有所增加。合理进行任务拆分,也是利用异步的关键。原创 2023-02-26 17:48:02 · 319 阅读 · 0 评论 -
Netty入门学习笔记2-核心组件Channel
把 channel 理解为数据的通道。原创 2023-02-26 14:54:16 · 431 阅读 · 0 评论 -
Netty入门学习笔记2-核心组件EventLoop
EventLoopGroup 是一组 EventLoop,Channel 一般会调用 EventLoopGroup 的 register 方法来绑定其中一个 EventLoop,后续这个 Channel 上的 io 事件都由此 EventLoop 来处理(保证了 io 事件处理时的线程安全) (EventLoopGroup 可翻译为 事件循环组 )EventLoop 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。原创 2023-02-25 17:12:48 · 501 阅读 · 0 评论 -
Netty入门学习笔记1-定义
Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端。原创 2023-02-25 17:07:10 · 688 阅读 · 0 评论 -
java网络编程-nio学习:阻塞和非阻塞
阻塞模式下,相关方法都会导致线程暂停ServerSocketChannel.accept 会在没有连接建立时让线程暂停SocketChannel.read 会在没有数据可读时让线程暂停阻塞的表现其实就是线程暂停了,暂停期间不会占用 cpu,但线程相当于闲置单线程下,阻塞方法之间相互影响,几乎不能正常工作,需要多线程支持但多线程下,有新的问题,体现在以下方面。原创 2023-02-20 10:54:26 · 670 阅读 · 0 评论 -
java-NIO学习-字符串存入ByteBuffer的几种方法
ByteBuffer 有以下重要属性capacitypositionlimit一开始写模式下,position 是写入位置,limit 等于容量,下图表示写入了 4 个字节后的状态flip 动作发生后,position 切换为读取位置,limit 切换为读取限制读取 4 个字节后,状态clear 动作发生后,状态compact 方法,是把未读完的部分向前压缩,然后切换至写模式。原创 2023-02-18 17:38:57 · 510 阅读 · 0 评论 -
java对文件的批量处理的demo方法
java对文件的批量处理的demo方法原创 2023-02-17 00:30:00 · 470 阅读 · 0 评论 -
springboot与maven的多环境兼容解决方案
(2)每个环境profile我们添加多个属性值,这个值可以在application.yml/application.properties等配置文件中使用,比如我们这配置的pom.profile,这个名字可以自定义;配置了3个环境,spring.profiles(或spring.config.activate.on-profile)配置的值对应的环境。二、继续在pom.xml里配置,在build里添加插件,让pom.xml里的属性值可以在其他地方使用。这个占位符就是从pom.xml的环境属性中获取的。原创 2022-10-07 17:13:51 · 999 阅读 · 0 评论