- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Java初级面试题及答案
一、基础语法类
问题:Java里基本数据类型有哪些?和引用数据类型有什么区别?
答案:基本数据类型有8种,分四类:整数型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。
区别主要两点:一是存储方式,基本类型直接存值(比如inta=5,变量a里就是5),引用类型存的是对象在堆内存的地址(比如Strings=abc,s里存的是abc对象的地址);二是默认值,基本类型有默认值(比如int默认0,boolean默认false),引用类型默认是null。
问题:String是基本数据类型吗?String为什么是不可变的?
答案:String不是基本类型,是引用类型里的类。
它不可变是因为底层用privatefinalchar[]数组存字符,final修饰的数组不能改引用(也就是不能指向新数组),而且char数组是private的,外面没法直接修改数组里的内容。比如你写Strings=a;s+=b;,不是把原来的s改成ab,而是新创建了一个ab对象,s再指向这个新对象。
问题:int和Integer有什么区别?什么时候会自动装箱/拆箱?
答案:int是基本数据类型,Integer是int的包装类(引用类型)。
自动装箱就是把基本类型转成包装类,比如Integera=5;(其实是Integera=Integer.valueOf(5););自动拆箱是包装类转基本类型,比如intb=a;(其实是intb=a.intValue();)。常用场景比如集合(ArrayList)里存数据,或者用Integer和int做运算的时候。
二、面向对象类
问题:Java面向对象的三大特性是什么?分别说说作用。
答案:三大特性是封装、继承、多态。
封装:把对象的属性和方法藏起来,只暴露必要的接口(比如用private修饰属性,提供get/set方法)。作用是保护数据,避免外部乱修改,比如Person类的age属性设为private,外面只能通过setAge()方法改,还能在setAge()里加判断(比如年龄不能是负数)。
继承:子类继承父类的属性和方法(除了private的),比如Dog类继承Animal类,就能直接用Animal的eat()方法。作用是减少重复代码,比如多个子类都有“吃饭”功能,不用每个子类都写一遍。
多态:同一个方法在不同对象上有不同表现,比如Animal类有sound()方法,Dog的sound()是“汪汪”,Cat的sound()是“喵喵”。实现多态要满足三个条件:继承、重写父类方法、父类引用指向子类对象(比如Animala=newDog();a.sound();)。作用是让代码更灵活,比如写个方法接收Animal类型参数,不管传Dog还是Cat,都能调用对应的sound()。
问题:final关键字能修饰什么?分别有什么效果?
答案:final能修饰类、方法、变量。
修饰类:这个类不能被继承,比如String类就是final的,没法写个类继承String。
修饰方法:这个方法不能被子类重写,比如父类里finalvoidshow(),子类就不能再写voidshow()覆盖它。
修饰变量:基本类型变量值不能改(比如finalinta=5;a=6;会报错);引用类型变量不能改指向的对象(比如finalPersonp=newPerson();p.setName(张三);可以改属性,但p=newPerson();会报错)。
问题:重写(Override)和重载(Overload)有什么区别?
答案:最核心的区别是“方法签名”——方法名+参数列表(参数个数、类型、顺序)。
重写:子类和父类的方法签名完全一样(方法名、参数列表都相同),子类重写父类的方法。比如Animal的sound(),Dog重写sound(),方法名和参数都一样。还要注意:子类方法的访问权限不能比父类低(比如父类是public,子类不能是private),返回值类型要兼容(比如父类返回Animal,子类可以返回Dog)。
重载:同一个类里,方法名相同但参数列表不同(比如参数个数不一样,或者类型不一样)。比如publicintadd(inta,intb)和publicdoubleadd(doublea,doubleb),这就是重载,和返回值类型没关系。
三、集合框架类
问题:ArrayL
文档评论(0)