Java面试题
2018-12-17 10:47:56来源:博客园 阅读 ()
1.面向对象的特征有哪些方面?
封装,继承,多态(重载【编译时确定类型】和重写【运行时确定类型】两种)
2.有了基本数类型,为什么还要包装类型?
基本数据类型:Java提供八种基本数据类型,boolean,int,float等
包装类型:每个基本数据类型都会对应一个包装类型
装箱拆箱:
装箱:把基本数据类型转化成对应的包装类型
Integer i = 1; 实际上在编译时会调用Integer.valueOf方法来装箱
拆箱:int j = i;相当于int j = i,intValue();
Java是一种面向对象的语言,而基本的数据类型不具备面向对象的特性。
Null Integer--null int--0 分别用Integer和int表示Person这个类的id
MAX
MIN
缓存值:Integer i =1; Integer j =1;i==j;
3.说一下“==”和equal方法的区别?
==比较两个变量是否相等,变量有两种,如果是基本类型变量,直接比较两个变量的值,吐过是应用类型变量,比较的是两个变量的地址。
equal方法是object类的方法,equals方法比较的是两个对象是否具有一些相同的属性值。
4.讲一下String Stringbuilder Stringbuffer?
在Java中,提供三个类String ,Stringbuilder ,Stringbuffer 来表示和操作字符串。
String是内容不可变的字符串,String 底层使用了一个final修饰的字符数组(final char【】)String str= new String(“aaa”);
Stringbuilder和Stringbuffer是可变的字符串,底层使用的是可变的字符数组(没有fanal修饰)
最经典的字符串拼接:
String str = “a”+"b";(创建了三个对象)
Stringbuilder stringbuilder = new Stringbuilder(“a”).append("b");
Stringbuilder:线程不安全,效率高
Stringbuffer:线程安全(需要加锁保证同步),效率底
5.说一下Java中的集合?
Java中的集合分为两种:一种存储值(Collection),一种存储键值对(Map)
Collection又可以分为两种:
List:有序可以重复
Set:无须不可重复。根据equals方法和hashcode判断,也就是说如果一个对象要存储在set中,必须重写equals和hashcode方法。
6.ArrayList和LinkedList的区别?
ArrayList底层使用的是数组,LinkedList底层使用的链表
ArrayList:查询特定元素比较快(因为有索引),插入和删除比较慢(因为数组在内存中是一段连续的存储空间,插入和删除元素需要移动数组)。
LinkedList:查询效率低(链表不要求内存是连续的,查询需要从头部开始,按照指针方向一个一个找),插入和删除效率高(不需要移动内存,只需要改变引用的指向即可)。
使用场景:
ArrayList使用在查询比较多,但是插入和删除比较少的情况,LInkedList使用在查询比较少,而插入和删除比较多的情况。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash