java面试题
20:String是基本数据类型吗?
不是
21:多线程有几种实现方式,同步有几种实现方式,stop()和suspend()方法为什么不推荐使用
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify\
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。 调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被\挂起\的线程恢复 运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的 Thread类中置入一个标志,
22:请阐述一下你对Java多线程中同步的几种使用方式,区别,以及其重要性。
同步有两种实现方式 1.同步方法 2.同步代码块
多线程的同步时为了能够保证关键数据在单位时间能只能有一个线程操作,保证数据的同步性,安全性
23:final ,finally , finalize 的区别。
Final 有最终的不可改变的意思,可以用来修饰基本数据使之成为常量,该常量只能在编译期进行修改 。
当修饰对象时,则该对象引用不能改变,但该对象本身可以做修改。 当修饰方法时,表示该方法在被继承时不能被修改,或覆盖 当修饰类时,表示该类不会别别的类继承
Finally 用于在Try-catch-finally语句中 finally 中的代码块时必须执行的
finalize 当某个对象要被当做垃圾回收时,会调用finalize()方法,该方法用于检查对象不被运行状态的对象引用或间接地引用 sleep() 和wait()有什么区别?
Sleep()是线程中的一个方法,该方法用于控制自身线程的流程,当执行sleep()方法睡眠时保持对象锁。
Wait()方法是object类中的一个方法,该方法用于让一个线程处于等待状态并释放对象锁,当该线程想要再次执行时需要调用notity方法唤醒此线程
24:abstact 的method是否可同时是static,是否可同时是native,是否可同时是synchronized ?
不可以
25:当一个线程进入一个对象的Synchronized方法后,其他线程是否可进入此对象的其他方法
可以去访问非Synchronized方法。
11
java面试题
26:当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值
传递还是引用传递?
值传递
27:创建一个class对象有几种方法?分别是什么?
有三种:
Class c=Class.for(“java.lang.String”); String str=new Stirng(); Class c=Str.getClass();
3.Class c=String.Class;
28:如何获取一个目录下有多少个文件?
File f=new File(“D://”);
Int count=f.list().length;
29:当一个对象不再被使用时,如何才能从内存中消失?
将该对象引用值为空
12
java面试题
30:请写一个整数组成的矩阵转置程序,行变成列,列变成行?
int[][] transponse(int[][] t);
public int[][] transponse(int[][] t){
int [][] f=new int[t[0].length][t.length];
for(int i=0;i for(int x=0;i 31:下列哪些语句关于内存回收的说明是正确的?( b ) A,程序员必须创建一个线程来释放内存 B,内存回收程序负责释放无用内存 C,内存回收程序允许程序员直接释放内存 D,内存回收程序可以在指定的时间释放内存对象 32:下面异常是属于 Runtime Exception 的是( abcd )(多选) A, ArithmeticException B, IllegalArgumentException C, NullPointerException D, BufferUnderflowException 33:Math.round(11.5)等于多小().Math.round(-11.5)等于多小().( c ) A 11,-11 B 11,-12 C 12,-11 D 12,-12 34:下列程序段的输出结果是:(b ) Void complicatedexpression_r(){ int x=20,y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); A,ture B,false C,1 D,011.activity 13 java面试题 35:以下程序的运行结果(B )//[-128~127]从对象池取,超了后新建对象 Integer a = 34556; Integer b =34556; If(a==b){ System.out.println(“Equal”); }else{ System.out.println(“Not equal”); } Equal B.Not equal C.无输出 D.编译错误 36:以下程序的运行结果是(B ) public class test{ public static void main(String args[]){ System.out.print(100%3); System.out.print(“,”); System.out.print(100%3.0); } } A.1,1 B.1,1.0 C.1.0,1 D1.0,1.0 37:Java语言中字符串 “学Java” 所占的内存空间是( B) A.5个字节 B.6个字节 C.7个字节 D.10个字节 38:Math.round(11.5)等于多少()。Math.round(-11.5)等于多少?(C) A.11,-11 B.11,-12 C. 12.-11 D.12,-12 39:下列程序段的输出结果是:(B) void complicatedexpression_r(){ int x=20,y=30; boolean b; b=x>50&&y>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); } true B.false C.1 D.0 40:代码段如下,选项中描述正确的是 A static int ternary(int s){ int i=s; return i < 10 ? i * 100 : i * 10 ; } 14 java面试题 A 这是个静态方法,不需要实例化就可以被调用 B 返回值是方法临时变量的值 C 返回值等于i * 10 D 返回值等于i * 100 41:如下描述正确的是 AD A 一个java中只能有一个class是public的 B 如果一个类的构造方法是私有的,那么实例化此类就需要有一个非私有的方法 C protected的方法无法被子类访问 D abstract类不可以直接实例化 42:关于final关键字,正确的是 ABCDE A. 使用final关键字,是出于设计与效率的考量 B 使用final关键字修饰属性,句柄指向的基础类型是一个常量 C final关键字修饰属性,句柄指向一个对象,则对象不可以改变 D final关键字修饰方法,则此方法不允许覆盖 E final 关键字修饰方法,则此方法不允许重载 43:如下描述正确的是 ABCD A HashMap使用键值对描述数据 B List和Set都是接口 C List的实现类存储数据允许重复 D Set的实现类存储数据是无序的 E List的实现类存储数据是无序的 44:如下描述正确的是 AD A 继承Thread类,可以创建一个线程 B run()方法中定义循环部分,并指出循环终结条件 C 每个对象默认都包含了一把锁 D 多线程竞争临界资源,可能会导致死锁 45:下面描述正确的是 ABCD A。 MVC涉及模式中,servlet实现controller功能 B applet浏览器运行的java小程序 C javabean 用于对应数据库中的数据表 D SSH(Struts,Spring ,Hibernate)Spring进行流程控制,Struts进行业务流转,Hibernate进行数据库操作的封装 46:下面说法正确的是 (ABD) A用new 关键字实例化接口,必须实现接口中的所有抽象方法 B 接口中不可以定义私有方法 C 接口中可以定义私有属性 15 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2016_常规java面试题综合版(3)在线全文阅读。
相关推荐: