普通Java程序员学习使用的6个JDK

有些博客认为“每个小孩都应该学习编程”,“你认为学数学只是玩玩而已?如果你有看过我的HTML5调试器的话,你会发现我是一个程序员,但我做的工作远不止数学这些”。上面两者都同意一个观点,软件工程不只是用计算机语言写的一些只言片语。软件解决的问题诠释了程序员的价值。

解决问题的最终进展来自科学、强化清晰的头脑和我们一路以来使用的工具。

你有没有留意过那些JDK安装附带的工具?既然那些大牛同意把那些工具加到JDK里,应该是有用的。

因此,在这篇文章里,我挑了几个Hotspot标准安装后可用的小工具来介绍。我们决定忽略那些安全相关的和各种远程方法调用(RMI)、applets、web-start、web-services工具。让我们把焦点放在那些普通开发者开发一般应用过程中可能有用的工具。注意,如果你只是对命令行工具感兴趣,而不仅仅是Java相关的工具,这里介绍了5个非常有用的命令行工具。

再次重申,下面虽然不是JDK工具完整列表,但是我们想给你一个精华版本。下面是你用这些命令可以完成的真正有用的事情。

0、javap

你可以给javap(JavaClass文件反编译器)传递这些有用的参数:

-I–打印行数和局部变量

-p–打印包括非public在内的所有类和成员信息,

-c–打印方法字节码

比如在著名的“你真的懂Classloader吗?”演讲里,当出现NoSuchMethodException错误时,我们可以执行以下命令来调查这个类究竟有哪些成员方法和获取这个类所有想找的信息:

javap-l-c-pUtil

当调试类内部信息或者研究随机字节码顺序时,javap非常有用。

1、jjs

jjs命令可以启动一个JavaScript命令终端,你可以把它当做计算器或者用随机的JS字符串测试JS的古怪用法。不要让另一个JavaScript谜题让你措手不及!

哈,看到刚刚发生了什么了么?但是JavaScript是另一个话题,只需要知道即使没有node.js或浏览器你也可以用jjs知道JS是怎么工作的。

、jhat

Java堆分析工具(jhat)正如它名字描述的那样:分析dump堆信息。在下面的小例子里,我们构造了一个OutOfMemoryError,然后给这个java进程指定-XX:+HeapDumpOnOutOfMemoryError,这样运行时就会产生一个dump文件供我们分析。

publicclassOhMyMemory{privatestaticMapmap=newHashMaplt;gt;();publicstaticvoidmain(String[]args){Runtime.getRuntime().addShutdownHook(newThad(){

Overridepublicvoidrun(){System.out.println(Wehaveaccumulated+map.size()+entries);}});for(inti=0;;i++){map.put(Integer.toBinaryString(i),i);}}}

产生一个OutOfMemoryError很简单(大部分情况下我们无意为之),我们只要不断地制造不让垃圾回收器起作用就可以了。

运行这段代码会产生如下输出:

org.shelajev.throwaway.jdktools.OhMyMemoryjava.lang.OutOfMemoryError:JavaheapspaceDumpingheaptojava_pid.hprof...Heapdumpfilecated[bytesin0.secs]Exceptioninthadmainjava.lang.OutOfMemoryError:Javaheapspaceatjava.util.HashMap.size(HashMap.java:)atjava.util.HashMap.putVal(HashMap.java:66)atjava.util.HashMap.put(HashMap.java:)atorg.shelajev.throwaway.jdktools.OhMyMemory.main(OhMyMemory.java:4)atsun.flect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.flect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:6)atsun.flect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.flect.Method.invoke(Method.java:)at







































北京那个医院治疗白癜风好呢
中国白癜风治疗去哪里



转载请注明:http://www.zjiaren.com/jbmb/10155.html

  • 上一篇文章:
  •   
  • 下一篇文章: