【Java】Java中最基础的但是容易被忽视的东西,持续更新...

文章目录

      • Java万物皆对象?
      • jdk和jre区别?
      • Java IO的底层实现(BIO NIO AIO)?
      • Java编译执行过程?
      • JVM垃圾收集器同步运行与异步运行?

Java万物皆对象?

Java中万物皆对象,表示一切类继承于Object类

jdk和jre区别?

jdk是Java开发工具,jre是Java运行环境;Java开发需要jdk,Java运行需要jre

Java IO的底层实现(BIO NIO AIO)?

Java中提供的IO有关的API,在文件处理的时候,其实依赖操作系统层面的IO操作实现的可以把Java中的BIO、NIO和AIO理解为是Java语言对操作系统的各种IO模型的封装。程序员在使用这些API的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了

Java编译执行过程?

命令行编译运行java程序使用命令 javac进行编译 和 java进行执行。
【Java】Java中最基础的但是容易被忽视的东西,持续更新..._第1张图片

javac:java编译器,将源代码变成称字节码,A.java文件变为A.class文件,JVM只能识别.class文件,这就是JVM的语言无关性,JVM可以在不同操作系统上执行,这就是JVM的平台无关性,跨平台。
java:java解释器,用来执行Java程序的字节码文件。

javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。 该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld.java。运行javac命令后,如果成功编译没有错误的话,会出现一个 HelloWorld.class 的文件。

java 后面跟着的是java文件中的类名,例如 HelloWorld 就是类名,如: java HelloWorld。

注意:java命令后面不要加.class。

如果javac 编译时报"编码GBK的不可映射字符",就加上编译格式,在用javac
编译java类的时候报“编码GBK的不可映射字符”错误,解决方法是javac -encoding UTF-8 XXX.java,也可以将java文件保存为ANSI格式,继续用javac xxx.java

JVM垃圾收集器同步运行与异步运行?

垃圾收集器作为一个线程运行。当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行。否则垃圾收集器在系统空闲时异步地执行。

你可能感兴趣的:(Java)