
Java学习
东东学不会
这个作者很懒,什么都没留下…
展开
-
linux下读取java resource文件夹下文件
linux下读取java resource文件夹下文件 InputStreamReader in = new InputStreamReader(AliasDic.class.getClass().getResourceAsStream("/stock/stockCode.txt")); BufferedReader br = new BufferedReader(in);原创 2020-11-17 10:57:30 · 2717 阅读 · 0 评论 -
Kafka 生产者和消费者使用
一.生产者 1.加入maven配置 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> 2.创建kafka生产类 public clas...原创 2020-03-04 10:49:32 · 410 阅读 · 0 评论 -
docker搭建私有仓库
一、什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像。 二、安装Docker及Registry 安装Docker见之前博文: h...原创 2019-01-04 14:34:37 · 155 阅读 · 0 评论 -
jvm垃圾回收机制的简单分析
什么时候 从字面上翻译过来就是什么时候触发我们的GC机制 ①在程序空闲的时候。这个回答无力吐槽 ②程序不可预知的时候/手动调用system.gc()。关于手动调用不推荐 ③Java堆内存不足时,GC会被调用。当应用线程在运行,并在运行过程中创建新对象,若这时内存空间不足,JVM就会强制地调用GC线程,以便回收内存用于新的分配。若GC一次之后仍不能满足内存分配的要求,JVM会再...原创 2018-12-10 10:52:41 · 110 阅读 · 0 评论 -
JVM mangement API
摘要:JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据、JVM当前所有线程及其栈相关信息等等。各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于此API开发的。本篇对这部分内容进行一个详细的说明。参考:http://java.sun.com/javase/6/docs/api/...转载 2018-12-12 16:28:48 · 250 阅读 · 0 评论 -
enum实现单例模式
枚举实现单例模式的优点: 1.线程安全 2.自有序列化 3.保证单例 首先,我们都知道enum是由class实现的,换言之,enum可以实现很多class的内容,包括可以有member和member function,这也是我们可以用enum作为一个类来实现单例的基础。另外,由于enum是通过继承了Enum类实现的,enum结构不能够作为子类继承其他类,但是可以用来实现接口。此外,enum...原创 2018-11-20 10:02:14 · 1778 阅读 · 0 评论 -
linux下运行java找不到tools包
手动更改MANIFEST文件,将tools.jar添加至classpath后面 打成jar包后,将linux中的JAVA_HOME/lib中的tools.jar替换到打的jar包下。原创 2018-11-15 09:25:27 · 1461 阅读 · 0 评论 -
JVMTI 中的JNI系列函数,线程安全及调试技巧
JVMTI 中的JNI系列函数,线程安全及调试技巧 jni functions 在使用 JVMTI 的过程中,有一大系列的函数是在 JVMTI 的文档中 没有提及的,但在实际使用却是非常有用的。这就是 jni functions. 例如,在使用 SingleStep 函数时, void JNICALL Si...转载 2018-11-19 11:16:38 · 384 阅读 · 0 评论 -
JVMTI 中的JNI系列函数,线程安全及调试技巧
JVMTI 中的JNI系列函数,线程安全及调试技巧 jni functions 在使用 JVMTI 的过程中,有一大系列的函数是在 JVMTI 的文档中 没有提及的,但在实际使用却是非常有用的。这就是 jni functions. 例如,在使用 SingleStep 函数时, void JNICALL Si...转载 2018-11-19 11:10:14 · 257 阅读 · 0 评论 -
JNI生成.h文件
一个简单的demo,踩了半天的坑,记一下。 1.使用java.h生成头文件 使用idea的tools生成,用自带的变量,用其他的命令行方式不知道到底是哪个变量没对上。正确方法如下 打开设置,搜索external tools ,点击+号新建tools,编辑内容如下 Program:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Conte...原创 2018-11-15 15:34:54 · 670 阅读 · 0 评论 -
编译32位windows系统下可用的JVMTI动态链接库
这3天研究如何编译32位windows系统下可用的jVMTI动态链接库。中间过程很多时间都在搭建各种环境,其他时间在学习编译和各个系统的相关知识,总的来说,受益匪浅。记录一下3天踩过的坑和解决方法。 JVM TI是JDK提供的一套用于开发JVM监控, 问题定位与性能调优工具的通用编程接口(API)。通过JVMTI,我们可以开发各式各样的JVMTI Agent。这个...原创 2018-10-15 09:10:41 · 670 阅读 · 0 评论 -
Failed to read artifact descriptor--maven问题总结
在开发的过程中,作为新手,经常遇到Maven下载依赖的时候,"Failed to read artifact descriptor for xxx:jar"的错误 对于这种非业务相关的问题,耽误时间非常不效率,看到网站很多博文,思路大概是这样的 思路1: 删除仓库内对应依赖的文件夹,右单击项目,Maven4MyEclipse->Update Project,在弹出的对话框中选择“Forc...转载 2018-07-20 17:11:43 · 1868 阅读 · 0 评论 -
堆和栈的区别
C++:自己在程序里面控制内存的生命周期和分配大小java:分为静态分配,栈分配和堆分配,静态分配指在编译时就已经确定了的对象分配的内存空间,这种分配不能有可变的数据结构,也不允许有嵌套和递归的存在。栈分配也可称为动态存储分配,程序在编译时对数据区的需求是完全未知的,他规定在运行到一个模块的入口时,必须知道其所需的空间大小时,才能够为其分配内存。堆分配指在程序运行的时候动态分配对象的大小,在模块入...原创 2018-07-03 16:51:17 · 117 阅读 · 0 评论