900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 春招我凭这份《面试笔记》拿下阿里 京东 美团等11家大厂的offer

春招我凭这份《面试笔记》拿下阿里 京东 美团等11家大厂的offer

时间:2020-07-04 01:54:19

相关推荐

春招我凭这份《面试笔记》拿下阿里 京东 美团等11家大厂的offer

一、Java 基础

1. JDK 和 JRE 有什么区别?

2.== 和 equals 的区别是什么?

== 既可以运用于基本数据类型,也可以运用于引用数据类型,对于基本数据类型,很简单,比较的就是数值是否相等。而对应引用数据类型,比较的其实就是两个对象的地址值是否相等,也就是看两个对象是否是同一个对象。

equals 只能运用于引用数据类型,不能运用于基本数据类型。

一般在String类中,他底层是重写了equals方法的,将字符串变成了字符数组,然后一个字符一个字符的比较。在其他Object类中并没有重写equals方法,所以比较的是地址值,但是比较地址值又没有意思,所以我们需要重写equals方法,然后比较两个对象中内容是否相等。举个例子吧。一个User对象,成员变量姓名,年龄,然后创建一个user1,姓名小明,年龄18,另一个user2,姓名小明,年龄18。然后user1.equals(user2)。如果我们在User实体类中并没有重写equals方法,很显然,结果为false,如果我们重写了equals方法,结果为true。

3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

不一定,比如“通话”和“重地”的hashcode值相同,但是返回false

4.final 在 java 中有什么作用?

5.java 中的 Math.round(-1.5) 等于多少?

四舍五入取整(在本来值的基础上加上0.5,再取向下取整)

6.String 属于基础的数据类型吗?

java中基础数据类型只有8种:

<pre>byte,short,int,long,double,float,char,boolean</pre>

7.java 中操作字符串都有哪些类?它们之间有什么区别?

StringBuilder和StringBuffer,后者是线程安全(记忆方法:builder只是高楼,而buffer相当于给楼加了一层外套,所以线程安全)

8.String str="i"与 String str=new String(“i”)一样吗?

不一样,前者是常量池一个常量,后者会新建一个对象

9.如何将字符串反转?

直接调用

把字符串转换成字符数组倒序拼接然后返回值(调用inverse()方法)

10.String 类的常用方法都有那些?

11.抽象类必须要有抽象方法吗?

不一定,但是有抽象方法的一定是抽象类

12.普通类和抽象类有哪些区别?

a.抽象类不能被实例化。b.抽象类可以有构造函数,被继承时子类必须继承父类一个构造方法,抽象方法不能被声明为静态。c.抽象方法只需申明,而无需实现,抽象类中可以允许普通方法有主体d.含有抽象方法的类必须申明为抽象类e.抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类。

13.抽象类能使用 final 修饰吗?

不能

14.接口和抽象类有什么区别?

a.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。b.抽象类要被子类继承,接口要被类实现。c.接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现d.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。e.抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。f.抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果g.抽象类里可以没有抽象方法h.如果一个类里有抽象方法,那么这个类只能是抽象类i.抽象方法要被实现,所以不能是静态的,也不能是私有的。j.接口可继承接口,并可多继承接口,但类只能单根继承。k.从JDk1.8开始,接口中可以定义default修饰的默认方法l.从jdk1.9开始,接口中可以定义private修饰的方法,但是只能在接口中调用

15.java 中 IO 流分为几种?

16.BIO、NIO、AIO 有什么区别?

BIO,同步阻塞式IO,简单理解:一个连接一个线程——你到饭馆点餐,然后在那等着,还要一边喊:好了没啊!NIO,同步非阻塞IO,简单理解:一个请求一个线程——在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊!AIO,异步非阻塞IO,简单理解:一个有效请求一个线程——饭馆打电话说,我们知道您的位置,一会给你送过来,安心遛狗就可以了。

17.Files的常用方法都有哪些?

createNewFile():在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。mkdirs() 在指定位置创建一个多级文件夹。mkdir() 在指定位置创建一个单级文件夹。delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。exists() 文件或文件夹是否存在。isFile() 是否是一个文件,如果不存在,则始终为false。isDirectory() 是否是一个目录,如果不存在,则始终为false。

二、容器

18.java 容器都有哪些?

19.Collection 和 Collections 有什么区别?

Collection 是一个集合接口,List,Set,Queue继承自Collection;Collections是一个工具类,包含有各种有关集合操作的静态方法

20.List、Set、Map 之间的区别是什么?

list和set属于collection接口的子接口,list存储的数据有序,可重复,可用普通for循环遍历,实现类一般有:vector(线程安全),arrayList(底层数据结构为数组(查询快,增删慢,),线程不安全)

List:列表;Set:集合;Map:映射;

21.HashMap 和 Hashtable 有什么区别?

HashTable先出来;HashMap允许空

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。