关于Java中面向对象章节、IO 流中的重点基础知识。

一、面向对象的三大特征,以及作用。

答:面向对象的三大特征即,封装性、继承性、多态性。

其分别的作用为 :

封装作用:将数据封装起来,提高数据的安全性,

继承作用:提高代码的复用性,减少冗余代码。

多态性:应用程序不必对每个派生类进行方法调用,只需要对抽象基类处理即可,大大提高程序的复用性,可以提高可扩充性和可维护性。

二、多态中的向上转型 的作用以及向下转型使用的原因

答:在多态中向上转型的是作用是,父类的引用对象名指向子类的实体,也就是用一个抽象的基类去调用每一个派生子类,向下转型的原因为,父类的引用对象名不能直接调用子类的实体。属性为优先调用父类

并且,向下转型的基础为向上转型,即先向上转型再向下转型,另外就是向上转型建立在继承的基础之上。在程序编写过程中为了避免出现父类的引用对象名不能调用子类,用if(对象名 instanceof 类名)判断左边的对象是否属于左边的类,这样在一定程度上避免发生上述错误情况。

三、 static的属性和方法 调用方式,以及内存区域。

答:static可以修饰内部类,但是不能修饰外部类,静态的属性和方法是储存在静态方法区中的,多个对象共用一份数据,一旦有某一个对象进行修改之后,其他对象将用修改之后的,所以不建议修改。

被static修饰过的方法只能被继承, 不能被重写。

四、 数组冒泡排序 建立在数组的基础之上

五、 集合的继承结构图以及, list  , set , map 各自的特点

备注:Collection Set List Map全属于接口  interface

List特点:list接口继承自Collection接口,List接口的对象称为集合,在List集合中允许存在重复的元素s,并且在存入元素时以一种线性方式存储,并且最特殊的是每个元素都有下标,下标取决与存入集合的顺序,所以就产生一个特点,元素有序,即元素存入的顺序和取出顺序一致。

Set特点:Set接口同样继承自Collection接口,相比而言并没有功能上的扩充,只是比Collection更加严格,Set集合的特点是元素无序,并且不允许重复,没有下标。

Map特点:Map接口是一种双列集合,一列储存Key(键),一列储存Value(值),二者之间存在着映射关系,指定key便可以找到value,

Key具有唯一性,即钥匙只有一把,但是开启value的方式不止一种,如果储存时键相同会造成键不变,值覆盖的情况

六、  Set Map 实现类的 数据结构 和如何实现  不允许重复

答:Set  接口中有两个实现类

七、  自然排序和定制排序的步骤,全都在TreeSet的范围中。

自然排序:1、创建需要排序的类实现 Comparable (接口)<需要排序的类名字>

2、重写CompareTo方法。返回值如果返回0,证明两个对象相同,不能存入集合。

3、调用者比参数大,返回1,升序。反之,小和-1则为降序。

4、允许出现多个条件利用if else。

5、创建TreeSet集合,将需要排序的类放入TreesSet的泛型中

6、调用 .add(new 需要排序的类名(数值));添加数据,直接打印TreeSet 对象名

定制排序:

1、创建需要排序的类。

2、创建比较器的类,实现  Comparator  <需要排序的类>

3、重写Compare方法,参数o1类似与调用者,o2为参数

4、创建TreeSet集合,泛型中写<需要排序的类>,

5、 构造方法中  必须传递 比较器对象

注意:

特别的,在以上两种比较String类型时,需要添加以下(以下为自定义排序,自然排序把其中的O1改为this即可),

八、饿汉式和懒汉式

答:饿汉式和懒汉式是单例模式(Singleton)中其中两种表现形式,还有一种一般在多线程中使用的双重锁。

饿汉式的创建步骤:

1、私有化构造方法

2、自己本类 调用构造方法创建一个对象

3、创建一个get方法 给外界提供这个对象

4、优点是线程安全

5、示例

懒汉式创建步骤

(1)私有化构造方法

(2)添加一个属性。

(3)Get方法得到单例对象,创建对象返回

(4)缺点是线程不安全

(5)示例

