欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java面试题一,Java面试题

来源: javaer 分享于  点击 36352 次 点评:263

Java面试题一,Java面试题


什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程Java虚拟机知道底层硬件平台的指令长度和其他特性JDK和JRE的区别是什么?JDK(Java Development Kit) Java的开发工具--编译器、调试器、其他工具JRE(Java Runtime Environment)    Java运行时环境,包含虚拟机”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?通过static解决两点情形:1、只想为某特定域分配单一的存储空间,而不去考虑创建了多少对象,甚至不创建任何对象2、希望某个方法不会与包含他的类的任何对象关联再一起,即就算没有创建对象也可以调用这个方法
是否可以在static环境中访问非static变量?使用static方法前不需要创建任何对象,所以不可以在static环境中访问非static方法或者变量
方法(对应于运行时数据区中的Java虚拟机栈中的栈祯)的覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的private方法、变量类私有,其他类继承当前类不可访问到private方法或者变量Java支持的数据类型有哪些?什么是自动拆装箱?byteshortintlongfloatdoublebooleanchar自动装箱:Integer a=3; => Integer a=Integer.valueOf(3);发生在赋值时:Integer i = 10; //装箱 int t = i;     运算时:Integer i = 10; System.out.println(i++);自动拆箱:int i = new Integer(2); -> int i = new Integer(2).intValue();//在-128~127 之外的数 Integer i1 =200; Integer i2 =200; System.out.println("i1==i2: "+(i1==i2)); // 在-128~127 之内的数 Integer i3 =100; Integer i4 =100; System.out.println("i3==i4: "+(i3==i4));输出的结果 i1==i2: false i3==i4: true
说明 : public static Integer valueOf(int i) { if(i >= -128 &;&; i <= IntegerCache.high) // 没有设置的话,IngegerCache.high 默认是127 return IntegerCache.cache[i + 128]; else return new Integer(i);}对于–128到127(默认是127)之间的值,Integer.valueOf(int i) 返回的是缓存的Integer对象(并不是新建对象)所以范例中,i3 与 i4实际上是指向同一个对象。其他值,执行Integer.valueOf(int i) 返回的是一个新建的 Integer对象,所以范例中,i1与i2 指向的是不同的对象
自动装箱是基本数据类型向对应是对象类型转换,反之就是自动拆箱自动装箱和拆箱是由编译器来完成的,编译器会在编译期根据语法决定是否进行装箱和拆箱动作Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?覆盖的另一种说法是重写,即参数列表,返回值函数名必须全部一样,发生在子类重新定义父类方法重载:参数不同,方法名相同(与返回值类型无关),发生在同一个类中Java中,什么是构造方法?什么是构造方法重载?什么是复制构造方法?构造方法:对象被创建的时候调用的方法构造方法重载:参数不同的构造方法Java不支持像c++中的拷贝构造函数什么是值传递和引用传递?值传递是对基本数据类型而言,改变的是副本,不改变原值引用传递对于对象而言,传递的是该对象的地址的一个副本,并不是源对象本身进程和线程的区别是什么?进程是一个程序在其自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,线程:进程中的一个单一的连续控制流程。一个进程可以拥有多个线程。线程又称轻量级进程区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单系统会为每个线程分配一个时间片java运行时系统实现了一个用于调度线程执行的线程调度器,用于确定某一时刻由哪个线程在CPU上运行在java中,线程通常是抢占式,但其本身不支持相同优先级线程的时间片轮换创建线程有几种不同的方式?你喜欢哪一种?为什么?继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池还有一种方式是实现Callable接口同步方法和同步代码块的区别是什么?同步方法默认用this或者当前类class对象作为锁;同步代码块可以选择用任何对象作为锁在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?监视器和锁在 Java 虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联。线程在获取锁之前不允许执行同步代码。什么是迭代器(Iterator)?Iterator 接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的 迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。

相关文章

    暂无相关文章
相关栏目:

用户点评