如何介绍自己:面试官必为的问题
回答范例:我叫XX,今年X岁,XXXX年毕业于XX大学。我对技术有深厚的兴趣,专业知识面宽,责任心强,思路清晰,沟通力能好,熟悉Java语言,熟悉MVC。平常有时间看看博客,并且在搭建的博客上写技术类的文章和笔记。
刁难题
- 如果对方说:”你的经历太简单,而我们需要社会经验丰富的人。你的回答是:“我确信如果我有缘加入贵单位,我将很快成为社会经验丰富的人,我希望自己有这样的一段经历。
- 如果对方说:“我们需要名牌学校的学生,你并非毕业于名牌学校。你的回答是:“听说比尔盖茨也未毕业于哈佛大学。”
- 如果对方说:“你的专业与所选的专业并不对口。你可以这样回答:“据说,21世纪最需要的就是复合型人才。而外行的灵感也许会超过内行的灵感,因为他们没有思维定式,没有条条框框
String是最基本的数据类型吗?
不是,基本数据类型包括:byte,short,int,long,float,double,Boolean,char,
而String是字符串类型。
• String s=new String(“abc”);这句话创建几个对象?
两个,
1:String s定义了一个变量s没有创建对象;
2:=赋值,将某个对象的引用赋给s没有创建对象;
3:“abc”创建一个对象;
4:new String()创建一个对象
• String 和StringBuffer的区别 ?
String对一串字符串进行操作不可变的类。
StringBuffer对一串字符串进行操作,但是可变类。
Java关键字
Abrstact:抽象方法,抽象类的的修饰类
Assert:判断条件是否满足
Boolean:布尔数据类型
Break:跳出循环或者label代码段
Btye:8-bit有符号数据类型
Case:switch语句的一个条件
Catch:和try搭配捕捉异常信息
Char:16-bit Unicode字符数据类型
Cass:定义类
Const:未使用
Continue:不执行循环体剩余部分
Default:switch语句中默认的分支
Enum:枚举类型
Entends:表示一个类是另一个类的子类
Final:表示方法不能被重写,或者一个类不能有子类
Finally:为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码
Float:32-bit单精度浮点类型
For:for循环语句
Goto:未使用
If:条件语句
Implements:表示一个类实现了接口
Import:导入类
Instanof:测试一个类是否某个类的实例
Int:32位整形数
Interface:接口一种抽象类型,仅有方法和常亮的定义
Long:64位整形数
Native:表示方法用非Java代码实现
New:分配新的类实例
Package:一系列相关类组成的包
Private:表示私有的字段或者方法等,只能从类内部访问
Protected:表示字段只能通过类或子类访问,本包中
Public:有共同的属性或者方法
Return:方法返回值
Short:16位数字
Static:表示类别定义,所有实例共享的
Stricetfp:浮点数比较使用严格的规则
Super:表示基数
Switch:选择语句
Synchronized:表示在同一时间内只能由一个代码块访问
This:调用当前实例或者调用另外一个构造函数
Try:代码块要做处理或者finally配合表示是否抛出异常都执行finally中的代码
Throw:抛出异常
Throws:定义方法可能抛出的异常
Transient:修饰不要序列化的字段
Void:标记方法不反悔任何值
Volatile:字段可能被多个线程同时访问而不做同步
While:while循环
1、下面代码的运行结果为:()
1 | import java.io.*; |
A 代码得到编译,并输出“s=”
B 代码得到编译,并输出“s=null”
C 由于String s没有初始化,代码不能编译通过
D 代码得到编译,但捕获到 NullPointException异常
答案:C
解析:开始以为会输出null什么的,运行后才发现Java中所有定义的基本类型或对象都必须初始化才能输出值。
2、什么是Java面向对象编程
面向对象程序设计的三大特征:
- 封装性;
- 继承性;
- 多态性;
面向对象就是:把数据及对数据的操作方法放在一起,作为相互依赖的整体
在面向对象的编程方式中,对象拥有多种特性,如手机有高度、宽度、厚度、颜色、重量等特性,这些特性被称为对象的属性。对象还有很多功能,如手机可以听音乐、打电话、发信息、看电影等工作功能,这些功能被称为对象的方法,实际上这些方法是一种函数。
用生活中的方法来说:
例如:一个主人养了一只猫和一只狗
获取例子中的对象:人,猫(猫吃鱼),狗(狗啃骨头)就是对象
从对象中抽象出类:
- 主人可以抽象出主人类people类
- 猫可以抽象出猫的类cat类
- 狗可以抽象出狗的类dog类
- 猫和狗是动物就可以继承动物类Animal类
- 假设猫喜欢吃的食物为鱼,因此可以提炼出鱼类Fish
- 假设狗喜欢吃的食物为骨头,因此可以提炼出骨头类Bone
- 因为鱼类和骨头类可以提炼出食物类Food
创建实体类
类是由属性和动作组成的
3、什么是重载,什么是重写
重载(Overload):
(1)Overloading是一个类中多态性的一种表现,让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
(2)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同,也可以不相同。无法以返回型别作为重载函数的区分标准。
重写(Override):
(1) 父类与子类之间的多态性,对父类的函数进行重新定义。即在子类中定义某方法与其父类有相同的名称和参数。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
4. ==跟equals()的区别
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。