Java
文章平均质量分 54
Java 基础知识
陈振阳
我翻开历史一查,这历史没有年代,歪歪斜斜的每页上都写着仁义道德四个字。我横竖睡不着,又仔细看了半夜,才从字缝缝里看出字来。满页都写着两个字是,吃人。
展开
-
dma 和 mmap 的区别和联系
DMA和mmap是两种不同层次的技术,前者是硬件机制,后者是操作系统提供的系统调用。它们各自适用于不同的场景,但都旨在提高系统的 I/O 效率。在特定场景下,它们也可以结合使用,以最大化性能。原创 2024-08-27 12:23:10 · 701 阅读 · 0 评论 -
java nio AsynchronousChannel
提供了异步非阻塞的 I/O 操作方式,适用于高性能和高并发的场景。通过Future或,开发者可以在 I/O 操作完成后进行相应的处理,而无需阻塞线程等待 I/O 操作完成。原创 2024-08-24 09:56:11 · 546 阅读 · 0 评论 -
Java nio Pipe 结合 Select
和Selector的结合使得可以在一个线程中高效地处理多个Channel的 I/O 事件,尤其适合需要管理大量并发连接或线程间高效通信的场景。原创 2024-08-24 07:32:51 · 417 阅读 · 0 评论 -
Java nio pipe 相似的 api
高性能应用: 当你需要在高并发的应用中进行线程间通信时,Pipe提供了比传统更高的性能。低级别数据处理Pipe允许你直接处理字节数据,而不依赖于高级抽象,适合需要对传输数据进行细粒度控制的场景。线程间直接通信: 对于不需要网络协议的本地线程间通信,Pipe提供了一个简洁且高效的解决方案。原创 2024-08-24 07:17:51 · 455 阅读 · 0 评论 -
Java nio pipe 通信原理
是基于缓冲区和通道实现的单向通信机制。它利用了非阻塞 I/O 的优势,可以在不依赖操作系统底层管道机制的情况下实现线程间的高效通信。这种机制非常适合在需要在不同线程之间传递数据的场景中使用,尤其是在需要高性能、低延迟通信的应用中。原创 2024-08-24 07:16:46 · 480 阅读 · 0 评论 -
Java nio Pipe 怎么用?
中的Pipe是一个用于在两个线程之间传输数据的通信机制。Pipe有点类似于 Unix/Linux 中的管道(pipe),它提供了一个单向的数据通道,可以让一个线程向其中写入数据,而另一个线程从中读取数据。原创 2024-08-24 07:15:13 · 393 阅读 · 0 评论 -
Java Remote Method Invocation (RMI) Architecture
Java Remote Method Invocation (RMI) Architecture原创 2022-10-31 16:44:32 · 407 阅读 · 0 评论 -
Java Remote Method Invocation (RMI)
分析 UnicastServerRef # exportObject 得知,exportObject 返回的对象,是使用 JDK 动态代理创建的对象,从 RemoteObjectInvocationHandler 可以看出,这个代理对象的能力是,将对这个代理对象的方法调用,通过 RemoteObject 持有的 UnicastRef 对象的 invoke 方法启动本地 Socket 与远程对象的交互,从而得到远程对象的执行结果。怎么实现这个目标的?)其他的都是给 RMI Server 用的?原创 2022-10-30 23:54:21 · 801 阅读 · 0 评论 -
jdk.internal.jvmstat 简介
这个模块:Defines an internal API for monitoring a HotSpot Java Virtual Machine using its shared memory instrumentation buffer。其核心接口 sun.jvmstat.monitor.MonitoredVm 提供对一个操作被监控的 Virtual Machine 的操作;jdk.internal.jvmstat 模块是 jdk.attach,原创 2022-10-22 16:26:55 · 853 阅读 · 0 评论 -
jps 是怎么查出本地的java进程的
jdk.internel.jvmstat 模块中的 LocalVmManager 通过遍历这些文件的方式列出本地的所有java进程。比如我本地环境:第一个红框就是我本地的存放java进程文件的目录,第二个红框是其中一个文件;java进程启动时会在特定文件夹产生一个文件,原创 2022-10-22 13:17:42 · 575 阅读 · 0 评论 -
Tips & Tricks: Develop OpenJDK in CLion with Pleasure
亲测可用。原创 2022-10-02 13:26:49 · 495 阅读 · 0 评论 -
JavaMelody监控Spring Service层和Spring Controller层
1.SQL层的配置比较简单在使用Spring IOC和Spring MVC的时候都使用了POJO的风格,没有公共的抽象父类,也没有公共的接口;阅读JavaMelody的文档,其提供了注解风格的解决方案;2.监控Service层注解POJO风格的类实现AOP, 其实就是使用了Aspect; 首先web.xml的配置如下:原创 2016-03-29 22:09:15 · 4913 阅读 · 1 评论 -
JDBC Connection Reset问题分析
2014年7月13日 半年前开始,项目组测试MM在验证功能时,经常报怨讲测试环境上的应用在启动时很慢,偶尔会报失败,遇到类似问题多数情况下重新启动一次就可以启动成功,但少数时候也有反复启动不成功的案例。当启动失败时,日志里有如下的异常,看起来似乎和网络有关。java.sql.SQLRecoverableException: I/O Exception: Connection resetat转载 2017-12-27 21:08:06 · 8001 阅读 · 0 评论 -
Reactive Java 技术栈
Java的纤程库https。原创 2022-07-27 16:35:25 · 496 阅读 · 0 评论 -
openjdk16 concurrenthashmap 源码解析
红黑树衔接扩容时的Node数据;扩容相关。原创 2022-07-27 16:33:16 · 989 阅读 · 0 评论 -
Java Unsafe数据变量操作
_volatile__是GCC关键字volatile的宏定义;向GCC声明不允许对该内联汇编优化,否则当使用了优化选项(-O)进行编译时,GCC将会根据自己的判断决定是否将这个内联汇编表达式中的指令优化掉。是GCC关键字asm的宏定义;用来声明一个内联汇编表达式,所以任何一个内联汇编表达式都是以它开头的;...原创 2022-09-27 21:12:46 · 1186 阅读 · 0 评论 -
jdk16中并发包里cas的底层实现
_volatile__是GCC关键字volatile的宏定义;向GCC声明不允许对该内联汇编优化,否则当使用了优化选项(-O)进行编译时,GCC将会根据自己的判断决定是否将这个内联汇编表达式中的指令优化掉。是GCC关键字asm的宏定义;用来声明一个内联汇编表达式,所以任何一个内联汇编表达式都是以它开头的;...原创 2022-07-27 16:30:45 · 644 阅读 · 0 评论 -
wsl下jdk+wsl调试环境
linux编译调试环境,必须基于bash,在windows环境下不行;只能基于windowscgwinwsl等;编译,导入ide等操作全部在jdk/doc目录下的build和ide文件中。原创 2022-07-27 16:29:57 · 1473 阅读 · 0 评论 -
Java 中使用 windows-kill 模拟 ctrl+c 信号结束进程
比如使用JavaProcess启动了一个宿主机进程,如果想要关闭他,不能使用JavaProcessdestory()方法,这样关掉后,宿主机程序可能还在,要使用宿主机本身的方式与此进程沟通。Windows下有与kill命令类似的taskkill.exe,但是无法达到发送特定信号的目的。那如果想在Windows下给进程发送Ctrl+C信号或者CTR+Break信号怎么办呢?Java中运行宿主机上的可执行程序时,需要完全按照宿主环境的规则才能达到最大的效果。......原创 2022-07-23 00:16:19 · 1160 阅读 · 0 评论 -
Garbage-First Collector
Garbage-First CollectorJVM核心技术-Garbage First(G1)垃圾优先型垃圾回收器调优原创 2021-08-22 13:58:22 · 284 阅读 · 0 评论 -
既然CPU有缓存一致性协议(MESI),为什么JMM还需要volatile关键字?
既然CPU有缓存一致性协议(MESI),为什么JMM还需要volatile关键字?MESI缓存一致性协议在哪里以及如何实现?Intel® 64 and IA-32 Architectures Developer’s Manual: Vol. 3A原创 2021-08-22 10:51:41 · 502 阅读 · 0 评论 -
JVM双亲委派机制详解
前言这个是阿里云活动白嫖的学习会员,课程名是 《11分钟搞定JVM的双亲委派机制》 ,这个是学习笔记。学习后可以解决的问题JVM为什么会抛出ClassNotFund异常?在抛出这个异常的时候JVM的类加载器做了什么工作?Java程序在执行的过程中,是先执行父类还是先执行子类。如果加载父类,那么父类还有父类呢,这个时候JVM还要怎么处理,JVM是如何保证类加载的有序性和安全性?类加载器的分类分类每个类加载器的作用启动类加载器负责加载Java_HOME目录下,lib的目录下的类库。扩展转载 2021-08-15 11:41:06 · 348 阅读 · 0 评论 -
Graal
「译」Graal JIT编译器是如何工作的Native ImageSpring Native documentation将Spring Boot应用变成GraalVM本机镜像快速运行 - codecentricGraalVM Native Image介绍深入拆解Java 虚拟机 - 36 | SubstrateVM:AOT编译框架Substrate VM 笔记...原创 2021-08-14 03:15:08 · 481 阅读 · 0 评论 -
正则表达式:获取一个URL中的Host
Connection conn = C3P0Util.getInstance().getConnection(C3P0Util.SOURCE); String url = conn.getMetaData().getURL(); String host = ""; Pattern p = Pattern.compile("(?原创 2014-11-25 17:36:19 · 13921 阅读 · 0 评论 -
Java 反射之AnnotatedElement
11原创 2019-02-21 10:42:19 · 4405 阅读 · 1 评论 -
Java Method与泛型和注解
m.getGenericExceptionTypes();m.getGenericParameterTypes();m.getGenericReturnType();原创 2019-02-21 10:41:17 · 902 阅读 · 0 评论 -
JDBC SavePoint
JDBC事务管理及SavePoint示例JDBC SavePoint浅析JDBC - Transactions原创 2019-03-05 14:46:53 · 310 阅读 · 0 评论 -
Java Type Annotation
在 Java 8 之前的版本中,只能允许在声明式前使用 Annotation。而在 Java 8 版本中,Annotation 可以被用在任何使用 Type 的地方,例如:初始化对象时 (new),对象类型转化时,使用 implements 表达式时,或者使用 throws 表达式时。//初始化对象时String myString = new @NotNull String();//对象类型...原创 2019-02-20 15:48:25 · 1714 阅读 · 0 评论 -
Java 注解/泛型/反射/动态代理
Java源码解析(附录)(1) —— ParameterizedTypeJava源码解析(附录)(2) —— TypeVariableJava源码解析(附录)(3) —— GenericDeclarationJava源码解析(附录)(4) —— GenericArrayTypeJava源码解析(附录)(5) —— WildcardType写一个测试类,类上有多个泛型,构造方法上有多个泛型...原创 2019-02-18 23:46:09 · 543 阅读 · 0 评论 -
Java Explicit receiver parameters
注意receiver parameters 只能作为方法的第一个参数方法调用的时候,receiver parameters不影响方法的调用时的签名Explicit receiver parametersExplicit Receiver ParametersJava - How to get annotation on explicit receiver parameter usin...原创 2019-02-21 12:05:19 · 505 阅读 · 0 评论 -
Oracle Server JRE
Understanding the Server JRE原创 2019-09-05 08:47:46 · 1016 阅读 · 0 评论 -
Jaas Authentication文档翻译
JAAS AuthorizationJava认证和授权服务是Java 2中的一个可选包。JAAS被用来实现两个目的:1.用户认证,为了可靠和安全的确认当前谁在运行Java代码,不管代码是以一个程序运行,还是一个applet,一个bean或者一个servlet。2.用户的授权,确保他们对需要执行的动作有访问控制的权利(权限)。这个部分提供了一个认证组件的初原创 2014-08-16 14:14:57 · 2125 阅读 · 0 评论 -
JAAS Authorization文档
本指南扩展了在JAAS Authentication文档中的程序和policy文件,展示了JAAS Authorization组件,这个组件确保被认证的调用者对后续的安全敏感的操作有访问控制的权利(权限)。因为授权组件首先需要用户认证操作完成,请先阅读JAAS Authentication的doc。本教程剩下的部分包含目录列出的内容:如果你想先看下教程代码的运行,你可以直接跳到运行代码的部原创 2014-08-16 14:35:01 · 2961 阅读 · 0 评论 -
JAAS Authentication Example
例子程序来源于Java文档。1. 配置Kerberos的Server端,配置KDC(kdc.conf)和Server(krb5.conf)。2. 增加一个Principal,一个用于程序测试。3. 将JassAcn.java和Jaas.conf文件拷贝到一个文件夹。4. Javac编译JassAcn.java文件5. 用下面的命令执行class文件,替换成自己的配置原创 2014-08-16 14:41:44 · 2015 阅读 · 0 评论 -
JDK的sql设计不合理导致的驱动类初始化死锁问题
问题描述 当我们一个系统既需要mysql驱动,也需要oracle驱动的时候,在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一个驱动实例要走的逻辑(jdk1.6下),不过这原创 2014-09-26 11:39:58 · 1717 阅读 · 0 评论 -
java并发之原子性与可见性
原子性原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。java的co转载 2014-09-17 09:41:05 · 1941 阅读 · 2 评论 -
Java高并发编程——为IO密集型应用设计线程数与划分任务
线程数=CPU可用核心数/(1 - 阻塞系数) 其中阻塞系数在0和1之间。计算密集型任务的阻塞系数为0,而IO密集型任务的阻塞系统则接近1.原创 2014-11-20 10:33:27 · 8623 阅读 · 2 评论 -
Java™ Management Extensions Technology Stack
Java Platform, Standard Edition Java Management Extensions GuideJava™ Management Extensions Instrumentation and Agent Specification, v1.2Java™ Management Extensions (Java™) Remote API 1.0 Specification原创 2019-03-28 11:03:04 · 1689 阅读 · 0 评论 -
Java 反射之 TypeVariable
TypeVariable是类型变量(泛型变量),在Java 反射之 GenericDeclaration中提到,Java中可以声明泛型变量的地方有三个class,contructor和method,TypeVariable接口的声明如下:public interface TypeVariable<D extends GenericDeclaration> extends Type, ...原创 2019-02-22 17:42:57 · 6003 阅读 · 1 评论 -
Java 反射之 GenericDeclaration
java.lang.reflect.GenericDeclaration是Java反射包中,所有可以声明泛型类型的语法元素的父接口;public interface GenericDeclaration extends AnnotatedElement { /** * Returns an array of {@code TypeVariable} objects that ...原创 2019-02-22 17:08:28 · 798 阅读 · 0 评论