
Inside JVM
iceman1952
这个作者很懒,什么都没留下…
展开
-
本周看完第七章
这个周就看完第七章吧,类型的生命周期没有别的技能,既然是作技术,那就只能从技术上突破了。牢牢的记住,你学的东西,都是你以后加薪的砝码,跳槽的砝码半年的进步时间啊原创 2007-03-06 21:39:00 · 936 阅读 · 0 评论 -
Throwable.fillInStackTrace
Throwable.fillInStackTrace本是一个 synchronized native 方法,其如下: /** * Fills in the execution stack trace. This method records within this * Throwable object information about the current原创 2012-11-27 16:50:30 · 7651 阅读 · 0 评论 -
关于 forName 和 loadClass
关于forName()方法这个方法总是返回要加载的类的Class类的实例1、forName(String className)单参数时, initialize=true a.总是使用当前类装载器(也就是装载执行forName()请求的类 的类装载器) b.总是初始化这个被装载的类(当然也包括:装载、连接、初始化)2、forName(String className原创 2007-03-07 11:52:00 · 6137 阅读 · 2 评论 -
final 的语义
public class FinalFieldExample { final int x; int y; static FinalFieldExample f; public FinalFieldExample() { x = 3; y = 4; } static void writer() { f = new FinalFieldExample(); } sta原创 2012-04-03 22:52:56 · 510 阅读 · 0 评论 -
e.hash == hash && ( (k = e.key) == key || (key != null && key.equals(k)) )
记住这个定理吧:equal objects must have equal hash codes.首先:java.lang.Object.hashCode() 是三条约定是1、多次运行 hashCode(),其值必须总是一致的(前提:1、 equals() 中用到的信息没发生变化 2、在同一次 execution 中)2、obj1.equals(obj2) == tru原创 2012-03-15 22:49:10 · 4016 阅读 · 1 评论 -
线程与working memory, main memory交互 和 JVM的执行指令 的关系
一句话,他们之间应该是没关系的(不是一个层次上的东西)。即 JVM的执行指令 看不到 线程与working memory, main memory 交互public class StudentBean { private int studentID; publi原创 2011-08-25 18:03:14 · 1539 阅读 · 0 评论 -
Java Thread: obj.wait(), obj.notify(), obj.notifyAll()
JVM规范 2nd, CHAPTER 8 Threads and Locks, 8.14 Wait Sets and Notification 读书笔记假设我们拥有 线程T 以及 对象objObject obj = Object();1. obj拥有一个monit原创 2011-08-28 16:43:08 · 2156 阅读 · 1 评论 -
wait, notify, notifyAll的使用
多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务 后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。 以上逻辑简单的说转载 2008-03-09 15:48:00 · 2386 阅读 · 0 评论 -
多线程编程时的注意事项--摘抄自:Practical Java, Effective Java
多线程编程时的注意事项 摘抄自:Practical Java1、 实践34:将同步化(synchronized)降至最低2、 实践46:对instance函数,synchronized锁定的是对象,不是函数,也不是代码3、 实践47:对static函数,synchronized锁定的是这个class的Class对象4、 实践48:用getter/se原创 2008-02-26 09:39:00 · 997 阅读 · 0 评论 -
锁是属于对象或类的
1、在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的。2、对于对象来说,相关联的监视器保护对象的实例变量(不监视代码)。3、对于类来说,和类相关联的监视器保护类的类变量(不监视代码)。4、如果一个对象没有实例变量,或者一个类没有类变量,则和对象相关联的监视器,或者和类相关联的监视器就什么都不监视。5、监视器是被某个对象或类所拥有的,而线程可以“获取对象的锁”(也就是获取了对原创 2008-02-25 17:04:00 · 836 阅读 · 0 评论 -
Class getResource
public java.net.URL getResource(String name) { //1、name = “/firstpath/secondepath/filename”// àname=”firstpath/secondepath/filename” //2、name = “firstpath/secondepath/filename”// ànam原创 2008-01-23 18:05:00 · 737 阅读 · 0 评论 -
Exception的堆栈信息,也有可能根本就不是出错时的调用情况
在 http://blog.youkuaiyun.com/iceman1952/article/details/8230804(Throwable.fillInStackTrace) 中,我们知道,Exception 中的 stack trace 其实是在 new 此Exception() 时,通过 fillInStackTrace() 方法填充到 此新new出来的异常中的。我们也知道,异常的耗时其实在于原创 2012-11-27 17:53:44 · 1292 阅读 · 0 评论