• 乐字节Java|GC垃圾回收机制、package和import


    本文接上一篇:乐字节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 ,则该文件中所有的类位于.comshsxt 目录下

    注意:不要定义与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…),日期类

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

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

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

     

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

  • 相关阅读:
    Java异常处理设计(三)
    TS 3.1
    TS 3.1
    Other
    样式
    Other
    Other
    TS 3.1
    TS 3.1
    TS 3.1
  • 原文地址:https://www.cnblogs.com/lotbyte/p/11226443.html
Copyright © 2020-2023  润新知