第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 Java -version ,会有下面的信息: Java version...Environment (build 1.6.0-b09) OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode) 最好还是先卸载掉openjdk,在安装sun公司的jdk...-1.6.0.0-1.7.b09.el5 还有一些其他的命令 rpm -qa | grep gcj rpm -qa | grep jdk 如果出现找不到openjdk source的话,那么还可以这样卸载...-1.7.b09.el5 # rpm -qa|grep jdk ← 查看jdk的信息或直接执行 或 # rpm -q jdk 或 # java -version #...rpm -qa | grep gcj ← 确认gcj的版本号 # yum -y remove java-1.4.2-gcj-compat ← 卸载gcj 第二步:安装JDK 从SUN
本文继续介绍Java自带的性能监测工具,本文使用jstack (Java Stack Trace)工具来玩~ 使用jstack命令工具可以得到线程堆栈信息,根据这些线程堆栈信息,我们可以去检查Java程序出现的问题...,如检测死锁,并输出死锁的信息~的排查。...在使用jstack命令之前,可以先使用jstack -h来查看jstack命令相关的使用方法,包括有哪些参数等~ [root@dev18 ~]# jstack -h Usage: jstack...和native frames 的信息,如jstack -m 12905,这里的12905是Zookeeper服务的进程ID~ [root@dev18 ~]# jstack -m 12905 Attaching...从上述输出的信息中可以看出死锁的信息~
本文使用jinfo命令工具~ jinfo用于查看运行中的java程序的参数,同时也支持在运行时修改部分参数~ 参数包括Java System属性和JVM命令行参数。...在使用jinfo命令之前,可以先使用jps -help来查看jps命令相关的使用方法,包括有哪些参数等~ [root@dev18 ~]# jinfo -help Usage: jinfo [option...,因为这样的信息很多,我们只列出可管理 (manageable) 的参数信息,如: [root@dev18 ~]# java -XX:+PrintFlagsFinal -version | grep...80~ 修改MaxHeapFreeRatio的值,使用jinfo -flag MaxHeapFreeRatio=80 12905 然后查一下修改后MaxHeapFreeRatio的值已经为80~ [root...,有兴趣的读者可以动手操作一下~ :)
本文使用jstat命令工具~ jstat简介 jstat (Java Virtual Machine Statistics Monitoring Tool) 是一个可以用于观察Java应用程序运行时信息的工具...,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。...>[:]] Where is the local vm identifier for the target Java...-gc综合了-gcnew、-gcold的输出; -gccapacity综合了-gcnewcapacity、-gcoldcapacity、-gcpermcapacity的输出 jstat示例 显示Java...进程的ClassLoader信息 输出Java进程(PID为12905)的Class Loader信息,每隔2秒执行一下,一共输出5次~ [root@dev18 ~]# jstat -class 12905
JMH介绍:JDK9 及以后自带的一款可用于软件基准测试的工具 JMH(Java Microbenchmark Harness)。...org.openjdk.jmh.runner.options.Options; import org.openjdk.jmh.runner.options.OptionsBuilder; import java.util.concurrent.TimeUnit...,这里指定为每个方法启动一个进程 @Fork(1) // 定义类实例的生命周期,Scope.Benchmark:所有测试线程共享一个实例,用于测试有状态实例在多线程共享下的性能 @State(value...= Scope.Benchmark) // 统计结果的时间单元 @OutputTimeUnit(TimeUnit.NANOSECONDS) public class TestStringBuilder...,请参考:https://juejin.cn/post/6914960426098917384 特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!
使用混淆的字符串是:{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} package com.test; import...java.security.MessageDigest; public class MD5Utils { private static final char hexDigits[]={'0'
本文继续介绍Java自带的性能监测工具,本文使用jhat (Java Heap Analyse Tool)工具来玩~ jhat (Java Heap Analyse Tool) 是用来分析java堆的命令...,可可以将对中的对象以html的形式展示,包括对象的数量、大小等信息,并支持对象查询语言 (OQL)。...Heap dump file created 然后,使用jhat打开生成的heap.hprof文件~ 如, [root@dev03 ~]# jhat /srv/heap.hprof Reading from...访问地址为http://:7000,可以看到类似如下的内容: 将页面拖到最下面,“Other Queries”一栏~ 在“Other Queries”一栏中点击不同的链接可以展示不同的内容,...“的OQL查询如下: select classof(cl).name from instanceof java.lang.ClassLoader cl 查询结果如下:
安装好Java之后,在bin目录下有很多的Java自带的工具,如下图所示: 使用这些小工具能帮助我们分析、解决应用遇到的问题等~ 本文使用jps命令工具~ jps (Java Virtual Machine...Process Status Tool) 是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。...进程的ID情况,则可以使用jps -q命令~ [root@dev18 ~]# jps -q 1656 12905 17351 4308 使用jps -l命令,可以看到完整的主函数名(包含包名) 如...:/usr/java/jdk1.7.0_71/jre/lib/rt.jar:/usr/java/jdk1.7.0_71/lib/dt.jar:/usr/java/jdk1.7.0_71/lib/tools.jar...:/usr/java/jdk1.7.0_71/jre/lib/rt.jar:/usr/java/jdk1.7.0_71/lib/dt.jar:/usr/java/jdk1.7.0_71/lib/tools.jar
本文继续介绍Java自带的性能监测工具,本文使用jmap工具来玩~ jmap (Java Memory Map) 命令可以生成Java应用程序的堆快照和对象统计信息,对生成的堆快照进行分析,可以分析堆中对象所占用内存的情况...,其pid为12905 使用 jmap -heap 12905打印java heap的情况,如 [root@dev18 ~]# jmap -heap 12905 Attaching to process...下面的例子使用jmap生成pid为12905的Java程序的对象统计信息(直方图的形式),并将生成的统计信息输出到时/usr/local目录下的12905.histo文件中,如: [root@dev18...Heap dump file created [root@dev18 ~]# 针对这种产生的dump文件,可以使用JDK自带jhat(Java Heap Analyse Tool)小工具来查看,可以将对中的对象以...html的形式展示,包括对象的数量、大小等信息,并支持对象查询语言 (OQL),jhat将会在下一篇文章中介绍~
Java 8 对自带的排序算法进行了很好的优化。对于整形和其他的基本类型, Arrays.sort() 综合利用了双枢轴快速排序、归并排序和启发式插入排序。这个算法是很强大的,可以在很多情况下通用。...针对大规模的数组还支持更多变种。我拿自己仓促写的排序算法跟Java自带的算法进行了对比,看看能不能一较高下。这些实验包含了对特殊情况的处理。 首先,我编写了一个经典的快速排序算法。...在大部分的问题中,我的版本的优化程序都远远不能跟Java系统程序相提并论。 我一直都想测试脑海里的一个简单的排序算法,我称之为Bleedsort。...尽管我写的快速排序算法在一定程度上比不过Java自带的算法,但是我的预处理过程很好的弥补了这些不足(调用了我的快速排序的Bleedsort 87ms vs Java 自带算法105ms; 938ms vs...所以,我的这个没有特殊优化的算法程序在这些数据集上要比Java自带算法快大概 10-15% 。
今天终于把项目部署到线上了~,就这个Mysql的原因使用2台小主机进行部署,没想到这么吃内存!...非要5.7+的MYSQL数据才行,忙完了之后看了下Acitivti流程图字体乱码了,因为在windows下设置的微软雅黑,linux默认是没有的,所以需要给jdk安装一个微软雅黑字体。...1)首先找到windows下面的字体,不用去其他地方下了,windows就有,路径在C:\Windows\Fonts,然后右上角搜索要的字体,我这里直接搜微软雅黑就出来了,然后拷贝到桌面上,拷贝出来会发现是三个文件...,千万不要删任何一个哦 2)然后找到jdk的安装目录下的字体目录,cd $JAVA_HOME/jre/lib/fonts 3)然后新建一个 fallback 文件夹,进入此文件夹,将字体文件复制在里面哦...yum install mkfontscale mkfontscale mkfontdir 5)OK,重启java程序即可,看效果~
默认安装版本 > java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12)...Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) 默认安装位置 /Library/Java/JavaVirtualMachines.../jdk1.8.0_151.jdk/Contents/Home 中间的 jdk 目录可能会根据版本而不一样,但路径都是这样的
原来的对象在堆中不会有任何改变。我们说的plusDays方法没有更改调用plusDays方法的对象。 Java库中有一个类来处理日历,名为GregorianCalendar。...//应用GregorianCalendar需要import java.util.*; package 第3章; import java.util.*; import java.time.*; public...(Calendar.DAY_OF_MONTH,1000); 相反,只访问对象而不修改对象的方法称为访问器方法(accessor method) 在java中,访问器方法与更改器方法在语法上没有什么区别...下面用一个应用LocalDate类的程序来结束本节内容的讨论。...打印一个日历(利用LocalDate,java.time.*;) package 第3章; import java.time.*; public class 第3章a { public static
python 进行一维卷积 自带的卷积函数: import matplotlib.pyplot as plt import numpy as np plt.plot([1,2,3,4]) plt.plot...([1,1,3]) # 倒过来成为卷积核,然后在上述的数组中滑动,得到结果 end_1=np.convolve([1,2,3,4],[1,1,3],'full') end_2=np.convolve([
使用字体 图片无法显示中文,究其原因,是R的很多图形设备只能使用一些标准的字体,但它们往往不包含中文的字符。而包含中文的字体,如Windows自带的宋体、黑体等,R又不知道如何使用它们。...于是这就成了一个死循环:我们有中文字体吧,R不会用;R能用的字体吧,我们又看不上——所以说R和useR都不好伺候…… 不过现在情况有了一定的改善,我们有了sysfonts这个包,专门用来加载系统里的字体文件...其中family是你给这个字体赋予的名称,在后面的绘图命令中你将通过它来引用这个字体。...regular是字体文件的路径,如果字体在系统的标准位置(例如Windows的C:\Windows\Fonts)或是当前的工作目录,则可以直接输入文件名。...代码中的wqy是showtext包自带的文泉驿微米黑字体,可以显示绝大多数的汉字,所以即使你的系统中没有中文字体,也可以用它来绘制带中文的图形。
); // 定义是否有下划线 hm.put(TextAttribute.SIZE, 12); // 定义字号 hm.put(TextAttribute.FAMILY, "Simsun"); // 定义字体名...Font font = new Font(hm); // 生成字号为12,字体为宋体,字形带有下划线的字体
作者:rickiyang 出处:www.cnblogs.com/rickiyang/p/11074232.html 谈到序列化我们自然想到 Java 提供的 Serializable 接口,在 Java...2、序列化之后的码流太大 这个我们可以做一个实验还是上一节中的Message类,我们分别用java的序列化和使用二进制编码来做一个对比,下面我写了一个测试类: @Test public void testSerializable...我们可以看到差距是挺大的,目前的主流编解码框架序列化之后的码流也都比java序列化要小太多。...结果为毫秒数,这个差距也是不小的。另外,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 Java 系列面试题和答案,非常齐全。...结合以上我们看到: 目前的序列化过程中使用 Java 本身的肯定是不行,使用二进制编码的话又的我们自己去手写,所以为了让我们少搬砖前辈们早已经写好了工具让我们调用,目前社区比较活跃的有 google 的
在进行 Java 程序性能分析时,我们可以利用 Java 自带的工具来对程序进行监控和调试。...下面将详细介绍常用的 Java 性能分析工具及其使用方法,并结合实例进行演示。...2、VisualVM VisualVM 是一个免费的的 Java 代码分析工具,是 Java SE 的一部分,可以帮助我们准确地测量程序的性能指标,如 CPU 和内存使用情况、线程和垃圾回收等。...三、Java 编译器 1、JPS 和 JSTACK JPS 和 JSTACK 是 Java 自带的命令行工具,可以用于监控和调试 Java 程序。...只有对这些工具有深刻的理解和熟练的应用,才能真正提升 Java 程序的性能和稳定性。
1.用java自带jdk开发第一个java程序: 下面要讲的eclipse要想正常工作,需要先学会配置这里的jdk。...; } } 编译过程是: F:\java教程\JiaXing\ch1>javac MyFirstApp.java 这个程序的输出为: F:\java教程\JiaXing\ch1>java MyFirstApp...对上述实验现象的解释:Java程序的编译程序是javac.exe。javac命令将Java程序编译成字节码,然后你可用java解释器java命令来解释执行这字节码。...Java程序源码必须存放在后缀为.java的文件里。Java程序里的每一个类,javac都将生成与类相同名称但后缀为.class文件。...编译器把. class文件放在.java文件的同一个目录里,除非你用了-d选项。
Thread之前说的多了,HandlerThread了解么,今天来说说他和Thread的区别 自带光环的Thread 我们知道要开启一个Thread并绑定给一个Handler的话,必须用Looper启动一个消息队列...,大概的代码会像下面这样 Handler workerHandler; private void initThread() { Thread worker = new Thread(){...方法里手动的去启动一个Looper,HandlerThread帮我们完成了这部分事情。...· HandlerThread的 getLooper是个阻塞方法,在Thread的Looper没准备好之前,是会调用 wait()阻塞当前线程的 · 因为HandlerThread会帮我们启动Looper...,因此在我们不需要它的时候,记得一定要调用quit/quitSafely,否则会创建越来越多的线程导致OOM。
领取专属 10元无门槛券
手把手带您无忧上云