还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
1.面向对象的特征有哪些方面,Java语言如何实现面向对象的特征封装,多态,继承,抽象
2.abstractclass和interface有什么区别abstract在产生一个对象的实例时,必须被覆盖可以声明一个抽象类的对象,但只要生成该类对象的实例,就必须通过继承覆盖所有abstract方Classjava实现类的关键字Interface接口,集成于它的类必须实现其中所有方法
3.写一个Singleton出来publicclassSingleton{ privateSingleton{} privatestaticSingletoninstance=newSingleton; publicstaticSingletongetInstance{ returninstance; }}4.Java语言如何进行异常处理,关键字throwsthrowtrycatchfinally分别代表什么意义?在try块中可以抛出异常吗?Throws一般在方法声明结尾处,表示调用该方法会抛出哪些异常Throw抛出异常Trycatchfinally3个为组合语句有try必须有catch或者fianallyTry块里面是可能发生异常的一句Catch捕捉处理异常Finally里面的语句无论什么情况都会被执行
5.下面的代码将打印什么?classE1{publicstaticvoidmainString[]args{try{System.out.printlna;return;}finally{System.out.printlnc;}}}输出ac
6.在一台jvmheap2G的机器上,下面程序将出什么错误,如何使程序继续运行并打印出runclassE12{publicstaticvoidmainString[]args{byte[]data=newbyte[0x7fffffff];forinti=0;idata.length;i++{}System.out.printlnrun;}}内存溢出0x7fffffff将值取得小一些
7.什么样的方法可以声明为native需要由操作系统实现,java调用的方法操作系统必须实现它
8.int和Integer有什么区别Integer是类int是基本类型
9.说出ArrayListVectorLinkedList的存储性能和特性ArrayList可以存储任何类型的数据但无序列Vector可增长数组,随着更多元素加入其中,数组变的更大在删除一些元素之后,数组变小LinkedList双向列表每一个对象除了数据本身外,还有2个引用分别指向前一个元素,和后一个元素
10.什么类型的数据可以被这样遍历forObjectobj:datas{}java支持array和iterable
11.JavaIterator是什么,如何使用遍历工具Mapm=newHashMap;Iteratorit=m.keySet.iterator;whileit.hasNext{Objecto=it.next;.....}
12.说出HashMap,HashSet,Hashtable,ConcurrentHashMap的区别HashMap键值对的储存数据每一个key对应一个valueKey不能重复复杂数据被覆盖.HashSet基于HashMap实现的,HashSet底层采用HashMap来保存所有元素Hashtable的实质就是一个数组+链表ConcurrentHashMap用法与HashMap类是,但是它能够提供更高程度的并发性而且,对于大多数成功的get操作它会设法避免完全锁定
13.sleep和wait有什么区别sleep方法是使线程停止一段时间的方法在sleep时间间隔期满后,线程不一定立即恢复执行wait线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用
14.Serializable和Externalizable是什么?有什么区别?SerializableExternalizable用于序列化,他们转换二进制流的过程是不一样.
15.transient关键字有什么用处?下面的代码将打印什么?privatestaticfinallongserialVersionUID=1L;有什么作用?classE2implements{privatestaticfinallongserialVersionUID=1L;transientpublicintvalue1=1;publicintvalue2=1;publicStringtoString{returnvalue1++value2;}publicstaticvoidmainString[]argsthrowsException{baos=newoos=newoos.writeObjectnewE2;bais=newbis=newE2e2=E2bis.readObject;System.out.printlne2;}}transient意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在表示serialVersionUID是个长整型打印
0116.写一个Java枚举出来public enum e {red green yellow blue; }
17.Javaannotation有什么作用,写一个可在运行时获得的annotation是java中的注解
18.同步和异步有何异同,在什么情况下分别使用他们?举例说明同步是防止并发,保证数据的读写安全异步是允许并发,以非阻塞的形式保存程序高效运行一般在处理高并发而言,在方法不需要关系返回结果的情况,一般使用异步处理如果数据在线程间是共享数据那样一般我们使用同步处理
19.请在不使用synchronized关键字的情况下,保证foo线程安全classE4{lock=newpublicvoidfoo{}}
20.什么是线程池,什么是工作队列?ThreadPoolExecutor和ScheduledThreadPoolExecutor是什么,有什么区别?线程池类似于缓冲池就是先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态工作队列类似一个排队系统请求首先进入队列有观察者线程分配工作ThreadPoolExecutor也就是我们经常说到的线程池,通过该类,应用可以直接拿来使用,只要在初始化时设置不同的参数即可ScheduledThreadPoolExecutor可以构造一个固定大小的线程池来执行任务
21.说出数据连接池的工作机制是什么服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接调用客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定释放当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接
22.C/S与B/S区别是什么?C/S胖客户端需要客户端程序B/S瘦客户端只需要浏览器不需要客户端程序
23.Java代码查错,以下类,抽象类,接口均有错误,请指出abstractclassE5{abstractvoidfoo{}}classE6TextendsObject{Tvalue;E6Tvalue{this.value=value;}publicstaticTextendsObjectTcreateTTvalue{returnnewE6Tvalue;}}classE7{publicclassE71implementsSerializable{staticlongtype=1L;publicvoidsetTypelongtype{E
71.type=type;}}E71data;publicE7E71data{this.data=data;}}interfaceE8extendsSerializable{protectedvoidbar;}
24.编写代码实现同一平面内两圆是否碰撞,其中第一个圆圆心坐标为x1y1,半径是r1,第二个圆圆心坐标为x2y2,半径是r2,数据结构自定义classE1{privateintx;privateinty;privateintr;publicE1intxintyintr{this.x=x;this.y=y;this.r=r;}publicStringfunE1e{doubler=Math.sqrtthis.x-e.x*this.x-e.x+this.y-e.y*this.y-e.y;returnr=this.r碰撞:没有碰撞;}publicstaticvoidmainString[]args{E1e1=newE1004;E1e2=newE1335;System.out.printlne
1.fune2;}}
25.编写代码控制一个点a在10秒以后以直线方式从b位置飞向c位置每秒向前步进一次完成run中的代码classPointimplements{floatx;floaty;publicPointintxinty{this.x=x;this.y=y;}@Overridepublicvoidrun{try{floattx=b.x-a.x;floatty=b.y-a.y;floatradian=floatMath.atan2tytx;floatspdx=floatMath.cosradian*1;floatspdy=floatMath.sinradian*1;a.x+=spdx;a.y=spdy;System.out.printlnx++y;Thread.sleep1000;}catchExceptione{//TODO:handleexception}}staticPointa=newPoint00;staticPointb=newPoint127431;publicstaticvoidmainString[]args{scheduled=newscheduled.scheduleAtFixedRateaSECONDS;}}
26.请设计一个异步框架实现一个客户端发送一个Request,服务器接收到Request后,将服务器时间包装到Response发送给客户端,客户端接收到Response后,打印出时间classRequestimplementsSerializable{privatestaticfinallongserialVersionUID=1L;publicStringdata;}classResponseimplementsSerializable{privatestaticfinallongserialVersionUID=1L;publiclongtime;}interfaceClientListener{publicvoidresponsedRequestrequestResponseresponse;}interfaceServerListener{publicvoidreceivedRquestRequestrequestSessionclient;}abstractclassSession{abstractpublicvoidsendObjectmessage;}。