没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第一章 Java 基础方面
1.1 面向对象基础知识
. 作用域 以及不写时的区别
答:区别如下:
作用域 当前类 同一 package 子孙类 其他 package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为 friendly
. 面向对象的特征有哪些方面
答:主要有以下四方面:
1.抽象:
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前
目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时
不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表
述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新
类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可
以修改或增加新的方法使之更适合特殊的需要。
3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象
计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,
这些对象通过一个受保护的接口访问其他对象。
4.多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和
包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的
解决了应用程序函数同名问题。
. 什么是对象?什么是类?对象是靠什么进行交互的?什么是接口?
答:对象具有三个特征:行为,状态,身份。具有自己的状态和行为的事物我
们称之为对象!在软件对象里我们把状态称为属性,把行为称为方法。
类:类是定义同一类所有对象的属性和方法的蓝图或原型。类包含有关对象的
相关信息,如名称、方法、属性。类本身并不是对象,因为它不存在于内存中。
对象是靠类中方法的实现,从而改变对象的属性来进行交互。
接口:在 JAVA 中,接口不是类,而是一组对类的要求,这些类要与借口一致。
接口中任何方法都自动是 public 类型的。接口中绝不能有实例字段,而且接口
中也绝不会去实现方法。
. 和 的区别。 的方法是否可以改变返回值的
类型
答:方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写
Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中
多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,
我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中
的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多
个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的
重载(Overloading)。Overloaded 的方法是可以改变返回值的类型
. 类之间有哪些种关系?并举例说明?
答:类之间有三种关系,分别是依赖,聚合,继承
依赖:如果一个类的方法操作了另一个类的对象,那么这个类就依赖了另一个
类。例如在类 B 中调用 A.sub 属性。软件开发中类之间的以来关系越少越好!
聚合:一个类的对象包含了另一个类的对象。例如:一份定单中包含了多个项
目。
继承:在一个类 A 的基础上构件另一个类 B,类 B 就重用了类 A 的方法和字段,
同时你还可以在类 B 中添加新的方法和字段。例如:四边形类和正方形类。
.
. 构造器 是否可被
答:构造器 Constructor 不能被继承,因此不能重写 Overriding,但可以被重载
Overloading
. ! 匿名内部类 是否可以 "继承其它类,是
否可以 实现#接口
答:匿名的内部类是没有名字的内部类。不能 extends(继承) 其它类,但一个内
部类可以作为一个接口,由另一个内部类实现
$. % & 和 ! 的不同
答:Nested Class (一般是 C++的说法),Inner Class (一般是 JAVA 的说法)。
Java 内部类与 C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静
态内部类(Inner Class)意味着 1 创建一个 static 内部类的对象,不需要一个外
部类对象,2 不能从一个 static 内部类的一个对象访问一个外部类对象
'. 和 # 有什么区别
答:声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于
要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现
该类的情况。不能创建 abstract类的实例。然而可以创建一个变量,其类型是一
个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态
方法。Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也
是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类
中实现这些方法
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性
可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程
序体。接口只可以定义 staticfinal 成员变量。接口的实现与子类相似,除了该实
现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体
给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上
调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通
常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof
运算符可以用来决定某对象的类是否实现了接口
. 接口是否可继承接口( 抽象类是否可实现接口( 抽象类是否可
继承实体类
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承
实体类,但前提是实体类必须有明确的构造函数。
. 的 ) 是否可同时是 是否可同时是 ,是否可
同时是 )*
答:都不能
. + 的接口和 ,,的虚类的相同和不同处
答:由于 Java 不支持多继承,而有可能某个类或对象要使用分别在几个类或对
象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口
有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,
该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面
都是 publicstatic,所有方法默认情况下是 public.一个类可以实现多个接口。
. - 中实现多态的机制是什么?
答:方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写
Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中
多态性的一种表现。
1.2 基本类型、基本符号以及常用类
. .和..的区别
答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)
. # 型 # #/0 是否正确(
答1不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4
. 2)00等於多少( 2)030等於多少
答1 Math.round(11.5)==12;Math.round(-11.5)==-11;round 方法返回与参数最接近的
长整数,参数加 1/2 后求其 floor
. ) / 4 / , 4有什么错( ) / 4 ,/ 4有什么错
答:shorts1=1;s1=s1+1;(s1+1 运算结果是 int 型,需要强制转换类型)short
s1=1;s1+=1;(可以正确编译)
. ) 型变量中能不能存贮一个中文汉字(为什么(
答:是能够定义成为一个中文的,因为 java 中以 unicode 编码,一个 char 占 16 个
字节,所以放一个中文是没问题的
. 5和 !65有什么区别
答:Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int 是 java
的原始数据类型,Integer 是 java 为 int 提供的封装类。Java 为每个原始类型提供
了封装类。原始类型封装
类,booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,d
oubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原
始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类
型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺
省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们
的类型有关
. %6 / 7 %68"*84创建了几个 %6 -
答: 两个,一个是字符对象“abs”,另一个是字符对象的引用对象即指向“abs”的
引用对象 s。
. %6 是最基本的数据类型吗
答:基本数据类型包括 byte、int、char、long、float、double、boolean 和 short。
java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为
了提高效率节省空间,我们应该用 StringBuffer 类
$. 数组有没有 6)这个方法( %6 有没有 6)这个方法
答:数组没有 length()这个方法,有 length 的属性。String 有有 length()这个方法
'. % 里的元素是不能重复的,那么用什么方法来区分重复与否呢( 是用/
/还是 9( 它们有何区别
答:Set 里的元素是不能重复的,那么用 iterator()方法来区分重复与否。equals()
是判读两个 Set 是否相等
equals()和==方法决定引用值是否指向同一对象 equals()在类中被覆盖,为的是
当两个分离的对象的内容和类型相配的话,返回真值
. 用最有效率的方法算出 乘以 等於几
答:2<<3
. 两个对象值相同"09 // ,但却可有不同的 )) ,这
句话对不对
答:不对,有相同的 hashcode
. 7) 是否能作用在 上,是否能作用在 6 上,是否能作用在
%6 上
答:witch(expr1)中,expr1 是一个整数表达式。因此传递给 switch和 case语
句的参数应该是 int、 short、 char或者 byte。long,string都不能作用于 swtich
. 介绍 +: 中的 ;<=包括如何写自己的数据结构(
答:Collection FrameWork 如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection
的元素(Elements)
Map 提供 key 到 value 的映射
. 和 的区别
答:Collection 是集合类的上级接口,继承与他的接口主要有 Set和 List.
Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合
的搜索、排序、线程安全化等操作
. > % 2 是否继承自 接口
答: List,Set 是,Map 不是
. %?@!&A 与 %?@!&ABC;;D@ 的区别。
答:JAVA 平台提供了两个类:String 和 StringBuer,它们可以储存和操作字
符串,即包含多个字符的字符数据。这个 String 类提供了数值不可改变的字符
串。而这个 StringBuer 类提供的字符串进行修改。如果你对字符串中的内容
经常进行操作,特别是内容要修改时,那么使用 StringBuer,如果最后需要
String,那么使用 StringBuer 的 toString()方法好了!当你知道字符数
据要改变的时候你就可以使用 StringBuer。典型地,你可以使用
StringBuers 来动态构造字符数据。
. 说出 >:5>=> 的存储性能和特性
答:ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储
的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要
涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用
了 synchronized 方法(线程安全),通常性能上较 ArrayList 差. 就 ArrayList 与
Vector 主要从二方面来说:一.同步性:Vector 是线程安全的,也就是说是同步的,
而 ArrayList 是线程序不安全的,不是同步的;二.数据增长:当需要增长时,Vector 默
认增长为原来一培,而 ArrayList 却是原来的一半
而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,
但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
$. E)2 和 E) 的区别
答:HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了
Map 接口,主要区别在于 HashMap 允许空(null)键值(key),由于非线程安全,
效率上可能高于 Hashtable。
HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。
HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。
因为 contains 方法容易让人引起误解。
Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Mapinterface 的一
个实现。
最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线
程访问 Hashtable 时,不需要自己为它的方法实现同步,而 HashMap就必须为之
提供外同步。
Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一样,所以性能不会有很大
的差异。
'. ) 和 = 有什么区别
答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进
先出的方式进行处理。堆是栈的一个组成元素
剩余63页未读,继续阅读
资源评论
enjack_droid
- 粉丝: 4
- 资源: 42
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功