没有合适的资源?快使用搜索试试~ 我知道了~
首页Java SE 基础知识题库
资源详情
资源评论
资源推荐
面向对象
1. 面向对象的特征有哪些方面
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不
打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是
数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个
新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子
类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改
或增加新的方法使之更适合特殊的需要。
3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即
现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4.多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具
有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题
2. java 中实现多态的机制是什么?
方法的重写 和重载 是 多态性的不同表现。
重写()是父类与子类之间多态性的一种表现;
重载()是一个类中多态性的一种表现。
3. Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。
重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被 "屏蔽"了。如果在一
个类中定 义 了 多个同名 的 方 法,它们 或 有 不同的参 数 个 数或有不 同 的 参数类型 , 则 称为方法 的 重 载
(Overloading)。
Overloaded 的方法是可以改变返回值的类型
4. 构造器 Constructor 是否可被 override?
构造器 Constructor 不能被继承,因此不能重写 Overriding,但可以被重载 Overloading。
5. Java 的接口和 C++的虚类的相同和不同处。
由于 Java 不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单
继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现
了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 publicstatic,
所有方法默认情况下是 public.一个类可以实现多个接口。
6. abstractclass 和 interface 有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为
的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract类的实例。然而可以创建一个
变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象 静态方法 。
Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现
该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获
得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 staticfinal 成员变量。接口的实现与
子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有
这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使
用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换 ,
instanceof运算符可以用来决定某对象的类是否实现了接口。
7. 接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明
确的构造函数。
8. abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized?
都不能
基本数据类型
9. Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round 方法返回与参数最接近的长整数,参数加 1/2 后求其 floor.
10. char 型变量中能不能存贮一个中文汉字?为什么?
能够定义成为一个中文的,因为 java 中以 unicode 编码,一个 char 占 16 个字节,所以放一个中文是没问题的
11. shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?
shorts1=1;s1=s1+1;(s1+1 运算结果是 int 型,需要强制转换类型)
shorts1=1;s1+=1;(可以正确编译等价于s1 = (short)s1 + 1)
12. int和Integer有什么区别
Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int 是 java 的原始数据类型,Integer 是
java 为 int 提供的封装类。Java 为每个原始类型提供了封装类。
原始类型封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,
它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例
数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
运算符
13. 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路
14. &和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)
15. 用最有效率的方法算出 2 乘以 8 等於几?
2<<3 注:<< 符号表示向左移位,在二进制中位数的移动,”<<”表示移位一次,相当于 2 的 1 次幂,即
2<<3 可以表示成 2*2 的 3 次幂。
流程控制
16. swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
switch(expr1)中,expr1 是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、c
har或者byte。long,string都不能作用于 swtich。
17. 在 JAVA 中,如何跳出当前的多重嵌套循环?
用 方法。
String 和 StringBuffer
18. 是否可以继承 String 类?
String 类是 final 类故不可以继承。
19. String 是最基本的数据类型吗?
不是,基本数据类型包括 byte、int、char、long、float、double、boolean 和 short。
java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们
应该用 StringBuffer 类
20. 数组有没有 length()这个方法?String 有没有 length()这个方法?
数组没有 length()这个方法,有 length 的属性。String 有有 length()这个方法。
21. Strings=newString("xyz");创建了几个 StringObject?
两个
创建步骤:
1) 首先在堆(不是常量池)中创建一个包含指定内容的字符串对象,并将字符串引用指向该对象。
2) 去字符串池中查看,是否包含内容对象。
3) 若有,则将 new 出来的字符串对象与字符串常量池中内容相同的对象联系起来。
4) 若没有,则在字符串常量池中再创建一个包含该内容的字符串对象,并在堆中的对象与字符串常量池中
新创建出来的对象联系起来。
22. String和 StringBuffer 的区别
Java 平台提供了两个类:String 和 StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数
据。这个 String 类提供了数值不可改变的字符串。而这个 StringBuffer 类提供的字符串进行修改。当你知道字
符数据要改变的时候你就可以使用 StringBuffer。典型地,你可以使用 StringBuffers 来动态构造字符数据。
String str1 = “java”; str1.replace(‘j’,’2’);//此后 str1 还是 java,只是 replace 可以重新返回一个 2ava!
23. String,StringBuffer,StringBuild 之间的区别?
的长度是不可变的, 的长度是可变的。如果你对字符串中的内容经常进行操作,特
别是内容要修改时,那么使用 ,如果最后需要 ,那么使用 的 方
法
与
从 !"#$开始,为该类增添了一个单个线程使用的等价类,即。与 StringBuffer 相比,通常
应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
%&'()'*
%+&'%,'*
%-&%.%+*
%&/'()'*
%+&/'%,'*
%&%#00%+*
%-&/'()'*
%1&/'%,'*
sb3=sb3.append(sb4);
异常处理
24. 运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,
是一种常见运行错误。java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛
出未被捕获的运行时异常。级别不一样...
一般异常都是 Exception 的子类, 运行期异常与 System.err 平级的
一般异常值得捕获,运行期异常就管部了,无能为力地.
运行时异常与运行时环境有关,一般异常与原代码有关!
25. error 和 exception 有什么区别?
error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理
这样的情况。
exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
26. Java 中的异常处理机制的简单原理和应用。
当 Java 程序违反了 Java 的语义规则时,Java 虚拟机就会将发生的错误表示为一个异常。违反语义规则
包括两种情况:
一种是 Java 类库内置的语义检查。
例如数组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会引发 NullPointerException。
另一种情况就是 Java 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用
throw 关键字引发异常。所有的异常都是 java.lang.Thowable 的子类。
剩余16页未读,继续阅读
ccg
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1