欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

 分类:java

使用JNI(Java Native Interface)的总结

使用JNI(Java Native Interface)的总结
 1. 什么是JNI? JNI(Java Native Interface) Java本地接口,又叫Java原生接口。它允许Java调用C/C++的代码,同时也允许在C/C++中调用Java的代码。可以把JNI理解为一个桥梁,连接Java和底层。其实根据字面意思,JNI...

water 6年前 (2018-12-27) 2020℃ 0评论 0喜欢

JNI的替代者—使用JNA访问Java外部功能接口

JNI的替代者—使用JNA访问Java外部功能接口
1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C++的过程,注意写程序时自下而上,调用时自上而下。 ...

water 6年前 (2018-12-26) 2565℃ 0评论 0喜欢

java 单例模式中双重检查锁定 volatile 的作用?

java 单例模式中双重检查锁定 volatile 的作用?
volatile 是保证了可见性还是有序性? 有序性:是因为 instance = new Singleton(); 不是原子操作。编译器存在指令重排,从而存在线程1 创建实例后(初始化未完成),线程2 判断对象不为空,但实际对象扔为空,造成错误。 可见性:是因为线程1 创建实...

water 6年前 (2018-10-30) 2382℃ 0评论 0喜欢

ClassLoader.loadClass 和Class.forName的区别

ClassLoader.loadClass 和Class.forName的区别
前言 在讨论之前,首先要明白一个Java类加载到JVM中经过的三个步骤 装载: 查找和导入类或接口的二进制数据 链接: 分别执行 校验,准备,和解析 校验: 检查导入类或接口的二进制数据的正确性; 准备: **给类的静态变量分配并初始化存储空间; ** 解析:...

water 6年前 (2018-10-09) 2292℃ 0评论 0喜欢

记一次java native memory增长问题的排查

记一次java native memory增长问题的排查
1.摘要 最近排查了一个比较灵异的线上jvm内存持续增长的问题,排查过程异常艰辛,但是最后竟然是用最简单的办法搞定了…… 2.现象 线上机器部署了两个java实例,在运行几天后java开始吃swap空间,java实例的内存占用接近7G,程序响应很慢,重启后又恢复正常。线上配置的堆...

water 6年前 (2018-09-25) 6967℃ 0评论 3喜欢

Java堆外内存排查小结

Java堆外内存排查小结
问题描述 通过本文,你应该了解: 1. pmap 命令 2. gdb 命令 3. perf 命令 4. 内存 RSS、VSZ的区别 5. java NMT 这几天遇到一个比较奇怪的问题,觉得有必要和大家分享一下。我们的一个服务,运行在docker上,在某个版...

water 6年前 (2018-09-25) 3357℃ 0评论 0喜欢

当Java虚拟机遇上Linux Arena内存池

当Java虚拟机遇上Linux Arena内存池
摘要: 故障案例一 系统环境: RHEL 6.8 64-bit(glibc 2.12)、Sun JDK 6u45 64-bit、WLS 10.3.6 故障现象: 这里引用一下客户当时发邮件时提出的问题描述吧。 故障案例一 系统环境: RHEL 6.8 64-bit(gl...

water 6年前 (2018-09-25) 3147℃ 0评论 0喜欢

Slf4j MDC实现原理分析

Slf4j MDC实现原理分析
MDC ( Mapped Diagnostic Contexts )  有了日志之后,我们就可以追踪各种线上问题。但是,在分布式系统中,各种无关日志穿行其中,导致我们可能无法直接定位整个操作流程。因此,我们可能需要对一个用户的操作流程进行归类标记,比如使用线程+时间戳,...

water 6年前 (2018-07-30) 3135℃ 0评论 0喜欢

JDK源码学习第一篇—-综述JDK类库分类

JDK源码学习第一篇—-综述JDK类库分类
借鉴参考文献中的分类从阅读JDK源码和理解JVM开始,本博客首先是自己学习过程的一个记录,写下自己的理解和心得,希望能坚持下去以期进阶;如果有读者赏光阅读,发现笔者的错误敬请不吝赐教,大家探讨共同进步。 第一类:精读源码   /*          * java.util    ...

water 6年前 (2018-07-17) 2872℃ 0评论 0喜欢

内存映射文件原理探索

内存映射文件原理探索
首先说说这篇文章要解决什么问题? 1.虚拟内存与内存映射文件的区别与联系. 2.内存映射文件的原理. 3.内存映射文件的效率. 4.传统IO和内存映射效率对比. 虚拟内存与内存映射文件的区别与联系  二者的联系 虚拟内存和内存映射文件都是...

water 6年前 (2018-07-05) 2662℃ 0评论 0喜欢

ConcurrentHashMap使用要点

ConcurrentHashMap使用要点
ConcurrentHashMap的简要总结: 1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使用锁; 2、put、remove方法要使用锁,但并不一定有锁争用,原因在于ConcurrentHashMap将缓存的变量分到多个Segment,...

water 7年前 (2018-06-14) 2253℃ 0评论 0喜欢

IDEA里面的facets和artifacts的讲解mark as

IDEA里面的facets和artifacts的讲解mark as
Facets: Facets表述了在Module中使用的各种各样的框架、技术和语言。这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。 使用Facets能让我们下载并配置framework所必须的组件,会自动生成各种各...

water 7年前 (2018-01-12) 4698℃ 0评论 1喜欢