前言 如果有一天,你的Java程序长时间停顿,也许是它病了,需要用jstack拍个片子分析分析,才能诊断具体什么病症,是死锁综合征,还是死循环等其他病症,本文我们一起来学习jstack命令~ jstack 的功能 jstack用法 线程状态等基础回顾 实战案例1:jstack 分析死锁 实战案例2:jstack 分析CPU 过高 jstack 的功能 jstack是JVM自带的Java堆栈跟踪工具,它用于打印出给定的java进程ID.core file.远程调试服务的Java堆栈信息. jsta…
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 XYZ 和 ABC 两种输入). class xyz { public void test(String x) { if(x.equals("xyz")) { try{ throw new exception(x);} catch(exception e){e.printStackTrac…
灵魂拷问,JDK 提供的命令,除了 java.javac,你还用过哪些命令呢? 灵魂再拷问,若你写的 Java 程序,出现了性能问题,该怎么去排查呢? Java 作为编程语言中的战斗机,JDK 默认已经为我们提供了很多排查问题的工具,接下来就逐一认识认识. 1. jps jps 命令,可以列出系统中所有运行 Java 进程,并可以查看 Java 进程的启动类.传入参数以及 JVM 参数等信息. 例如,在控制台输入 jps -lmv 命令,效果如下(截取部分内容). 很显然,jps 背后是一个 J…
前言 volatile是Java程序员必备的基础,也是面试官非常喜欢问的一个话题,本文跟大家一起开启vlatile学习之旅,如果有不正确的地方,也麻烦大家指出哈,一起相互学习~ 1.volatile的用法 2.vlatile变量的作用 3.现代计算机的内存模型(计算机模型,总线,MESI协议,嗅探技术) 4.Java内存模型(JMM) 5.并发编程的3个特性(原子性.可见性.有序性.happen-before.as-if-serial.指令重排) 6.volatile的底层原理(如何保证可见性,…
1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件. find . -name "*.xml"递归查找所有的xml文件 find . -name "*.xml" |xargs grep "Hello World"递归查找所有文件内容中包含hello world的xml文件 grep -H 'spring' *.xml查找所以有的包含spring的xml文件 find ./ -size…
作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服务器上都是Linux系统.所以,要和服务器机器交互,就要通过shell命令. 本文并不会对所有命令进行详细讲解,只给出常见用法和解释.具体用法可以使用–help查看帮助或者直接通过google搜索学习. 1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件. find . -…
性能分析 vmstat 虚拟内存统计 用法 Usage: vmstat [options] [delay [count]] Options: -a, --active active/inactive memory -f, --forks number of forks since boot -m, --slabs slabinfo -n, --one-header do not redisplay header -s, --stats event counter statistics -d, -…
1.查看Java进程:ps -ef|grep java,ps auxf|grep jva; 2.杀死所有Java进程: pkill java, kill -9 进程ID: 3.进入目录:cd /usr/xx/bin; cd ..(后退目录) 4.切换root用户:su root; 5.查看目录详情:ll: 查看目录所有文件:ls; 6.修改文件:vi xx.txt; i(按i进行修改) ,退出:esc键, shift +,  wq: 7.删除文件:查看文件目录pwd , 删除:rm -rf /u…
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到java的process类了. process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类). process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut d…
实验一 Java开发环境的熟悉(Windows + IDE) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDE 编辑.编译.运行.调试Java程序. 实验步骤 (一)命令行下Java程序开发 (1)首先打开cmd(Windows系统下),然后输入cd\workpace进入到workspace. (2)输入md 20145223建立一个目录名为自己学号的实验目录,再输入cd 20145223进入到实验目录中. (3)在此目录下输入cd exp1建立实验1目录,并且输入cd e…