关于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连用。
声明 :因时间有些赶,部分内容讲述的不是非常详细,如有问题请私信我,欢迎高手指正,我非常乐意向您学习更细致和准确的知识。
关于Java中面向对象章节、IO 流中的重点基础知识。的更多相关文章
- Java笔记(二十七)……IO流中 File文件对象与Properties类
File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...
- 揭开Java IO流中的flush()的神秘面纱
大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...
- 第54节:Java当中的IO流(中)
Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...
- Java中常见的IO流及其使用
Java中IO流分成两大类,一种是输入流.全部的输入流都直接或间接继承自InputStream抽象类,输入流作为数据的来源.我们能够通过输入流的read方法读取字节数据.还有一种是输出流,全部的输出流 ...
- Java当中的IO流(中)
Java当中的IO流(中) 删除目录 import java.io.File; public class Demo{ public static void main(String[] args){ / ...
- io流中的装饰模式对理解io流的重要性
为了说明 io流中的装饰者模式对理解io流的重要性,我想先简要介绍以下io的装饰模式. 装饰(decorator)你也可以翻译成修饰.比如:一个会精通化学数学的物理学家.在这个"物理学家&q ...
- 乐字节Java之file、IO流基础知识和操作步骤
嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流. 先来看看IO流的思维导图吧. 一. File 在Java中,Everything is Object!所以在文件中,也不例外! ...
- java:LeakFilling(IO流)
1.IO流中缓冲区过小,会造成读入不全(打印出来的东西会不全)读入的会是最后一个读入的,不会造成写出不全(即写出来的东西).2.缓冲区在读入时的作用就是将某个文件内容的读入到缓冲区,然后通过缓冲区来进 ...
- 超详细的Java面试题总结(四 )之JavaWeb基础知识总结
系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...
随机推荐
- Dubbo高级特性实践-泛化调用
引言 当后端Java服务用Dubbo协议作为RPC方案的基础,但部分消费方是前端Restful的PHP服务,不能直接调用,于是在中间架设了Router服务提供统一的基于HTTP的后端调用入口. 而Ro ...
- win10下安装python
1. 在官网下载python:https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe 这里下载的是3.5.2版. 2. 双击exe ...
- es6知识总结--3
es6知识总结--3 es6对咱们es3,es5的数据类型进行了升级下边说新APIs! js数据类型有Number.String .oject.Boolean.Null.Undefined六种数据类型 ...
- 关于EF 通用增删改查的封装
1. Entity Framework是Microsoft的ORM框架,随着 Entity Framework 不断的完善强化已经到达了EF 6.0+ 还是非常的完善的,目前使用的比例相对于其他OR ...
- SAP 标准成本滚算小记
我们公司的业务属于供应链业务,核心模式就是买进卖出,收取差价以及管理费用等等.基本上用不到成本管理,物料均采用移动平均价,也基本上符合公司业务的需求.所以SAP系统中对物料成本和滚算等配置就缺失了,心 ...
- 关于shell脚本函数、数组、字符串截取、svn更新发布实例
#/bin/bash #功能:QA服根据模板创建区配置文件并提交到svn上. SOURCE_PATH=/data/source_code SVN_PATH=/code/psm #svn发布目录,要 ...
- luogu P1494 岳麓山上打水 [iddfs]
题目描述 今天天气好晴朗,处处好风光,好风光!蝴蝶儿忙啊,蜜蜂也忙,信息组的同学们更加忙.最近,由于XX原因,大家不得不到岳麓山去提水.55555555~,好累啊. 信息组有一个容量为q升的大缸,由于 ...
- 基于Jmeter和Jenkins搭建性能测试框架
搭建这个性能测试框架是希望能够让每个人(开发人员.测试人员)都能快速的进行性能测试,而不需要关注性能测试环境搭建过程.因为,往往配置一个性能环境可能需要很长的时间. 1.性能测试流程 该性能测试框架工 ...
- HDU - 3697 Selecting courses
题目链接:https://vjudge.net/problem/HDU-3697 题目大意:选课,给出每门课可以的选课时间.自开始选课开始每过五分钟可以选一门课,开始 时间必须小于等于四,问最多可以选 ...
- Asp.Net MVC-4-过滤器1:认证与授权
基础 过滤器体现了MVC框架中的Aop思想,虽然这种实现并不完美但在实际的开发过程中一般也足以满足需求了. 过滤器分类 依据上篇分析的执行时机的不同可以把过滤器按照实现不同的接口分为下面五类: IAu ...