Java开发面试问题

1.面向对象的特点是什么?

答:面向对象的特性主要包括以下几个方面:

-抽象:抽象是总结一个类的* * *特征来构造一个类的过程,包括数据抽象和行为抽象。抽象只关注对象的属性和行为,不关注这些行为的细节。

-继承:继承是从现有类获取继承信息以创建新类的过程。提供继承信息的类称为父类(超类、基类);获得继承信息的类称为子类(派生类)。继承使变化的软件系统具有一定的连续性,也是封装程序中可变因素的重要手段(如果不能理解,请阅读洪雁博士的《Java与模式》或《设计模式提炼》中关于桥模式的部分)。

-封装:一般来说,封装就是绑定数据和操纵数据的方法,对数据的访问只能通过定义好的接口来实现。面向对象的本质是将现实世界描述为一系列完全自治的封闭对象。我们在类中编写的方法是实现细节的封装;我们编写一个封装数据和数据操作的类。可以说,包装就是把能藏的都藏起来,只给外界提供最简单的编程接口(想想普通洗衣机和自动洗衣机的区别,很明显自动洗衣机包装更好,因此更容易操作;我们现在用的智能手机,包装也很好,因为什么都是几个按键就搞定了。

-多态性:多态性是指允许不同的对象子类型对同一消息做出不同的响应。简单来说就是用相同的对象引用调用相同的方法但是做不同的事情。多态性分为编译时多态性和运行时多态性。如果把对象的方法看作是对象向外界提供的服务,那么运行时的多态性可以解释为:当系统A访问系统B提供的服务时,系统B有很多方式提供服务,但一切对系统A都是透明的(就像电动剃须刀是系统A,它的供电系统是系统B, 而系统B可以使用电池供电或者交流电源,甚至太阳能,系统A只是通过B类对象调用供电方法,并不知道供电系统)。 方法重载在编译时实现多态性(也称为预绑定),而方法重写在运行时实现多态性(也称为后绑定)。运行时多态性是面向对象的本质。要实现多态性,需要做两件事:1)。方法重写(子类继承父类,重写父类中已有的或抽象的方法)。2).对象建模(引用一个父类型引用的子类型对象,这样同一个引用调用同一个方法会根据不同的子类型对象表现出不同的行为)。

2.访问修饰符public、private、protected和not writing(默认)有什么区别?

答:

修饰语

当前类别

鲍彤

亚纲

其他包

公共√√√√√

受保护√ √ √ ×

默认√ √ × ×

私人√ × × ×

当类的成员不编写访问修饰符时,它们默认为default。默认情况下,对于同一个包中的其他类,它相当于public,对于不在同一个包中的其他类,它相当于private。Protected对子类是public,对不在同一个包中并且没有父子关系的类是private。在Java中,外部类的修饰符只能是public或者default,类成员(包括内部类)的修饰符可以是以上四种。

3.字符串是最基本的数据类型吗?

答:不会,Java只有八种基本数据类型:byte、short、int、long、float、double、char、boolean;除了原语类型和枚举类型,其余都是引用类型。

4、浮动f = 3.4正确吗?

答:不正确。3.4是一个双精度数。将double赋给float属于向下造型,会造成精度损失,所以需要强制类型转换float f =(float)3.4。或者写float f = 3.4F。

5、短s 1 = 1;s 1 = s 1+1;有什么问题吗?短s 1 = 1;s 1+= 1;有什么问题吗?

答:简称s 1 = 1;s 1 = s 1+1;由于1是int类型,所以s1+1的运算结果也是int类型,需要进行强制转换为short类型赋值。而短s 1 = 1;s 1+= 1;能正确编译是因为s 1+= 1;相当于s 1 =(short)(s 1+1);有隐式cast。

6.Java里有goto吗?

答:goto是Java中的保留字,在当前版本的Java中没有使用。(根据詹姆斯·高斯林(Java之父)写的《Java编程语言》附录,给出了一个Java关键字列表,包括goto和const,但这两个关键字目前还不能用,所以有些地方叫保留字。其实保留字这个词应该有更广泛的含义,因为熟悉C语言的程序员都知道,系统类库中已经使用过的字或者字的组合都被视为保留字。

7.int和Integer有什么区别?

回答:Java是一种几乎纯面向对象的编程语言,但为了编程方便,引入了基本数据类型。但是为了把这些基本数据类型当做对象来对待,Java为每个基本数据类型都引入了相应的包装器类,int的包装器类是Integer。从Java 5开始,引入了自动装箱/解包机制,这样两者可以相互转换。