每天10道Java面试题,跟我走,offer有!

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了每天10道Java面试题,跟我走,offer有!脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1.简述JDK、JRE、JVM?

一、JDK  JDK(Java Development KIT) 是整个JAVA的核心, 包括了Java运行环境(Java Runtime envirnment), 一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。  JDK是java开发工具包, 基本上每个学java的人都会先在机器 上装一个JDK, 那他都包含哪几部分呢? 在目录下面有 六个文件夹、一个src类库码压缩包、和其他几个声明文件。 其中,真正在运行java时起作用的 是以下四个文件夹:bin、include、lib、 jre。 有这样一个关系,JDK包含JRE,而JRE包 含JVM。  bin:最主要的是编译器(javac.exe)  include:java和JVM交互用的头文件  lib:类库  jre:java运行环境   二、JRE  JRE(Java Runtime Environment,Java运行环境) 包含JVM标准实现及Java核心类库。 JRE是Java运行环境,并不是一个开发环境, 所以没有包含任何开发工具(如编译器和调试器)  JRE是指java运行环境。 光有JVM还不能成class的 执行, 因为在解释class的时候 JVM需要调用解释所需要的类库lib。 ( jre里有运行.class的java.exe)  JRE ( Java Runtime Environment ), 是运行 Java 程序必不可少的 (除非用其他一些编译环境编译成.exe可执行文件……), JRE的 地位就象一台PC机一样, 我们写好的Win64应用程序需要操作系统帮 我们运行, 同样的,我们编写的Java程序也必须要JRE才能运行。  三、JVM  JVM(Java Virtual Machine), 即java虚拟机, java运行时的环境, JVM是一种用于计算设备的规范, 它是一个虚构出来的计算机, 是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 针对java用户, 也就是拥有可运行的.class文件包(jar或者war)的用户。 里面主要包含了jvm和java运行时基本类库(rt.jar)。 rt.jar可以简单粗暴地理解为: 它就是java源码编译成的jar包。 Java虚拟机在执行字节码时, 把字节码解释成具体平台上的机器指令执行。 这就是Java的能够“一次编译, 到处运行”的原因

2.JDK、JRE、JVM三者的有什么联系和区别?

1.三者联系: JVM不能单独搞定class的执行, 解释class的时候JVM需要调用解释所需要的类库lib。JDK下面的的jre目录里面 有两个文件夹bin和lib, 在这里可以认为bin里的就是jvm, lib中则是jvm工作所需要的类库, 而jvm和 lib和起来就称为jre。 JVM+Lib=JRE。 总体来说就是, 我们利用JDK(调用JAVA API)开发了属于 我们自己的JAVA程序后, 通过JDK中的编译程序(javac) 将我们的文本java文件编译成JAVA字节码, 在JRE上运行这些JAVA字节码, JVM解析这些字节码, 映射到CPU指令集或OS的系统调用。  2.三者区别:  JDKJRE区别: 在bin文件夹下会发现, JDK有javac.exe而JRE里面没有, javac指令是用来将java文件编译成class文件的, 这是开发者需要的, 而用户(只需要运行的人)是不需要的。 JDK还有jar.exe, javadoc.exe等等 用于开发的可执行指令文件。 这也证实了一个是开发环境, 一个是运行环境。  b.JREJVM区别: JVM并不代表就可以执行class了, JVM执行.class还需要JRE下的lib类库的支持, 尤其是rt.jar。 

3、简述Java程序编译和运行的过程?

Java程序从源文件创建到程序运行要经过两大步骤: 1、源文件由编译器编译成字节码(ByteCode);  2、字节码由java虚拟机解释运行。 因为java程序既要编译同时 也要经过JVM的解释运行, 所以说Java被称为解释语言    第一步(编译): 创建完源文件之后, 程序先要被JVM中的java编译器 进行编译为.class文件。 java编译一个类时, 如果这个类所依赖的类还没有被编译,  编译器会自动的先编译这个所依赖的类, 然后引用。 如果java编译器在指定的目录下 找不到该类所依赖的类的 .class文件或者 .java源文件, 就会报"Cant found Sysbol"的异常错误。  编译后的字节码文件格式 主要分为两部分: 常量池和方法字节码。 常量池记录的是代码出现过的(常量、类名、成员变量等) 以及符号引用(类引用、方法引用,成员变量引用等); 方法字节码中放的是各个方法的字节码。  第二步(运行): java类运行的过程大概分为两个步骤: (1)类的加载  (2)类的执行。 需要说明的一点的是: JVM主要在程序第一次运行时主动使用类的时候, 才会立即去加载。 换言之, JVM并不是在运行时就会把所有使用到的类 都加载到内存中, 而是用到,不得不加载的时候, 才加载进来,而且只加载一次! 

4、请说出八种基础数据类型及字节大小?

1. byte                  82. short                163. int                  324. long                 645. float                326. double               647. boolean               18. char                 16

5.说说&&&的区别?

&和&&都是逻辑运算符, 都是判断两边同时真则为真,否则为假; 但是&&当第一个条件不成之后, 后面的条件都不执行了, 而&则还是继续执行, 直到整个条件语句执行完为止。 

6.floatfloat f=3.4是否正确?

答: 不正确; 精度不准确, 应该用强制类型转换, 如下所示:float f=(float)3.4  

7.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
**short s1 = 1; s1 = s1 + 1; s1+1
运算结果是int型,
需要强制转换类型;
short s1 = 1; s1 += 1;
可以正确编译,自动类型提升。**
8.int 和 Integer 有什么区别?

Java 提供两种不同的类型: 引用类型和原始类型(或内置类型); int是java的原始数据类型, Integer是java为int提供的封装类。   引用类型和原始类型的行为完全不同, 并且它们具有不同的语义。 引用类型和原始类型具有不同的特征和用法,  它们包括:大小和速度问题, 这种类型以哪种类型的数据结构存储,  当引用类型和原始类型 用作某个类的实例数据时所指定的缺省值。  对象引用实例变量的缺省值为 null, 而原始类型实例变量的缺省值 与它们的类型有关。 

9.在JAVA中,如何跳出当前的多重嵌套循环?

在最外层循环前加label标识, 然后用break:label方法即可跳出多重循环。 ok:while(true){     while(true){         break ok;     } } 

10.使用嵌套的for循环打印九九乘法表

public class test {     public static void main(String[] args) {         for (int i = 1; i <= 9; i++) {             for (int j = 1; j <= i; j++) {                 System.out.PRint(j + "*" + i + "=" + i * j + " ");             }             System.out.println();         }     }  

脚本宝典总结

以上是脚本宝典为你收集整理的每天10道Java面试题,跟我走,offer有!全部内容,希望文章能够帮你解决每天10道Java面试题,跟我走,offer有!所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。