JAVA基础知识面试题集锦(1)

1.JDK和JRE分别是什么意思?

答:

JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。

JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

2.String是基本数据类型吗?

答:

不是。String 是引用数据类型。

基本数据类型包括byte、int、char、long、float、double、boolean和short。

引用数据类型包括:类,数组,接口等(简单来说就是除了基本数据类型之外的所有类型)

3.float f=3.4这种格式是正确的吗?

答:

不正确

精度不准确,应该用强制类型转换,例如:float f=(float)3.4 或float f = 3.4f

在java里面,没小数点的默认是int,有小数点的默认是 double;

int 转成 long 系统自动作没有问题,因为后者精度更高

double 转成 float 就不能自动做了,所以后面的加上个 f


4.&和&&有什么区别?

答:&&符号可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。


5.怎样理解JAVA的平台可移植性。

答:

 1.java作为一种编程语言:源代码可移植性

    作为一种编程语言java提供了一种最简单同时也是人们最熟悉的的可移植性--源代码可移植。这就意味着任何一个java程序,不论它运行在何种cpu、操作系统或者java编译器器上都产生一样的结果。这是不是一个新概念,人们使用c或者c++也产生同样的效果,但是使用c或者c++的人们有太多的选择,在许多细节上它都没有严格的定义。这样就导致了同一段程序在不同的环境下会产生不同意外的结果。而java就不同了,由于严密的语义结构,而使编译器不承担这一职责。

    2.java作为一个虚拟机:cpu可移植性

    大多数编译器产生的目标代码只能运行在一种cpu(如Intel的x86系列),即使那种支持多种编译器的目标代码,也不能产生适合多种cpu的目标代码。

    而java不一样,java编译器产生的目标代码针对的是一种并不存在的cpu--java虚拟机,而不是一种具体的cpu。java虚拟机能掩盖不同cpu之间的差别,从而使java-code运行在安装有虚拟机的机器上。

  3.java作为一种虚拟的操作系统和图形用户界面:操作系统的可移植。

   即使经过重新编译,大多数的用C和C++编写的Windows程序也不能在Unix或Macintosh系统上运行。这是为什么呢?因为程序员在编写Windows程序时使用了大量的WindowsAPI和中断调用,而Windows程序对系统功能的调用与Unix和Macintosh程序有很大的差别,所以除非将全套WindowsAPI移植到其它操作系统上,否则重编译的程序仍不能运行。

 JAVA采用了提供一套与平台无关的库函数(包括AWT、UTIL、LANG等等)的方法来解决这个问题。就象JVM提供了一个虚拟的CPU一样,JAVA库函数提供了一个虚拟的GUI环境。


猜你喜欢

转载自blog.csdn.net/weixin_42158640/article/details/80258430