简历制作
个⼈建议,简历模板尽量朴素⼀点,不需要太花⾥胡哨的,主要体现⾃⼰的⼀些特点和技能即可,另外就是将简历
制作的更加精细,尽量浓缩到⼀页即可,以上这些是个⼈建议。
需要简历模板,可以在我们公众号:代码界的⼩⽩,后台回复:简历模板
可以领取100+简历模板,还有简历书写推⽂。
需要修改简历,可以加⼩⽩微信,把⾃⼰的简历发我们微信。
!
更多Java⾯试⼋股、Java后端实战项⽬、更多互联⽹春招、实习、秋招等经验分享,可以上微信搜索公众号:
代码界的⼩⽩,和⼩⽩⼀起学编程!
!
这⾥给⼤家分享的⼋股是⼀些⽐较⾼频的,可能不太全⾯。
如果⼤家需要更全⾯的⼋股⽂,可以在公众号后台回复:Java电⼦版资料
Java基础
基础知识⾼频⾯试问题
1.Java
语⾔的三⼤特性是什么?
参考答案:Java语⾔的三⼤特性分别是封装、继承和多态。
封装是指将对象的属性私有化,提供⼀些可以访问属性的⽅法,我们通过访问这些⽅法得到对象的属性。
继承是指某新类继承已经存在的类,该新类拥有被继承的类的所有属性和⽅法,并且新类可以根据⾃⼰的情况拓展
属性或⽅法。其中新类称为⼦类,原存在的类被称为⽗类。
1. ⼦类拥有⽗类对象所有的属性和⽅法(包括私有属性和私有⽅法),但是⽗类中的私有属性和⽅法⼦类是⽆法访
问,只是拥有。
2. ⼦类可以拥有⾃⼰属性和⽅法,即⼦类可以对⽗类进⾏扩展。
3. ⼦类可以⽤⾃⼰的⽅式实现⽗类的⽅法。
注意:Java不⽀持多继承
多态是同⼀个⾏为具有多个不同表现形式或形态的能⼒。多态就是同⼀个接⼜,使⽤不同的实例⽽执⾏不同操作
多态是指程序中定义的引⽤变量所指向的具体类型和通过该引⽤变量发出的⽅法调⽤在编程时并不确定,⽽是
在程序运⾏期间才确定,即⼀个引⽤变量到底会指向哪个类的实例对象,该引⽤变量发出的⽅法调⽤到底是哪
个类中实现的⽅法,必须在由程序运⾏期间才能决定。【摘⾃JavaGuide】
在 Java 中有两种形式可以实现多态:继承(多个⼦类对同⼀⽅法的重写)和接⼜(实现接⼜并覆盖接⼜中同⼀⽅
法)。
2.
重载与重写的区别
参考答案:
重载是发⽣在同⼀个类中,具有相同的⽅法名,但是有不同的参数,参数的个数不⼀样、参数的位置不⼀样,这就
叫重载,常见的就⽐如构造⽅法,有有参构造和⽆参构造。
重写是发⽣在当⼦类继承⽗类时,对⽗类中的⼀些⽅法根据⾃⼰的需求进⾏重写操作。
3.
接⼜和抽象类的区别是什么?
参考答案:
接⼜(interface)和抽象类(abstract class)是⽀持抽象类定义的两种机制。
接⼜是公开的,不能有私有的⽅法或变量,接⼜中的所有⽅法都没有⽅法体,通过关键字interface实现。
抽象类是可以有私有⽅法或私有变量的,通过把类或者类中的⽅法声明为abstract来表⽰⼀个类是抽象类,被声明
为抽象的⽅法不能包含⽅法体。⼦类实现⽅法必须含有相同的或者更低的访问级别(public->protected->private)。
抽象类的⼦类为⽗类中所有抽象⽅法的具体实现,否则也是抽象类。
相同点:
(1)都不能被实例化
(2)接⼜的实现类或抽象类的⼦类都只有实现了接⼜或抽象类中的⽅法后才能实例化。
不同点:
(1)接⼜只有定义,不能有⽅法的实现,但java 1.8中可以定义default⽅法体,⽽抽象类可以有定义与实现,⽅法
可在抽象类中实现。
(2)实现接⼜的关键字为implements,继承抽象类的关键字为extends。⼀个类可以实现多个接⼜,但⼀个类只能
继承⼀个抽象类。所以,使⽤接⼜可以间接地实现多重继承。
(3)接⼜强调特定功能的实现,⽽抽象类强调所属关系。
(4)接⼜⽅法默认修饰符是 public,抽象⽅法可以有 public、protected 和 default 这些修饰符(抽象⽅法就是为
了被重写所以不能使⽤ private`关键字修饰!)。
(5)接⼜被⽤于常⽤的功能,便于⽇后维护和添加删除,⽽抽象类更倾向于充当公共类的⾓⾊,不适⽤于⽇后重
新对⽴⾯的代码修改。从设计层⾯来说,抽象是对类的抽象,是⼀种模板设计,⽽接⼜是对⾏为的抽象,是⼀种⾏
为的规范。
4.Java
中的内部类说⼀下
参考答案:内部类有四种,分别是静态内部类、局部内部类、匿名内部和成员内部类
静态内部类:常见的main函数就是静态内部类,调⽤静态内部类通过“外部类.静态内部类”
局部内部类:定义在⽅法中的类叫做局部内部类。
匿名内部类:是指继承⼀个⽗类或者实现⼀个接⼜的⽅式直接定义并使⽤的类,匿名内部类没有class关键字,因为
匿名内部类直接使⽤new⽣成⼀个对象
5.
说⼀下
final
关键字的作⽤
参考答案:final关键字可以修饰类、⽅法和属性。
当final修饰类的时候,表明这个类不能被继承。final 类中的所有成员⽅法都会被隐式地指定为 final ⽅法。
当final修饰⽅法的时候,表明这个⽅法不能被重写。
当final修饰属性的时候,如果是基本数据类型的变量,则其数值⼀旦在初始化之后便不能更改;如果是引⽤类型的
变量,则在对其初始化之后便不能再让其指向另⼀个对象。
追问:谈谈final、finally、finalize有什么区别?
参考答案:
final 可以⽤来修饰类、⽅法、变量,分别有不同的意义,修饰class 类时表明这个类不能被继承;修饰的变量不可
以修改;修饰⽅法的时候,表明这个⽅法不能被重写。
finally 则是 Java 保证重点代码⼀定要被执⾏的⼀种机制。可以使⽤ try-finally 或者 try-catch-finally 来进⾏类似关
闭 JDBC 连接、保证 unlock 锁等动作。
finalize 是基础类 java.lang.Object 的⼀个⽅法,它的设计⽬的是保证对象在被垃圾收集前完成特定资源的回收。
finalize 机制现在已经不推荐使⽤,并且在 JDK 9 开始被标记为 deprecated。
6.
说⼀下
String
,
StringBuilder
和
StringBuffer
的区别
参考答案:
String 类是Java中⾮常基础且使⽤频繁的类,内部使⽤ final 关键字修饰,所以 String 对象是不可变的。由于String
的不可变性,所以在进⾏字符串拼接、裁剪字符串等操作时,会产⽣新的 String 对象。
StringBuffer 为了解决字符串拼接产⽣太多中间对象的问题所产⽣。该类提供了append⽅法,把字符串添加到已有
序列的末尾或者指定位置。对⽅法加了同步锁或者对调⽤的⽅法加了同步锁,所以是线程安全。
如果没有线程安全的需要,可以使⽤StringBuilder 。该类对⽅法进⾏没有加同步锁,所以是⾮线程安全的。
总结:
1. 操作少量的数据: 适⽤ String
2. 单线程操作字符串缓冲区下操作⼤量数据: 适⽤ StringBuilder
3. 多线程操作字符串缓冲区下操作⼤量数据: 适⽤ StringBuffer
7.
说⼀下
Java
中的
==
与
eaquels
的区别
参考答案:
== : 它的作⽤是判断两个对象的地址是不是相等。即,判断两个对象是不是同⼀个对象(基本数据类型==⽐较的是
值,引⽤数据类型==⽐较的是内存地址)。
eaquels:
情况 1:类没有重写 equals() ⽅法。则通过 equals() ⽐较该类的两个对象时,等价于通过“==”⽐较这两个对象。
情况 2:类重写了 equals() ⽅法。⼀般,我们都重写 equals() ⽅法来⽐较两个对象的内容是否相等;若它们的内
容相等,则返回 true (即,认为这两个对象相等)。
8.Java
访问修饰符有哪些?都有什么区别?
参考答案:Java中的修饰符有public private protected
1、public:public表明该数据成员、成员函数是对所有⽤户开放的,所有⽤户都可以直接进⾏调⽤
2、private:private表⽰私有,私有的意思就是除了class⾃⼰之外,任何⼈都不可以直接使⽤,私有财产神圣不可
侵犯嘛,即便是⼦⼥,朋友,都不可以使⽤。
3、protected:protected对于⼦⼥、朋友来说,就是public的,可以⾃由使⽤,没有任何限制,⽽对于其他的外部
class,protected就变成private。
追问1:怎么获取private修饰的变量
参考答案:private通过反射获取,可以设置setAccessable为true实现
9.Java
中的异常体系说⼀下?
参考答案:Java中的异常主要分为Error和Exception
Error 指Java程序运⾏错误,如果程序在启动时出现Error,则启动失败;如果程序运⾏过程中出现Error,则系统将
退出程序。出现Error是系统的内部错误或资源耗尽,Error不能在程序运⾏过程中被动态处理,⼀旦出现Error,系
统能做的只有记录错误的原因和安全终⽌。
Exception 指 Java程序运⾏异常,在运⾏中的程序发⽣了程序员不期望发⽣的事情,可以被Java异常处理机制处
理。Exception也是程序开发中异常处理的核⼼,可分为RuntimeException(运⾏时异常)和CheckedException
(检查异常),如下图所⽰