ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:51.62KB ,
资源ID:10388405      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10388405.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(尚学堂Java笔记.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

尚学堂Java笔记.docx

1、尚学堂Java笔记笔试和面试题目V1.0北京尚学堂科技JAVA基础笔试题目1. JDK和JRE的区别?JavaDevelopmentKit.包含了JRE、编译器等程序。JavaRuntimeEnvironment指的是java运行时环境。负责启动虚拟机,加载和运行class文件。2. JVM是什么工作原理JVM是sun公司定义的规范。javavitualmashine。3. GC是什么是如何回收对象的Gabbagecollection垃圾回收器。哪些对象需要回收对象没有被引用。4. System.gc()的作用是程序员能直接调用垃圾回收器吗GC不能被程序员调用。System.gc()可以通知调

2、用垃圾回收器。5. 一个java源文件,可以定义多个class类吗可以定义多个public类吗可以。6. java中,包含几种数据类型基本数据类型byte1个字节short2个字节int4个字节整形常量默认类型long8个字节float4个字节double8个字节浮点常量的默认类型char2个字节Unicode码boolean1位引用数据类型(4个)7. &和&的区别3&4和3&4哪个写法是不对的&,按位与&逻辑与短路8. 2x4=8.最快的算法怎么实现移位运算。左移一位表示乘以一个2.9. 堆区和栈区的区别10. 包装类使用时,自动装箱和拆箱是怎么回事IntegerI=3;/装箱。实际上是一

3、种编译器魔术。编译器帮助我们修改了代码:IntegerI=newInteger(3);inta=newInteger(3);11. equals方法和=的区别=判断对象是否相同。equals是Object类中的方法,他的默认实现也是比较引用地址。不过,很多类重写了这个方法,一般用来比较对象中某些的属性的值。12. 说出你编程中,常见的异常。至少5个。自己去想。13. 成员变量和静态变量的区别在内存中如何存放成员变量,实例变量:从属于对象。存放在堆。静态变量:从属于类。存放在方法区14. 重载是怎么回事重写是怎么回事重载overload:一个方法名定义多个方法。参数列表不同(个数、顺序、类型不同

4、),返回值不能构成重载。重写override覆盖。将父类的方法覆盖。15. java中继承如何实现extends16. 包含抽象方法的类一定是抽象类吗是。17. java中,聊聊的多态面向接口编程多态的实现:父类引用指向子类对象。在实际开发中,我们项目中使用了spring。一般都采用面向接口编程。我们将变量类型全部定义成接口的类型。然后,运行时再通过spring注入具体的实现。18. 封装的实现中,说明private、protected、default、public的区别private私有。只有自己类中可以调用。protected受保护。子类中能用。子类不在同一个包中能不能调用default:

5、同一个包中可以用。public:公开的。任何地方都可以用。19. 面向对象的三大特征有哪些封装、继承、多态20. 浮点数是有误差的。如果要实现精确的计算BigDecimal21. char类型,能表示汉字吗?为什么?22. final修饰变量、方法、类,都有什么区别变量:常量方法:不能被子类重写类:不能被继承23. final,finally,finalize方法的区别final修饰变量、修饰方法、修饰类。finally在异常处理中使用。表示不管有没有异常都会执行这里。通常用来释放资源。finaliize,垃圾回收这个对象前执行的方法。24. String是不可变字符从源代码分析,为什么内部有

6、一个char数组。这个数组使用了final修饰。意味着只能初始化一次。25. StringBuffer和StringBuilder的区别StringBuffer可变字符序列,线程安全StringBuilder可变字符序列。线程不安全。一般用它。26. java中,类可以多继承吗接口可以多继承吗类不可以多继承。接口可以多继承。27. 数组是对象吗是。28. 数组中元素默认初始化的规则是什么跟成员变量的规则是一样的。引用类型为null。数值:0布尔:false29. 数组的长度是固定的吗?是的。30. Collection、List和Set接口有什么联系Collection是List和Set的父接

7、口。31. list和set接口的区别是List:有序、可重复。Set:无序、不可重复。32. Collection和Collections的区别Collection接口。Collections是一个针对Collection提供的工具类。33. Vector、ArrayList的区别是Vector线程安全。ArrayList线程不安全。34. HashMap和HashTable的区别是HashTable线程安全,HashMap线程不安全。35. 两个对象hashcode()方法返回值相同,那么调用equals方法一定为true吗从规范上讲,要。36. AWT、swing是什么关系swing有什

8、么优势37. GUI编程中,有哪些常用的布局管理器Flow、Border、Card、Grid等38. 如何实现序列化实现Serielizable。他是一个空接口。39. 要把一个字节流对象转化成字符流对象,需要用到什么类InputStreamReader,OutputStreamWriter40. 进程和线程的区别是进程是一个独立运行的程序,拥有独立的内存空间、代码。一个进程中可以包含多个线程。多个线程共享同一块空间和代码。41. 写出定义线程类的两种常见方式继承Thread、实现Runnable接口42. 说说,Runnable接口和Thread的区别Thread也是实现了Runnalbe接

9、口。43. synchronized如何使用如果直接修饰方法,意味着线程要调用这个方法必须要有这个方法所在的对象的锁。如果修饰了方法块,上面可以声明需要拥有的对象锁。这样的话,线程只有拥有指定对象的锁才能运行这个代码块。不然,就等待。44. 说说:wait(),notify(),sleep()方法作用wait(),线程进入阻塞状态。释放持有的对象锁。sleep(),线程进入阻塞状态。但是,不是放持有的对象锁。notify(),唤醒等待池中的线程45. java中,反射机制的基本原理Class类得作用是反射机制是java动态性重要手段。当我们加载完毕一个类的时候,会同时创建一个Class类型的对

10、象,Class类型的对象它包含了这个类的完整的数据结构。就像一个镜子一样,通过这个镜子我们可以得到对应类的所有信息。而且,Class类还包含了如何操作属性、构造器、方法的接口。这样的话,我们就可以通过反射机制动态的创建对象、动态的调用对象的方法、动态的操作属性。46. 通过Class类,可以访问和设置一个类得私有方法、私有成员变量吗如果能,怎么做可以直接操作私有方法。可以操作私有成员变量。通过setAccessible(true)。47. 通讯方式中,TCP和UDP的区别是?TCP:transfercontrolprotocol传输控制协议。面向连接的、安全的。效率不高的。我们一般用的Sock

11、et就是TCP连接。我们访问网站也是TCP/IP协议,建立连接。UDP:UserDatagramProtocol用户数据包协议。无连接、不安全、效率高。48. 内部类java手写编程题目1. 写出冒泡排序代码publicclassTest publicstaticvoidmain(Stringargs) intvalues=3,1,6,2,9,0,7,4,5,8; sort(values); System.out.println(Arrays.toString(values); publicstaticvoidsort(intvalues) inttemp; for(inti=0;ivalue

12、s.length;i+) for(intj=0;jvaluesj+1) temp=valuesj; valuesj=valuesj+1; valuesj+1=temp; 2. 写出二分法查找代码staticintbinarySearch(intarr,intsearchWord) Arrays.sort(arr);/先对传进来的数组进行排序 /二分法查找 intiIndex=0;/相当于指针的东西 intiStart=0; intiEnd=arr.length-1; intsearchCount=0; for(inti=0;iarr.length/2;i+) searchCount+; iIn

13、dex=(iStart+iEnd)/2; if(arriIndexsearchWord) iEnd=iIndex; else break; returnsearchCount; 3. 写出一个双向链表类代码packagepublicclassNodeprivateEelement;/结点数据privateNodenext;/上结点privateNodeprevious;/下结点privatestaticintsize=0;/链表长/默认关结点nextprevious都是空,publicNode()this.element=null;this.next=null;this.previous=nu

14、ll;privateNode(Eelement,Nodenext,Nodeprevious)this.element=element;this.next=next;this.previous=previous;/*尾部添加元素e*parame*/publicvoidaddAfter(Ee)/定义新结点,next-头结点;previous-头结点.previous(尾结点)NodenewNode=newNode(e,this,this.previous=nullthis:this.previous);/头结点next为空则让它指向newNodeif(this.next=null)this.nex

15、t=newNode;/头结点previous为空则让它指向newNodeif(this.previous=null)this.previous=newNode;this.previous.next=newNode;this.previous=newNode;size+;/*头部添加元素e*parame*/publicvoidaddBefor(Ee)NodenewNode=newNode(e,this.next=nullthis:this.next,this);if(this.next=null)this.next=newNode;if(this.previous=null)this.previ

16、ous=newNode;this.next.previous=newNode;this.next=newNode;size+;/*在index处添加元素e*parame*paramindex*/publicvoidadd(Ee,intindex)/索引越界if(index=size|indexsize/2,反向遍历if(indexsize1)Nodetemp=this;for(inti=size;iindex;i-)temp=temp.previous;NodenewNode=newNode(e,temp,temp.previous);temp.previous.next=newNode;te

17、mp.previous=newNode;elseNodetemp=this;for(inti=0;i=index;i+)temp=temp.next;NodenewNode=newNode(e,temp,temp.previous);temp.previous.next=newNode;temp.previous=newNode;size+;/*删除第index个元素*paramindex*/publicvoidremove(intindex)/索引越界if(index=size|indexsize/2,反向遍历if(indexsize1)Nodetemp=this;for(inti=size

18、;iindex;i-)temp=temp.previous;temp.previous.next=temp.next;temp.next.previous=temp.previous;elseNodetemp=this;for(inti=0;i=size|indexsize/2,反向遍历if(indexsize1)Nodetemp=this;for(inti=size;iindex;i-)temp=temp.previous;returntemp.element;elseNodetemp=this;for(inti=0;i=index;i+)temp=temp.next;returntemp.

19、element;publicintsize()returnsize;publicstaticvoidmain(Stringa)Nodenode=newNode();node.addAfter(1);node.addAfter(2);node.addAfter(3);node.addBefor(0);node.add(7,0);System.out.println(node.get(0);System.out.println(node.get(1);System.out.println(node.get(2);System.out.println(node.get(3);System.out.p

20、rintln(node.get(4);4. 写出一个二叉树代码classTreeNodeprivateStringdata;privateTreeNodeleftNode;privateTreeNoderightNode;publicTreeNode(Stringdata,TreeNodeleftNode,TreeNoderightNode)this.data=data;this.leftNode=leftNode;this.rightNode=rightNode;publicStringgetData()returndata;publicvoidsetData(Stringdata)this

21、.data=data;publicTreeNodegetLeftNode()returnleftNode;publicvoidsetLeftNode(TreeNodeleftNode)this.leftNode=leftNode;publicTreeNodegetRightNode()returnrightNode;publicvoidsetRightNode(TreeNoderightNode)this.rightNode=rightNode;5. 编写一个生产者和消费者的程序publicclassTestProduce publicstaticvoidmain(Stringargs) Sy

22、ncStacksStack=newSyncStack(); Shengchansc=newShengchan(sStack); Xiaofeixf=newXiaofei(sStack); sc.start(); xf.start(); classMantou intid; Mantou(intid) this.id=id; classSyncStack intindex=0; Mantoums=newMantou10; publicsynchronizedvoidpush(Mantoum) while(index=ms.length) try this.wait(); /wait后,线程会将持

23、有的锁释放。sleep是即使睡着也持有互斥锁。 catch(InterruptedExceptione) e.printStackTrace(); this.notify();/唤醒在当前对象等待池中等待的一个线程(随意的)。notifyAll叫醒所有在当前对象等待池中等待的所有线程。 /如果不唤醒的话。以后这两个线程都会进入等待线程,没有人唤醒。 msindex=m; index+; publicsynchronizedMantoupop() while(index=0) try this.wait(); catch(InterruptedExceptione) e.printStackTr

24、ace(); this.notify(); index-; returnmsindex; classShengchanextendsThread SyncStackss=null; publicShengchan(SyncStackss) /TODOAuto-generatedconstructorstub this.ss=ss; Override publicvoidrun() /TODOAuto-generatedmethodstub for(inti=0;i20;i+) 造馒头:+i); Mantoum=newMantou(i); ss.push(m); classXiaofeiexte

25、ndsThread SyncStackss=null; publicXiaofei(SyncStackss) /TODOAuto-generatedconstructorstub this.ss=ss; Override publicvoidrun() /TODOAuto-generatedmethodstub for(inti=0;i20;i+) Mantoum=ss.pop(); 吃馒头:+i); 6. 定义一个多线程类,并写出如何终止线程的执行,并启动他。publicclassTestThreadCiycleimplementsRunnable Stringname; booleanli

26、ve=true; publicTestThreadCiycle(Stringname) super(); this.name=name; publicvoidrun() inti=0; while(live) System.out.println(name+(i+); publicvoidterminate() live=false; publicstaticvoidmain(Stringargs) TestThreadCiyclettc=newTestThreadCiycle(线程A:); Threadt1=newThread(ttc);/新生状态 t1.start();/就绪状态 for(inti=0;i1000;i+) System.out.println(i); ttc.terminate(); System.out.println(ttcstop!); 7. 写出一个文件复制的程序voidcopyFile(Stringsrc,Stringdec) FileInputStreamfis=null; FileOutputStreamfos=nul

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1