程序员-张三

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年2月20日

摘要: 在java虚拟机中,被装载类型的信息被存储在一个逻辑上称为方法区的内存上。 当虚拟机装载某个类型时,它使用类装载器定位相应的class文件,然后读入这个class中的二进制数据传输到虚拟机中,紧接着虚拟机提取器其中的信息,保护静态变量,保存到方法区中。所有线程共享方法区,因此对方法区数据的访问必须被设计为线程安全的。比如有两个线程去访问一个java类,且这个java类还没有被装载到JVM中,这时就只能一个线程去加载,另一个等待。方法区的不是连续的,且大小是不固定的,JVM会根据应用来调整其大小。方法区允许GC回收。因为JVM允许通过用户自定义的的类装载器来动态的扩展java程序。因此一些cla 阅读全文
posted @ 2012-02-20 17:38 程序员-张三 阅读(134) 评论(0) 推荐(0) 编辑

摘要: 在JVM中负责查找并装载类型的那部分被称为类装载器子系统。java虚拟机中有种类装载器:启动类加载器,和用户自定义加载器 。前者是jvm实现的一部分,后者是java程序的一部分。由不同的类装载器的类将被放在虚拟机内部的不同命名空间。 装载,链接以及初始化 类装载器子系统除了要定位导入二进制class文件外,还必须负责验证被导入类的正确性。为类变量分配并初始化内存,以及帮助解析符号引用。这些动作必须严格按以下顺序进行:1 装载 --查找并装载类型的二进制数据。2 链接 -- 执行验证,准备,以及解析。 验证:确保被导入类的正确性 准备:为类变量分配内存,并将其初始化。解析: 把类型中的符号引用转 阅读全文
posted @ 2012-02-20 16:53 程序员-张三 阅读(180) 评论(0) 推荐(0) 编辑

2012年1月13日

摘要: 虚拟机是由一系列规范来定义一个抽象的计算机。所以要运行一个java程序,必须是一个符合该规范的具体实现。java虚拟机一般有三种说法: 1 一个具体的实现, 2 一个运行的虚拟机实例, 3 抽象规范JVM的职责就是负责一个java程序。(一个JVM对应一个java程序)既一个javaAPP启动,一个JVM的实例也就诞生了。程序退则JVM亡。如果一个OS上面运行三个javaAPP则产生三个JVM实例。每个javaAPP独立于对应的JVM中。javaAPP都将以main()作为起点,而其他线程则以初始线程开启。在JVM里面有两中线程:守护线程和非守护线程。守护线程通常都是由JVM自己使用的,比如. 阅读全文
posted @ 2012-01-13 14:42 程序员-张三 阅读(299) 评论(0) 推荐(0) 编辑

2011年12月26日

摘要: 在java的安全模型的结构特点使其适用于网络环境技术。软件可以通过网络下载并在本地运行。比如java applet,用户一打开网页。applet的class文件就会被自动下载,很有可能用户会遇到来自不可靠来源的applet。jini服务:(Jini是Sun公司的研究与开发项目,它能极大扩展Java技术的能力。Jini技术可使范围广泛的多种硬件和软件---即可与网络相连的任何实体---能够自主联网.具体请连接http://www.sudu.cn/info/index.php?op=article&id=316631使用jini服务进行注册时,客户机遇到不可靠的服务对象。如果没有任何机制, 阅读全文
posted @ 2011-12-26 15:58 程序员-张三 阅读(275) 评论(0) 推荐(0) 编辑

2011年12月23日

摘要: java的跨平台性,它之所以能够跨平台其实就是靠JVM。java平台扮演的始终是一个缓存角色,它介于程序与系统的中间。(Java平台:JavaSE,JavaEE,JavaME决定java体系结构)主要影响平台无关的因数:java平台部署 只有拥有java平台的设备才能运行。由已有的java平台实现和发布的版本决定。Java的平台版本 并非所以的 标准运行时库在java平台上都是可用的。每个平台实现的API是不同的。本地方法 除了平台版本外还有一个重要的因素是你是否调用的了本地方法。(用C++来代替java代码)所以尽量避免直接或者间接调用本地方法。如图:对虚拟机的依赖 在编写java程序时.. 阅读全文
posted @ 2011-12-23 16:49 程序员-张三 阅读(219) 评论(0) 推荐(0) 编辑

摘要: 之前一直想找个网站记录下自己平时的经验。也试过许多主流网站!不过都是很花俏或者广告太多,就不了了之了。想想还是还是自己过于慵懒,不肯动脑筋下手。经过这么些天的沉淀,确实要找个空档来整理下来。所谓“温故而知新”!记得前些年一次面试,当时面试官问的很多,几乎横跨JavaEE。甚至还有手机开发。不过在此之前确实也做过几个月的手机开发,对手机开发也略知一二。故方方面面答了些。当时有两个面试官,一个大概是技术经理一个是组长之类的。谈了有些时间里,组长在旁边说了一句“什么都知道,什么都不精”。当时确实不以为然,自己感觉在javaWeb开发方面确实没什么问题。时至见日才明白。懂的多并不牛,你在懂的多你只能做 阅读全文
posted @ 2011-12-23 16:08 程序员-张三 阅读(178) 评论(0) 推荐(0) 编辑