本文接上一篇:乐字节Java|this关键字、static关键字、block块。本文是接着讲述JavaGC垃圾回收机制、package 和 import语句。

一、GC垃圾回收机制

GC全名:Garbage Collection 垃圾回收机制

程序员无权调用垃圾回收器。

程序员可以通过System.gc()。通知GC运行,但是JAVA规范并不能保证立刻运行。

finalize方法,是JAVA提供给程序员用来释放对象或资源的方法,但是尽量少用。

GC回收的三种基本方式

1、标记-清除

  标记存活对象,清理其他垃圾对象(阴影为存活对象,空白为垃圾对象)。

  优点:效率高

  缺点:产生碎片,使内存分布碎片化,造成内存空间不连续。若出现大的对象,内存空间不连续则难以存取

2、标记-整理

  标记存活对象,清除垃圾对象,对垃圾对象进行整理。

  优点:没有碎片

   缺点:效率低

3、复制

 在内存中分配两块内存,将标记的存活对象复制到另一块内存当中,再将原内存的对象清除。

  优点:效率高

  缺点:浪费内存

二、package 和 import语句

为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。

一般的命名为:公司域名倒写+功能名|模块名。

package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。

格式:package com.shsxt.test; → package pkg1[.pkg2[.pkg3…]];

Java编译器把包对应于文件系统的目录管理,package语句中,用’.’来指明包(目录)的层次,例如使用语句: package com.shsxt ,则该文件中所有的类位于.\com\shsxt 目录下

注意:不要定义与jdk相同的包,相同的类, 否则会引起很多你觉得莫名其妙的问题

如果一个类存在包名,则在使用该类时,必须使用全额限定名(简称全名或完整类名,com.shsxt.MyClass),编译器才能找到该类;也可以使用import在文件的开头引入要使用到的类。

不需要使用import的类有:

  • 语言包 (java.lang)下的类
  • 同包下的类

静态导入:

import语句不仅可以导入类,还增加了导入静态方法的功能。

三、总结

如果想将一个类放入包中,在类的源文件首行使用package

必须保证该类的class文件位于正确的目录下

另外的类想访问的话:

1、写全名

2、引入

1)、* 模糊匹配(会将该包下所有用到的类引入进来),会降低编译速度,但是不会影响运行速度。

2)、具体类名。

3、同包下的类不需要导入。

JDK中常用的包简单介绍:

①java.lang –语言包:语言中常用的功能,如String、Math、System、Integer、Thread…

②java.util – 工具包:提供一些实用的工具类,如 容器(List、Set、Map…),日期类

③java.io – 输入输出包:提供操作读取文件的相关类,如File、InputStream、OutputStrem…

④java.net – 网络包:操作远程资源的类,如InetSocketAddress、 DatagramPacket 、ServerSocket…

⑤java.sql – 数据库包:操作JDBC的类,Connection、Statement、ResultSet….

欢迎关注乐字节,Java相关技术文章干货持续更新。

乐字节Java|GC垃圾回收机制、package和import的更多相关文章

  1. 面试官,不要再问我“Java GC垃圾回收机制”了

    Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈. 楔子-JVM内存结构补充 在上篇<JVM之内存结构详解> ...

  2. Android内存优化3 了解java GC 垃圾回收机制1

    开篇废话 如果我们想要进行内存优化的工作,还是需要了解一下,但这一块的知识属于纯理论的,有可能看起来会有点枯燥,我尽量把这一篇的内容按照一定的逻辑来走一遍.首先,我们为什么要学习垃圾回收的机制,我大概 ...

  3. Android内存优化5 了解java GC 垃圾回收机制3

    引言 接App优化之内存优化(序), 作为App优化系列中内存优化的一个小部分. 由于内存相关知识比较生涩, 内存优化中使用到的相关工具, 也有很多专有名词. 对Java内存管理, GC, Andro ...

  4. JAVA gc垃圾回收机制

    一.GC概要   JVM堆相关知识     为什么先说JVM堆?     JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象.这些对象的建立方 ...

  5. Java GC - 垃圾回收机制

    1.简介 对于Java developer来说,了解JVM GC工作原理能够帮助我们开发出更优秀的应用,同时在处理JVM瓶颈时能够更加自由.在最近一年的应用开发中能体会到这些知识带来的好处,并且让我们 ...

  6. 转载 JAVA gc垃圾回收机制

    thanks:https://m.oschina.net/u/123553 一.GC概要 JVM堆相关知识    为什么先说JVM堆?    JVM的堆是Java对象的活动空间,程序中的类的对象从中分 ...

  7. java GC垃圾回收机制G1、CMS

    CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间.对于要求服务器响应速度的应用上,这种垃圾回收器非常适合.在启动JVM参数加上-XX:+UseConcMa ...

  8. Android内存优化4 了解java GC 垃圾回收机制2 GC执行finalize的过程

    1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法. finalize()与C++中的析构函数 ...

  9. java面试题之----JVM架构和GC垃圾回收机制详解

    JVM架构和GC垃圾回收机制详解 jvm,jre,jdk三者之间的关系 JRE (Java Run Environment):JRE包含了java底层的类库,该类库是由c/c++编写实现的 JDK ( ...

随机推荐

  1. The Preliminary Contest for ICPC China Nanchang National Invitational

    目录 Contest Info Solutions A. PERFECT NUMBER PROBLEM D. Match Stick Game G. tsy's number H. Coloring ...

  2. Cogs 329. K- 联赛(最大流)

    K- 联赛 ★★★ 输入文件:kleague.in 输出文件:kleague.out 简单对比 时间限制:1 s 内存限制:32 MB [问题描述] K- 联赛职业足球俱乐部的球迷们都是有组织的训练有 ...

  3. Java中BigDecimal的equals与compareTo的区别

          有个是否为零的判断[BigDecimal.ZERO.equals(ratio)]我用了BigDecimal的equals方法,结果,判断失败,因此特地分析一下equals与compareT ...

  4. nodeJs 初学案例摘要

    在学习nodeJs的时候,照着文档做的,但是到最后的上传文件显示图片总是报错, 所用的fs.renameSync出错:Error: EXDEV, cross-device link not permi ...

  5. MongoDB下载不了的问题

    官网上,mongoDB数据库下载不了,搜了半天,在知乎上找到答案:在MongoDB download center中选择community-server,拖到底部有一个all versions bin ...

  6. IOS添加真机调试设备

    注意点: 有时需要同意协议什么的,很多时候刷新出来都是白屏,解决办法: 对于不能确认新协议的问题,我发现了一个解决方法:登陆后,直接在浏览器的地址框访问:https://developer.apple ...

  7. Outlook 邮箱脱机工作解决方法

    在运维过程中,有时候会收到用户这样的抱怨:为什么别人发给我的邮件我都收不到,我的邮件也发不出去了? Outlook 2016图标上显示着一个红叉... 这种情况有时候是因为Outlook正在脱机工作, ...

  8. 反向代理Nginx

    引用:https://baijiahao.baidu.com/s?id=1600687025749463237&wfr=spider&for=pc 参考下图,正向代理用途:Client ...

  9. JMeter-因cookie管理器不兼容返回H5内容内容的解决

    问题: 使用的post方法但是显示的是get,并且返回页面H5的内容 解决: jmeter版本太低了,需要选择cookie管理期选择兼容模式(一般默认的为standard)

  10. 富文本编辑器handyeditor,上传和预览图片的host地址不一样

    使用富文本编辑器(官网)时,大多时候都会用到图片上传,但是下载的富文本编辑器的默认配置是只有一个上传地址的host的. var he = HE.getEditor('editor', { autoHe ...