摘要:
上一篇博文简要分析了Java程序的执行流程,现在再来深入了解一下类和对象的初始化,下面是转载的博文,人家整理的不错,就拿来主义了,哈哈。类的生命周期:分为装载,链接,初始化如图:1)装载:查找并装载类型的二进制数据2)连接:执行验证,准备,和解析(可选) a) 验证:确保导入类型正确 b) 准备:为类变量分配内存,并将其初始化为默认值 c) 解析:把类型中的符号引用转换成直接引用3)初始化:把类变量初始化为默认初值 随着Java虚拟机装载了一个类,并执行了一些它选择进行的验证之后,类就可以进入准备阶段了。在准备阶段,Java虚拟机为类变量分配内存,设置默认初始值:但在到达... 阅读全文
摘要:
前言今天给实验室的同学讲FQ的时候,被中文的目录名恶心到了,写两种方法进行修改修改系统语言环境1.修改系统当前语言环境export LANG=en_US2.更新家目录的文件命名xdg-user-dirs-gtk-update跳出对话框,提示是否更新成英文,同意即可3.修改系统当前语言环境为中文export LANG=zh_CN.UTF-8修改系统配置文件1.当前用户的家目录配置文件位置:vim ~/.config/user-dirs.dirs2.打开看一下应该就知道如何修改了,关键的一点是:先把中文目录重命名,在去user-dirs.dirs相应的信息 阅读全文
摘要:
图解Java对象初始化过程以及方法调用1:虚拟机加载OOPDemo类(省略详细加载过程(装载、链接、初始化)),提取类型信息(具体保存哪些类型信息查看博文:Java虚拟机体系结构),存储到方法区中,对应图中的绿色矩形区域。2:通过保存在方法区的字节码,虚拟机开始执行main方法,main方法入栈。图中箭头1方法压栈。3:进入main方法的第一条指令,new Person(23, "Syskey"); ok,虚拟机看到new指令,就知道要分配堆空间了,给谁分配呢?给Person类的实例对象啊。方法区没找到Person类,就接着装载Person类,并把类型信息存储到到方法区。o 阅读全文
摘要:
<SCRIPT LANGUAGE="JavaScript"> function fresh() { var time1 = document.getElementById("timeD").value; for (var i = 1; i <= 5; i++) { var endtime = new Date(time1); var nowtime = new Date(); var leftsecond = parseInt((endtime.getTime() - nowtime.getTi... 阅读全文
摘要:
创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它 阅读全文
摘要:
abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstractclass和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。理解抽象类abstractcl 阅读全文