小言_互联网的博客

每天十道面试题(一)

225人阅读  评论(0)

1、面向对象的特征有哪些方面?

1)封装性:封装是将数据和过程包裹起来,用户只是可以知道并使用对象的属性和方法,并不知道对象的具体实现。对象以外的部分不能随意存取对象内部的数据。在封装的对象内部可以改变其结构或实现方法,只要对象的接口没有变化,则代码的其它部分也不需要处理。这样使错误局部化,大大提高了程序的可维护性,并且降低了查错改错的难度。

2)继承性:继承是有联系的类所构成的层次模型。它可以重用类,并且提供了明确表达共性的方式,即原始类的派生类(子类)可以从基类(父类)那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这样使设计新类的过程大大简化。

3)多态性:多态是在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。多态性包括参数多态性和包含多态性。Java编辑器会自动根据所传递的参数进行判断,根据运行时对象的类型不同而执行不同的操作,这样很好地解决了应用程序函数同名问题。多态性丰富了对象的内容,扩大了对象的适应性,改变了对象单一继承的关系。

2、public,private,protected修饰符的作用域,以及不写修饰符时的区别?

1)使用public修饰符的变量和方法,在任何一个类中创建对象后都可以访问到,包括当前类、同包的类、子孙类以及外包的类。

2)使用protected修饰符的变量和方法,不可以访问外包类创建的对象。

3)不写修饰符的变量和方法,为默认类,只可以访问同一个包中类创建的对象。

4)使用private修饰符的变量和方法,只能在当前类中使用。

3、String是最基本的数据类型吗?

不是。

Java语言中数据类型划分为两大类,分别是基本数据类型和引用数据类型。

基本数据类型又分为:

整数型:字节型(byte)、短整型(short)、整形(int)、 长整型(long)

浮点数型:单精度型(float)、双精度型(double)

字符型(char)

逻辑型(boolean)

引用数据类型又分为:

接口、对象、类、数组、字符串String、集合等

4、float型float f=3.4是否正确?

不正确。

隐式转换,即自动转换,它是由小至大的转换:

byte——》short——》int——》long——》float——》double

char——》int——》long——》float——》double

它不要求加以声明,是系统默认的。

显式转换,即强制转换,它是由大至小的转换,它的格式为:

类型 变量=(类型) 变量2;

在Java里面,没小数点的默认是int,有小数点的默认是 double,应该写成:

float f=(float)3.4 或float f = 3.4 f

5、语句float f=1.3;编译能否通过?

不能。

理由同上。应该用强制类型转换,写成float f=(float)1.3或float f = 1.3 f

6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1;不对

Java规范有这样的规则:1.高位转低位需要强制转换 2.低位转高位自动转.

i 是int 型, s1是 short型, 通过加1运算后s1 自动转为int 型,所以要强制转换

short s1 = 1; s1 += 1;正确

这个不会发生类型的提升,JAVA规范上说 :

e1+=e2 实际上是 e1=(T1)(e1+e2) ,其中T1是e1的数据类型。

s1+=1等效于 s1=(short)(s1+1),所以是正确的。

7、Java有没有goto?

没有。

goto和const是Java中的保留字,现在没有在Java中使用

8、int 和 Integer 有什么区别?

1)Integer可以 为null,而int不可以;

2)Integer可用于泛型,而int不可以;

3)int比Integer更高效,因为int是在栈中直接存储的具体数值,而Integer是堆中存储数值的引用;

4)两个Integer的值可以相同,但却不相等;

5)自动装箱(原始数据类型转换成引用数据类型)和自动拆箱(引用数据类型转换成原始数据类型)

9、&和&&的区别?

运算符“&&”为简洁与运算符,运算符“&”为非简洁与运算符,它们的区别如下:

1)运算符“&&”只有在其左侧为true时,才运算其右侧的逻辑表达式,否则直接返回运算结果false;

2)运算符"&"无论其在左侧为true或false,都要运算其右侧的逻辑表达式,最后才返回运算结果。

10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?

1)条件操作只能操作布尔型,而逻辑操作不仅可以操作布尔型,而且可以操作数值型

2)逻辑操作不会产生短路。


转载:https://blog.csdn.net/abc701110/article/details/105500452
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场