#创作灵感#
最近准备应聘Java开发工程师,但是工作大部分时间都在使用Ruby(觉得自己的Java技术不过硬)。现在正准备系统地学习下Java,在学习的过程中,遇到了一些面试题,整理归纳分享。
1.JDK和JRE的区别?
(1)JDK(Java Development Kit),开发工具包
(2)JRE(Java Runtime Environment),java运行环境
只需要运行Java,安装JRE;需要开发Java项目,必须安装JDK,包含JRE。
2.Java是解释型语言吗?
Java不是解释型语言(混合型------先编译,后解释),需要先编译成字节码(16进制)文件,再通过JVM(Java虚拟机)对字节码文件进行进一步的解析,生成机器码(二进制码),底层操作系统才能识别机器码进行程序的运行。
3.Java为什么需要先编译?
为了实现Java的一大特性:跨平台(同一套代码可以在不同的操作系统上运行)。
4.如何实现跨平台?
通过编译的方式。
Java源代码编译成字节码文件,字节码文件分别放到不同的操作系统中,由JVM将它们各自解析成对应操作系统的机器码进行执行。
.java->.class->运行


5.Java源代码编译成字节码的命令是什么?
javac 类型.java
6.Java字节码运行的命令是什么?
java 类名
5,6命令都可以省略,由开发工具帮助我们来完成。
7.为什么要使用变量?
解决数据存储地址的问题。
数据都是在内存中进行存储的,存在一个问题?程序会随机分配内存区域。
内存地址是16进制的数据,随机分配,地址很难记住
8.如何解决这个问题?
使用变量。
变量就是为了解决内存地址很难记忆的问题。
相当于给内存地址起了一个别名,取数据的时候直接通过变量名取即可,不需要再通过内存地址来取数据了。
java
public class Test {
public static void main(String[] args){
int num = 100;
num++;
System.out.println(num);
}
}