`
dr.han
  • 浏览: 46303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
工厂模式就相当于创建实例对象的new,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了(就需要Refactor重整)。 面向对象的封装(Encapsulation)和 ...
J2EE组件J2EE 应用程序由组件构成。一个 J2EE 组件是自包含的,与其相关的语气它组件通信的类及文件集成到 J2EE 应用程序的功能软件单元。J2EE 规范定义了下面一些组件:   。  运行在客户端的应用客户程序及小程序。   。 运行于服务器网络 Servlet&Jsp 组件。   。  运行于服务端的企业逻辑组件 EJB。   容器: 管理着很多不可配置的服务,如企业 Bean 和 Servlet 的生命周期,数据库连接池, 数据持久化机制和 J2EE 平台 API 的访问权等等 J2EE server(J2EE服务器) J2EE 产品的运行时服务部分。一个 J2EE 服务 ...
JVM通过装载,连接,和初始化一个Java类型,使该类型可以被正在运行的java所使用装载:把二进制形式的java类型读入到JVM中,通过完全限定名产生一个代表该类型的二进制数据流,解析数据流为方法区的内部数据结构,创建一个表示该类型的java.lang.Class实例连接:把读入的数据合并到JVM的运行,它可以分为三个阶段,验证(格式),准备(分配内存),解析(把常量池里面的符号引用转换为直接引用)
 Class文件是什么? Class文件是8bit的二进制流,数据项按顺序存储在class文件中,相邻项没有间隔,占据多个字节空间的项按照高位在前的顺序分为几个连续的字节存放。class文件中,可变长度项的大小和长度位于实际数据之前,使得首先读出项的大小,然后读出项的数据 Class文件的内容: magic:class文件的前4个字节,用于分辨class文件和非class文件minor_version / major_version:魔数的后四位,表明不同的java版本号constant_pool.count / constant_pool:版本号的后面是常量池,常量池存储文字字符串,final ...
 每个程序都运行在一个虚拟机实例上 JVM生命周期 当启动一个java程序时,一个虚拟机的实例就产生了,当程序关闭退出时,JVM也随着消失,如果一个同一台计算机上运行3个java程序,那么就有3个JVM实例。  JVM的体系结构 每个JVM都有一个方法区和一个堆,是所有线程共享的,方法区放置类数据,当程序运行时把创建的对象放到堆中。当每一个线程被创建时,它得到自己的PC寄存器以及一个java栈,如果线程执行的是java-method,pc寄存器总是指示下一条将被执行的指令,java栈总是存储java-method调用的状态(局部变量,传入的参数,返回值,以及中间结果等)JVM没有寄存器,指令集使 ...
强制类型    java在运行时强制执行严格的类型规则,根本无法以可能导致内存冲突的方式直接管理内存。 GC    垃圾收集器禁止显示的指明哪个对象应该被释放,在c++中程序员决定哪个对象被释放,如果没有释放不再使用的对象会导致内存泄露,或者多次释放一个对象,会造成内存冲突。    但你无法确认垃圾收集器什么时候开始收集垃圾,无法确认是否开始收集垃圾已经收集垃圾的持续时间 数组边界检查    每次使用数组的时候,java都会检查数组的边界,如果超过边界会抛出异常,避免内存冲突。 对对象引用的检查    每次使用引用的时候,java都会确保这些引用不为空值
平台无关性 Java中的方法分为两类: java方法和本地方法native method,java方法是用java语言写的代码存储在class文件中,而本定方法为其他语言所写比如C,C++,汇编语言等,编译成和处理器相关的机器代码,并保存在动态链接库中。 java方法是平台无关的,而native方法是本地相关的。如果希望程序是本地无关的,那么通过调用javaAPI来访问底层资源 如果无法调用javaAPI,那么可以写一个平台相关的java代码,比如JNI等,这样的程序就是本地相关的。 安全性 类装载器的体系结构,class文件检查器,java内置的安全特性,安全管理器 类装载器的体系结构 jav ...
Global site tag (gtag.js) - Google Analytics