九、IO流的分类

只处理纯文本的数据时,用字符流,其他用字节流。

http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html

答: 1、顶级父类字节流 1、字节输入流  InputStream

2、字节输出流  OutPutStream

(1)文件字节流 1、FileInputStream(字节文件输入流,读取文件中的数据)        2、FileInputStream(字节文件输出流,把数据写入文件)

(2)字节缓冲流 1、BufferedInputStream (带缓冲区的字节输入流)                2、BufferedOutputStream(带缓冲区的字节输出流)

2、顶级父类字符流  1、字符输入流  Reader

2、字符输出流  Writer

(1)文件字符流  1、FileReader(文件中读取字符输入流)

2、FileWriter(往文件中写入字符流)

(2)字节和字符转换流 1、InputStreamWriter(将字节输出流包装成字符输出流)         2、 OutputStreamReader (字节输入流包装成字符输入流)

3、对象流 当对象进行序列化时,封装好的类(该对象)实现Serializable接口,以避免NotSerializableException异常

1、ObjectInputStream  (对象输入流,实现对象的反序列化)

2、ObjectOutputStream(对象输出流,实现对象的序列化)

所谓序列化,就是程序运行时会创建许多对象,但是程序结束后,对象就会当做垃圾回收,将对象永久保存就是序列化的功能。反序列化就是将之前写好的永久的数据恢复到之前程序中的对象状态。

4、节点流:

5、内存流

ByteArrayInputStream 将内容读取到内存之中

ByteArrayOutputStream  将数据写到内存中

十、 分别写出 文件流,缓冲流。

文件流:

FileInputStaream (字节输入流)

FileOutputStaream (字节输出流)

FileReader        (字符读出流)

FileWriter        (字符写入流)

缓冲流:

BufferedInputStaream   (字节写入缓冲流)

BufferedOutputStream   (字节输出缓冲流)

BufferedReader         (字符读入缓冲流)

BufferedWriter         (字符写入缓冲流)

十一、 什么是 装箱? 拆箱? 包装类全部写出来

装箱:将基本数据类型放进箱子中,

(示例:1、Integer i = new  Integer(10); 2、Integer  i = 10)

拆箱:将基本数据类型从箱子中拿出来赋给一个变量

(示例:1、Integer i = new Integer (10); 2、int n = i;)

包装类的全部类型


数据类型


包装类名称


备注


int


Interger


char


Character


long


Long


byte


Byte


double


Double


float


Float


boolean


Boolean


short


Short

十二、 final修饰的 属性和 方法 还有类 有什么特点

答:final修饰的一般为最终的。其中:

修饰的方法只可以继承,不可以被重写

修饰的属性成为最后的属性不可以更改

修饰的类无子类不可以被继承,更不能被重写。

修饰的对象  值可以变,引用不可以变。

十三、 final 和 finally 的区别是什么?

final 是Java中的一个修饰符,主要修饰类不可被继承,方法不可被重写,值不可变。

Finall 是异常处理机制,最后关闭流 用的,表示总是执行,含义为无论异常与否都会执行关闭 流 操作。

十四、 this 和super 的区别

在继承关系中如果父类和子类有个相同名称的方法,用this调用方法代表调用的是本类方法,super调用则代表调用的是从子类中调用父类中的方法。

其中,this在调用时,优先调用本类,如果找不到本类再去调用父类。其中二者均不可在静态环境中使用,包括静态方法、静态变量、静态代码快

十五、 抽象类和接口的区别

答:

1、接口中只能存在全局常量和抽象方法,而abstract中可以存在普通方法。

2、一个抽象类只能有一次继承关系,但一个类却可以实现多个接口(interface).

3、抽象类用来抽象类别,接口用来抽象功能。

4、抽象类不可以实例化对象,不可以和static 和private连用。

声明 :因时间有些赶,部分内容讲述的不是非常详细,如有问题请私信我,欢迎高手指正,我非常乐意向您学习更细致和准确的知识。

时间: 2024-11-07 23:14:35

关于Java中面向对象章节、IO 流中的重点基础知识。的相关文章

