第一篇:Java中一切都是对象

第一,万物皆对象?

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

第二,JDK和JRE?JVM和HotSpot虚拟机的关系?平台无关性和语言无关性的辨析?

问题1:一句话总结JDK和JRE?
回答1:JDK是Java开发工具,jre是Java运行环境;Java开发需要JDK,Java运行需要JRE。

问题2:JVM和HotSpot虚拟机的关系?
问题2:JVM是运行.class文件的平台,是理论上的,HotSpot虚拟机实现JVM一种方式,是实际上的。所以,我们使用的是HotSpot虚拟机实现的JVM。

问题3:平台无关性和语言无关性的辨析?
回答3:
平台无关性:java程序只要配合上JVM,就可以在任何操作系统是运行,本质是因为JVM平台可以在任何操作系统上搭建;
语言无关性:JVM只运行.class文件,而并不需要这个.class文件是.java文件编译生成的,可以是其他语言生成的,只要是.class文件就好。

第三,Java IO?

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

第四,启动:Java编译 + Java解释执行?

Java程序使用 javac进行编译 和 java进行执行。
在这里插入图片描述

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的不可映射字符"?
解决1:加上编译格式,即 javac -encoding UTF-8 XXX.java;
解决2:将java文件保存为ANSI格式,然后用javac xxx.java

第五,结束:JVM垃圾收集器 同步运行与异步运行?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祖母绿宝石

打赏一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值