Java面试题(1)
1.简述JDK、JRE、JVM?
1 | 一、JDK |
2.JDK、JRE、JVM三者的有什么联系和区别?
1 | 1.三者联系: |
3.简述Java程序编译和运行的过程?
1 | Java程序从源文件创建到程序运行要经过两大步骤: |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32第一步(编译):
创建完源文件之后,
程序先要被JVM中的java编译器
进行编译为.class文件。
java编译一个类时,
如果这个类所依赖的类还没有被编译,
编译器会自动的先编译这个所依赖的类,
然后引用。
如果java编译器在指定的目录下
找不到该类所依赖的类的 .class文件或者 .java源文件,
就会报"Cant found sysbol"的异常错误。
编译后的字节码文件格式
主要分为两部分:
常量池和方法字节码。
常量池记录的是代码出现过的(常量、类名、成员变量等)
以及符号引用(类引用、方法引用,成员变量引用等);
方法字节码中放的是各个方法的字节码。
第二步(运行):
java类运行的过程大概分为两个步骤:
(1)类的加载
(2)类的执行。
需要说明的一点的是:
JVM主要在程序第一次运行时主动使用类的时候,
才会立即去加载。
换言之,
JVM并不是在运行时就会把所有使用到的类
都加载到内存中,
而是用到,不得不加载的时候,
才加载进来,而且只加载一次!
4.请说出八种基础数据类型及字节大小?
1 | 1. byte 8位 |
5.说说&和&&的区别?
1 | &和&&都是逻辑运算符, |
6.float型float f=3.4是否正确?
1 | 答: |
7.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
1 | short s1 = 1; s1 = s1 + 1; |
8.int 和 Integer 有什么区别?
1 | Java 提供两种不同的类型: |
9.在JAVA中,如何跳出当前的多重嵌套循环?
1 | 在最外层循环前加label标识, |
10.使用嵌套的for循环打印九九乘法表。
1 | public class test { |