java加载本地文件(dll、so)时,经常会出现java.lang.UnsatisfiedLinkError: Unable to load library这种错误,经过实践后总结分析,主要是3种原因:
1. 本地文件没有放置到classpath;
2. 本地文件版本与jdk...
water
6年前 (2018-12-28) 6933℃ 0评论
11喜欢
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喜欢
1. JNA简单介绍
先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C++的过程,注意写程序时自下而上,调用时自上而下。
...
water
6年前 (2018-12-26) 2565℃ 0评论
0喜欢
一、OpenCC介绍
OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港),其官网位于Gi...
water
6年前 (2018-12-26) 3773℃ 0评论
1喜欢
volatile 是保证了可见性还是有序性?
有序性:是因为 instance = new Singleton(); 不是原子操作。编译器存在指令重排,从而存在线程1 创建实例后(初始化未完成),线程2 判断对象不为空,但实际对象扔为空,造成错误。
可见性:是因为线程1 创建实...
water
6年前 (2018-10-30) 2382℃ 0评论
0喜欢
前言
在讨论之前,首先要明白一个Java类加载到JVM中经过的三个步骤
装载: 查找和导入类或接口的二进制数据
链接: 分别执行 校验,准备,和解析
校验: 检查导入类或接口的二进制数据的正确性;
准备: **给类的静态变量分配并初始化存储空间; **
解析:...
water
6年前 (2018-10-09) 2292℃ 0评论
0喜欢
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://do...
water
6年前 (2018-09-26) 3151℃ 0评论
0喜欢
1.摘要
最近排查了一个比较灵异的线上jvm内存持续增长的问题,排查过程异常艰辛,但是最后竟然是用最简单的办法搞定了……
2.现象
线上机器部署了两个java实例,在运行几天后java开始吃swap空间,java实例的内存占用接近7G,程序响应很慢,重启后又恢复正常。线上配置的堆...
water
6年前 (2018-09-25) 6967℃ 0评论
3喜欢
我们的一个系统上线后发现内存占用非常高,已分配内存达到11G,而已分配地址空间更是17G了,而根据jmap执行结果发现:
Attaching to process ID 1507, please wait... ...
water
6年前 (2018-09-25) 6732℃ 0评论
2喜欢
问题描述
通过本文,你应该了解:
1. pmap 命令
2. gdb 命令
3. perf 命令
4. 内存 RSS、VSZ的区别
5. java NMT
这几天遇到一个比较奇怪的问题,觉得有必要和大家分享一下。我们的一个服务,运行在docker上,在某个版...
water
6年前 (2018-09-25) 3357℃ 0评论
0喜欢
摘要: 故障案例一 系统环境: 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喜欢
在JDK8之前,java编译器会忽略我们编写代码时候设定的参数名,比如在mybatis框架中,我们可以使用@Param注解来让mybatis知道参数名。
public interface DemoMapper { ...
water
6年前 (2018-09-05) 3193℃ 0评论
1喜欢
Max memory = [-Xmx] + [-XX:MaxPermSize] + number_of_threads * [-Xss]
整个Java进程分为heap和non-heap两部分,每部分有以下几个概念:
init
represents the initial a...
water
6年前 (2018-08-10) 2964℃ 0评论
0喜欢
MDC ( Mapped Diagnostic Contexts ) 有了日志之后,我们就可以追踪各种线上问题。但是,在分布式系统中,各种无关日志穿行其中,导致我们可能无法直接定位整个操作流程。因此,我们可能需要对一个用户的操作流程进行归类标记,比如使用线程+时间戳,...
water
6年前 (2018-07-30) 3135℃ 0评论
0喜欢
借鉴参考文献中的分类从阅读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的简要总结:
1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使用锁;
2、put、remove方法要使用锁,但并不一定有锁争用,原因在于ConcurrentHashMap将缓存的变量分到多个Segment,...
water
7年前 (2018-06-14) 2253℃ 0评论
0喜欢
作者:winterSunshine链接:https://www.zhihu.com/question/37401125/answer/100981172来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1.概念解释
强引用是使用最普遍的引用:Ob...
water
7年前 (2018-03-23) 2348℃ 0评论
0喜欢
byte VS char
byte 字节:8 bit,有符号,范围: -128~127
byte b1 = 10;
byte b2 = -10;
// byte b3 =&nbs...
water
7年前 (2018-03-09) 2457℃ 0评论
0喜欢
Facets:
Facets表述了在Module中使用的各种各样的框架、技术和语言。这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。
使用Facets能让我们下载并配置framework所必须的组件,会自动生成各种各...
water
7年前 (2018-01-12) 4698℃ 0评论
1喜欢