Java笔试题注意问题

如何介绍自己:面试官必为的问题
回答范例:我叫XX,今年X岁,XXXX年毕业于XX大学。我对技术有深厚的兴趣,专业知识面宽,责任心强,思路清晰,沟通力能好,熟悉Java语言,熟悉MVC。平常有时间看看博客,并且在搭建的博客上写技术类的文章和笔记。

刁难题

  1. 如果对方说:”你的经历太简单,而我们需要社会经验丰富的人。你的回答是:“我确信如果我有缘加入贵单位,我将很快成为社会经验丰富的人,我希望自己有这样的一段经历。
  2. 如果对方说:“我们需要名牌学校的学生,你并非毕业于名牌学校。你的回答是:“听说比尔盖茨也未毕业于哈佛大学。”
  3. 如果对方说:“你的专业与所选的专业并不对口。你可以这样回答:“据说,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
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.io.*;
import java.util.*;

public class foo{

public static void main (String[] args){

String s;

System.out.println("s=" + s);

}

}

A 代码得到编译,并输出“s=”

B 代码得到编译,并输出“s=null”

C 由于String s没有初始化,代码不能编译通过

D 代码得到编译,但捕获到 NullPointException异常

答案:C

解析:开始以为会输出null什么的,运行后才发现Java中所有定义的基本类型或对象都必须初始化才能输出值。

2什么是Java面向对象编程

面向对象程序设计的三大特征:

  1. 封装性
  2. 继承性
  3. 多态性

面向对象就是:把数据及对数据的操作方法放在一起,作为相互依赖的整体

在面向对象的编程方式中,对象拥有多种特性,如手机有高度、宽度、厚度、颜色、重量等特性,这些特性被称为对象的属性。对象还有很多功能,如手机可以听音乐、打电话、发信息、看电影等工作功能,这些功能被称为对象的方法,实际上这些方法是一种函数。

用生活中的方法来说:

例如:一个主人养了一只猫和一只狗

获取例子中的对象:人,猫(猫吃鱼),狗(狗啃骨头)就是对象

从对象中抽象出类:

  1. 主人可以抽象出主人类people类
  2. 猫可以抽象出猫的类cat类
  3. 狗可以抽象出狗的类dog类
  4. 猫和狗是动物就可以继承动物类Animal类
  5. 假设猫喜欢吃的食物为鱼,因此可以提炼出类Fish
  6. 假设狗喜欢吃的食物为骨头,因此可以提炼出骨头类Bone
  7. 因为鱼类和骨头类可以提炼出食物类Food

创建实体类

类是由属性和动作组成的

3什么是重载,什么是重写

重载(Overload):
(1)Overloading是一个类中多态性的一种表现,让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
(2)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同,也可以不相同。无法以返回型别作为重载函数的区分标准。

重写(Override):
(1) 父类与子类之间的多态性,对父类的函数进行重新定义。即在子类中定义某方法与其父类有相同的名称和参数。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

4. ==equals()区别

==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

Boss 扫一下呗