码迷,mamicode.com
首页 > 编程语言 > 详细

Java面试题总结(附答案)

时间:2018-12-26 16:52:43      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:对象   邮件   操作符   情况下   buffer   实现原理   bool   访问   http   

 

1.什么是B/S架构?C/S架构?

  • B/S(Browser/Server),浏览器/服务器程序;

  • C/S(Client/Server),客户端/服务端,桌面应用程序。

 

 

2.网络协议有哪些?

  • HTTP:超文本传输协议;

  • SMPT:简单邮件协议;

  • TELNET:远程终端协议;

  • POP3:邮件读取协议 ;

  • FTP:文件传输协议;

 

 

3.Java的四种引用及应用场景?

  • 强引用: 通常我们使用new操作符创建一个对象时所返回的引用即为强引用;

  • 软引用: 若一个对象只能通过软引用到达,那么这个对象在内存不足时会被回收,可用于图片缓存中,内存不足时系统会自动回收不再使用的Bitmap;

  • 弱引用: 若一个对象只能通过弱引用到达,那么它就会被回收(即使内存充足),同样可用于图片缓存中,这时候只要Bitmap不再使用就会被回收;

  • 虚引用: 虚引用是Java中最“弱”的引用,通过它甚至无法获取被引用的对象,它存在的唯一作用就是当它指向的对象回收时,本身会被加入到引用队列中,这样我们可以知道它指向的对象何时被销毁。

 

 

4.Java是否需要开发人员回收内存垃圾吗?

多情况下是不需要。Java提供了一个系统级的线程来跟踪内存分配,不再使用的内存区将会自动回收。

 

 

5.ArrayList, Vector,LinkedList,的区别是什么?

  • ArrayList: 内部采用数组存储元素,支持高效随机访问,支持动态调整大小;

  • Vector: 可以看作线程安全版的ArrayList;

  • LinkedList: 内部采用链表来存储元素,支持快速插入/删除元素,但不支持高效地随机访问。

 

 

6.Java中的包装类都是那些?

  • byte:Byte;

  • short:Short;

  • int:Integer;

  • double:Double;

  • char:Character;

  • boolean:Boolean;

  • long:Long;

  • float:Float。

 

 

7. String, StringBuilder, StringBuffer的区别是什么?

  • String: 不可变的字符序列,若要向其中添加新字符需要创建一个新的String对象;

  • StringBuilder: 可变字符序列,支持向其中添加新字符;

  • StringBuffer: 可以看作线程安全版的StringBuilder。

 

 

8.一个java类中包含那些内容?

  • 属性、方法、内部类、构造方法、代码块。

 

 

9. 静态内部类与非静态内部类的区别

 

  • 静态内部类不会持有外围类的引用,而非静态内部类会隐式持有外围类的一个引用。

 

 

10. Java中多态的实现原理

所谓多态,指的就是父类引用指向子类对象,调用方法时会调用子类的实现而不是父类的实现。多态的实现的关键在于“动态绑定”。

Java面试题总结(附答案)

标签:对象   邮件   操作符   情况下   buffer   实现原理   bool   访问   http   

原文地址:https://www.cnblogs.com/yuxiang1/p/10179659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!