java面试题总结

来源:互联网 发布:图片横向滚动js代码 编辑:程序博客网 时间:2024/05/21 15:45

java面试题总结

1、JDK和jre的区别?

 

   JDK--- 是一种工具,提供了各种编译运行工具,从jdk的安装路径可以看出,jdk包含jre

  JRE---是java虚拟机,它为java运行提供了环境

 JRE和JDK安装到路径中的jre是不同的,这里的jre是开发java项目的

 

环境变量设置

CLASSPATH: JAVA虚拟机的内加载路径

 

2、如何利用JDK来开发编译java程序??

 

JDK是一个基础的开发包

如何编译java文件

javac HelloWorld.java

运行java文件

java HelloWorld

 

3、CLASSPATH对于java开发的作用是什么??

 

配置java类加载的地方,一般在【环境变量】里面进行设置,这样在cmd中执行编译、运行java程序就可以找到类正确的路径了

主要是为java提供一个类搜索路径

 

4、用动态命令来设置classpath?

 c:\> javac -cp c:\java HelloWorld.java

 c:\> java -classpath c:\java HelloWorld

 

5、什么是jvm及其运行原理(运行机制)?

 

jvm-- java虚拟机,是用软件模拟出硬件的效果,它只是认识.class文件---即字节码文件

 

大家都知道java语言是跨操作系统平台,这是为什么呢,它还是java虚拟机的功劳,对于不同的操作平台java虚拟机都会把java语言生成计算机读懂的机器指令。在任何操作系统

中java虚拟机的功能都是一样的。java语言写的源程序通过java编译器,编译成与平台无关的‘字节码程序’(.class文件),然后在OS之上的JAVA解释器重解释执行,而JVM是java

的核心和基础,在java编译器和os平台之间的虚拟处理器。

 

6、java虚拟机为什么不用delete去掉堆栈中不要的变量?

 

因为java的垃圾回收机制,自动去掉不被引用的变量,释放内存

 

7、如何把一个java文件归档(打包成jar)?

 

cmd命令框

c:\>jar  ---查看帮助文档

打包:将HelloWorldl.class打包成hello.jar

c:\>jar cvf hello.jar HelloWord.class

 

 

8、变量

static 修饰的变量  ---  充当着全局变量的范围

局部变量   ---   函数里面定义的变量   or  参数

成员变量  --- 类变量

public static void main(String[] args){

       int b ;  error

      if(false){

                  int b;//在内部的变量能够看到外面的b变量,但是外面定义的变量看不到里面的

       }

     int b;//在这里就可以

}

 

 

9、java变量是哪两种大的类型??

 

1)基本数据类型(值类型)

 

2) 引用数据类型

 

10、包装类

 

好处: 便于传递参数,都是传递同一类型Object,然后到方法里面再转换成各自需要的类型

 

 byte b = (byte)1;// 8 字节                          Byte

boolean bool = false;// 8字节                  Boolean

short  s = (short)1;  // 16字节                  Short

char c = 'a'; // 16字节                                 Character

int i = 1; // 32字节                                       Integer

float  f = 1.0f; //  32字节                              Float

long l = 1L;// 64字节                                   Long

double d = 1.0; //64字节                            Double

Integer inte = Integer.valueOf(i);

i = inte.intValue();

 

 

11、java的装箱和拆箱

jdk 5.0 ----> 自动装拆箱

 

12、== 和equals的区别

for example:

      Integer a =10000;

      Integer b = new Integer(10000) ; //开辟了全新的空间区域

      System.out.println(a==b);  false

      System.out.println(a.equals(b));   true

 

==  在存储空间中的引用的地址是不是同一块地址

equals   object类重写的方法