Java 基础学习常见问题

举报
cloud昵称bbs 发表于 2021/06/04 19:49:26 2021/06/04
【摘要】 java语言的特点是什么? 一个 `.java` 源文件中是否可以包括多个类(不是内部类)?有什么限制? 设置 `path` 的目的是什么? JDK,JRE和JVM的关系是什么? GC是什么? 为什么要有GC? 垃圾回收器的基本原理?

java语言的特点是什么?

  • 面向对象性:
    两个基本概念:类、对象;
    三大特性:封装、继承、多态
  • 健壮性:
    吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
  • 跨平台性:
    通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”

一个 .java 源文件中是否可以包括多个类(不是内部类)?有什么限制?

一个 .java 源文件中可以包含多个类(非内部类)。
但最多只有一个类名声明为 public,且要与文件名相同。

Java 的 class 名字 不是 必须和其文件名相同。
public class 的名字 必须 和文件名相同。

例如
Something 类的文件名叫 OtherThing.java

    class Something {
        public static void main(String[] something_to_do) {        
            System.out.println("Do something ...");
        }
    }

设置 path 的目的是什么?

在控制台的任何文件路径下,都可以调用 jdk 指定目录下的所有指令。

JDK,JRE和JVM的关系是什么?

JDK(Java Development Kit Java开发工具包)包含 JRE(Java Runtime Environment Java运行环境),JRE包含 JVM(JVM Java Virtual Machine),如下图所示

图片.png

JDK 是提供给 Java 开发人员使用的,其中包含了 java 的开发工具,也包括了 JRE。所以安装了 JDK,就不用在单独安装 JRE 了。

  • 其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等包括 Java 虚拟机和 Java 程序所需的核心类库等,

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可

GC是什么? 为什么要有GC?

GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。

垃圾回收器的基本原理?

对于 GC 来说,当程序员创建对象时,GC 就开始监控这个对象的地址、大小以及使用情况。通常,GC 采用有向图的方式记录和管理堆(heap)中的所有对象(可达性分析)。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。

当 GC 确定一些对象为"不可达"时,GC 就有责任回收这些内存空间。程序员可以手动执行 System.gc(),通知 GC 运行,但是 Java 语言规范并不保证 GC 一定会执行。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。