• GC

java的垃圾回机制是java语言的重要机制之一。当程序创建对象,数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中。当这块内存不再被任何变量引用时,这块内存就变成了垃圾,等待系统自动回收。一个对象在堆内存中运行,一共有3中状态:激活状态,去活状态,死亡状态。



值得注意的是:1,垃圾回收机制只负责回收堆内存中的对象,不会回收任何的物理资源(比如数据库连接)

2,程序无法精确的控制垃圾回收的运行,垃圾回收总是在合适的时候来进行。

3,垃圾回收机制在回收任何对象前,总会先调用它的finalize方法,这个方法可能使得该对象重新复活,取消垃圾回收。

      既然说垃圾回收机制是随机的,那么我们想人为的控制垃圾回收,就强制系统垃圾回收。

public class Linkin {

    public static void main(String[] args) {
for (int a = 0; a <= 5; a++) {
new Linkin();
System.out.println("帝王注定孤独,江山与他何干...");
//如果没有下面2行代码,可以看到系统退出,都没有调用下面的finalize方法。
//System.gc();这2行代码作用完全一样,强制系统进行进行垃圾回收机制。
Runtime.getRuntime().gc();
}
} @Override
//关于这个方法多说几句:1,永远不要主动的调用对象的这个方法,这个方法应该交给垃圾回收机制来完成。
//2,这个方法什么时候被调用,是否被调用都具有不确定性。不要把这个方法当做一定执行的方法。
//3,当jvm执行去活对象的这个方法时,可能使得这个对象重新变成激活状态
//4,jvm执行这个方法出现了异常,垃圾回收机制也不会报告异常,而是继续执行。
public void finalize() {
System.out.println("系统在进行垃圾回收...");
}
}

  • jar
jar文件全称是java archive file:java档案文件。jar文件是一种压缩文件,与我们常见的zip压缩文件兼容。区别就是多了一个META-INF/MANIFEST.MF文件,这个清单文件是在生成jar文件时系统自动创建的。使用jar包有以下几个好处:安全,加快下载速度,压缩,可移植性。







当一个应用程序开发成功后,大致上有3种发布方式:

1;使用平台相关的编译器将整个应用编译成与平台无关的可执行性文件。

2;为整个应用编译一个批处理文件。

3;将一个应用程序制作成可执行的jar包,通过jar包来发布应用。这种最常用了。。。





初次之外,java还可能生成2种压缩包:war包和ear包。其中war包文件是web archive file,对应一个web应用文档;ear文件时enterprise archive file,对应一个企业应用文档。上面的3中包其实都一样,都是用来发布应用程序,只是文件的后缀不一样而已。我是做web的,所以打出来的包都是ear包。


 


下面是ear包结构:
 
打开里面的war包:




我一般使用好压来操作jar包,选择的压缩文件方式是ZIP。当然也可以用WinRAR来操作jar包,WinRAR还可以支持搜索功能呢。



























































linkin大话面向对象--GC和jar包的更多相关文章

  1. linkin大话面向对象--包和导入

    我们现在的代码都扔在一个文件夹里面,比如以后我们做项目,是不是有可能有非常非常多的代码,那我就希望把不同功能和模块的类方便管理,放到不同的文件夹下,引出包概念. 什么是包,就一个文件目录,为了处理重名 ...

  2. linkin大话面向对象--类和对象

    我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静 ...

  3. linkin大话面向对象--闭包和回调

      先来理解2个概念:闭包和回调   什么是闭包? 闭包是一个可调用的对象,它记录了一些信息,这些信息来自于创建他的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为他不仅包含了外部类对象的信 ...

  4. linkin大话面向对象--内部类

    内部类说白了就是类中有类 内部类:嵌套类 外部类:宿主类 内部类主要有以下作用:记住了3个字:多继承... 1,内部类提供了更好的封装,可以把内部类隐藏在外部类中,不允许同一个包中的其他类访问该类. ...

  5. linkin大话面向对象--多态

    java引用变量有2个类型,一个是编译时类型,一个是运行时类型: 编译时类型:声明的类型,把它看做是什么东西 运行时类型:真正的类型,实际上指的是什么东西 如果编译时类型和运行时类型不同,就出现多态. ...

  6. linkin大话面向对象--枚举

    枚举类(enum) 其实我们使用到枚举的地方还是很多的,其实我们可以完全人工的来实现枚举的功能.比如说我现在手里的项目我就是自己实现的枚举,说白了,枚举就是一个类的多例模式. 1,使用enum声明,默 ...

  7. linkin大话面向对象--包装类

    Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢? 基本数据类型 包装类 byte Byte short Short int Int ...

  8. linkin大话面向对象--java关键字

    java中的关键字有以下几个,他们不能作任何其它的用途. 发现没,java中的关键字全是小写,java是严格区分大小写的. abstract  default  null  synchronized ...

  9. linkin大话面向对象--初始化块

    java使用构造器来对单个对象进行初始化操作,使用构造器先完成整个java对象的状态初始化,然后将java对象返回给程序,从而让整个java对象的信息更加完整.与构造器作用非常类似的是初始化块,它也可 ...

随机推荐

  1. python 命令

    pip list 可以查看已经安装的插件 pip show name 可以查看插件的信息(如:pip show selenium) pip install selenium==[version num ...

  2. COM学习(三)——COM的跨语言

    COM是基于二进制的组件模块,从设计之初就以支持所有语言作为它的一个目标,这篇文章主要探讨COM的跨语言部分. idl文件 一般COM接口的实现肯定是以某一具体语言来实现的,比如说使用VC++语言,这 ...

  3. 解决linux 乌班图下使用eclipse创建类和其他各种操作进程卡死的问题的一种可能方法

    [转载]http://blog.csdn.net/u010652906/article/details/51626257Eclipse设置面板菜单可以点,左边面板不出现,创建类.创建包都会卡死的问题, ...

  4. CTF---Web入门第四题 Forms

    Forms分值:10 来源: Ph0enix 难度:易 参与人数:4945人 Get Flag:2776人 答题人数:2824人 解题通过率:98% 似乎有人觉得PIN码是不可破解的,让我们证明他是错 ...

  5. bzoj 2303: [Apio2011]方格染色

    传送门 Description Sam和他的妹妹Sara有一个包含n × m个方格的表格.她们想要将其的每个方格都染成红色或蓝色.出于个人喜好,他们想要表格中每个2 × 2的方形区域都包含奇数个(1 ...

  6. [bzoj1774] [Usaco2009 Dec]Toll 过路费

    Floyd神用法...设dis[i][j]表示i点到j点的最短路(只算边权),map[i][j]表示i到j最小费用 将n个点先按照点权排一下序...这样就可以比较方便的求出路径上最大点权了... 因为 ...

  7. 应用中Token的作用

    Token 的作用 Token,就是令牌,最大的特点就是随机性,不可预测.一般黑客或软件无法猜测出来. 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方: 1)防止表单重复提交 ...

  8. [学习OpenCV攻略][011][显示图片]

    学习资料: http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html   包含头文件 core.hpp:包含 ...

  9. Android开发之漫漫长途 XII——Fragment详解

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  10. 腾讯云中ssL证书的配置安装

    https://cloud.tencent.com/document/product/619/12797 配置 Nginx 和 HTTPS 完成以上准备工作,就要开始配置 Nginx 和 HTTPS ...