Java中常见的IO流及其使用

Java中IO流分成两大类,一种是输入流,所有的输入流都直接或间接继承自InputStream抽象类,输入流作为数据的来源,我们可以通过输入流的read方法读取字节数据:另一种是输出流,所有的输出流都直接或间接继承自OutputStream抽象类,输出流接收数据,可以通过write方法写入字节数据.在Java的IO流类中,大部分的输入流和输出流都是成对存在的,即如果存在XXXInputStream,那么就存在XXXOutputStream,反之亦然.(SequenceInputStream和St

揭开Java IO流中的flush()的神秘面纱

大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存.这可以通过BufferedOutputStream或BufferedWriter 链接到底层流上来实现. 因此,在写完数据时,flush就显得尤为重要. 例如: 上图中WEB服务器通过输出流向客户端响应了一个300字节的信息,但是,这时的输出流有一个1024字节的缓冲区.所以,输出流就一直等着WEB

IO流中ObjectOutputStream和ObjectInputStream的使用

package ObjectIntOutputStreamDemo; import java.io.Serializable;//注意每个类都要有这个接口 public class Student implements Serializable { private int id; public Student(int id, String name) { super(); this.id = id; this.name = name; } public int getId() { return

Java实现文件写入——IO流(输入输出流详解)

输入输出的重要性:     输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据.流是一组有序的数据序列,根据操作的类型,分为输入流和输出流. 程序从输入流读取数据,向输出流写入数据.Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类. Java的输入输出功能来自java.io 包中的InputStream类.OutputStream类.Reader类和Writer类以及继承它们的各种子类. (一)解析文件处理的奥秘 1

java文件操作(IO流)

一.引言 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力.本章IO类的使用就从读写文件开始. 文件操作 文件(File)是 最常见的数据源之一,在程序中经常需要将数据存储到文件中,例如图片文件.声音文件等数据文件,也经常需要根据需要从指定的文件中进行数据的读取.当然, 在实际使用时,文件都包含一个的格式,这个格式需要程序员根据需要进行设计,读取已有的文件

java(十一)IO流

深度遍历演示: package day22; import java.io.File; public class FileTest { /** * 需求:对指定目录进行所有内容的列出.(包含子目录,前面学的都只能列出当前目录内容,子目录不行) * 也可以理解为深度遍历. */ public static void main(String[] args) { File dir=new File("e:\\javatest"); listAll_2(dir,0); } public sta

乐字节Java之file、IO流基础知识和操作步骤

嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流. 先来看看IO流的思维导图吧. 一. File 在Java中,Everything is Object!所以在文件中,也不例外!在Java中,可以用 File类来表示一个与硬盘上文件联系!!!注意: 1.File仅代表一个联系,可能文件存在,也可能不存在: 2.这里的文件可以是文件,也可以是文件夹: 在常用类中已经详细讲过File,此处不在讲解 二. IO流 1.流概念 流即流动.流向,从一端流向另一端.如水流:从山里流向到

Java中IO流中所涉及到的各类方法介绍

1 IO流之字节流 2 (1)IO用于在设备间进行数据传输的操作 3 (2)分类: 4 A:流向 5 输入流 读取数据 6 输出流 写出数据 7 B:数据类型 8 字节流 9 字节输入流 10 字节输出流 11 字符流 12 字符输入流 13 字符输出流 14 注意: 15 a:如果没有明确说明按照什么分,默认按照数据类型分. 16 b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流. 17 (3)FileOutputStream写出数据 18 A:操作步

Io流中的其他流

数据输入输出流 数据输入流: DataInputStream 数据输出流: DataOutputStream 数据输入输出流的概述 数据输入流,让应用程序读取原始java数据类型从底层输入流中的一个独立于机器的方式.一个应用程序使用一个数据输出流来写数据,以后可以通过数据输入流读取. 输入流是不一定安全的多线程访问.线程安全是可选的,是在这个类中的方法的用户的责任. 特点: 可以写基本数据类型,可以读取基本数据类型 数据输入输出流的使用 写基本数据类型dos.writeInt(45) ;dos.