Java简介
java 是一个面向对象(Object Oriented,OO)的编程语言,和其他大多数的 面向对象编程语言一样,都是单根结构,面向对象的最上级水平:万物皆对象。 瞎扯1: (即java 里所有的东西都有共同的‘祖先’ Object),父和子的说法来源于面向 对象三大特征之一的继承,说面向对象其实也就是面向 Object 这个‘祖先’,毕 竟java里所有的东西都是 Object 的后代,这个说法就有点 多态 的意思了,面 向(Object),这个参数 Object 可以是 Object 的任何一个后代,当然我们 自己创建的类也是 Object 的后代。
类和对象
类:(归)类 成员变量,类的属性、特征 成员方法,类的行为、动作 (构造方法,类变成实例时进行的行为/动作) 对象:类具体的例子,类的实例 (构造方法 new 出来的)
类与类之间的关系
泛化: 继承 实现(接口) 依赖: 临时性,很弱 类 A 作为参数在类 B 中使用 关联: 长期性,比依赖强 类 A 是类 B 的一个属性 聚合(弱聚合): 类 A 是类 B 的一个属性,但是这个属性可有可无 组合(强聚合): 类 A 是类 B 的一个属性,这个属性必须有,同生命周期
面向对象
封装: 用 private 修饰 成员变量 ,隐藏类内部细节 提供 public 修饰的 getter 和 setter 方法,作为外部访问类内 成员 变量 的入口 (工厂模式就是最好的应用,往下翻有工厂模式) 继承:(分)类 将一些类的 共同属性/行为/特征/动作 抽象出来产生一个父类,便于分类 (值得注意的是java特别符合现实中的伦理道德,每个类只允许有一个父亲, 也就是单继承 extend ) 多态:前提是继承,运行时才会发生(一个LOL战队一般都有有很多个队员,真正 要上场了才知道谁上场谁替补,faker 都替补了:) ) 可以说是有两种: 1.赋值多态 2.传参多态 也可以说是就一种:赋值多态。 传参多态理解为 形式参数 被赋值。 我是理解只有一种:赋值多态,待赋值的(形式参数/对象引用),在运行 之前被告诉是 XX的孩子 ,但是 XX 有好多个孩子,在运行时才会 被具体告诉是 XX的哪个孩子 。 抽象类:半成品,有的本领自己还没掌握,但是寄希望于自己的后代(现实中的 父亲望子成龙) 重写/重载: 重写:修改方法内在,外表不修改(修身养性) 重载:修改方法外表 和 内在,(整容 + 修身养性) 接口:(老师,教 类 本领的,是本领的集合,而且有各种老师) 类想学什么本领就继承 什么老师 ,不过学的有好有坏,学习后掌握的程度 也都大不相同,所以每个本领都得具体到自己身上,也就是要重写那个本领 (想到说每一次考历史都是改写历史的同学,还有表面上体育课---)。
I/O
Input:输入到java运行环境jvm里 Output:从java运行环境jvm输出 字节流和字符流的区别: 字节流:直接操作文件 字符流:通过缓冲区(内存)操作文件 序列化:将一个对象变成字节序列 , 继承接口 Serializable 只是一个标识, 表示可被序列化,(类似你拿了CET-4,就标识你这个人会一点点英语)
集合框架
想仔细了解集合框架,点这里跳转到菜鸟教程 Java-集合框架: http://www.runoob.com/java/java-collections.html
那么多东西谁能记得住,到时候点上面的链接。 ArrayList:动态数组,内存空间里连续,所以查询快,增删要维护所有的, 所以增删慢 LinkedList:链表,内存空间里不连续,所以查询慢,因为内存空间里是用 链 连起来的,增删只用维护 链 就可以了,所以增删快 HashSet:不能重复,不一定是你放进去的顺序 TreeSet:不能重复,可以排序 HashMap:key-value
List:一般用来存放数据
Set:做个排序(TreeSet),去个重(HashSet)
Map:做缓存比较好,因为 key-value 。
包装类
8个包装类,对应8种基本数据类型,便于进行对象操作。 基本数据类型-包装类-String 互相转换:
缓存值范围: Boolean: (全部缓存) Byte: (全部缓存) Character: (<= 127 缓存) Short: (-128 — 127 缓存) Long: (-128 — 127缓存) Integer: (-128 — 127缓存) Float: (没有缓存) Doulbe: (没有缓存) 缓存值范围作用: 判断该不该 new 一个对象。 见下图:
设计模式
工厂模式:隐藏生产细节, 想要什么找什么工厂生产 抽象工厂:将工厂抽象出父类,例如水果工厂,有苹果工厂子类,香蕉工厂子类等。 单例:单例类的对象只允许存在一个,所以就用 private 修饰构造方法, 只允许自己 new 自己。 饿汉:一上来就直接 new 了。 懒汉:让一个 public static 的方法(通常是叫 getInstance )来 new, 先判断 实例对象 是否为 null ,是 null 的话就 new , 不是的话就不 new 并返回 实例对象 的引用。 装饰者:套壳。(国产浏览器:)) 适配器:中间件。将两个不匹配的东西 匹配 一下(电源适配器。。) (摘抄自这个博客https://www.cnblogs.com/V1haoge/p/6479118.html) 1、类适配器: 原理:通过继承来实现适配器功能。 简单的例子: 两个接口: A , B 两个接口对应的实现类:A_Impl , B_Impl 适配器: Adapter 继承 B_Impl 实现 A 或者 Adapter 继承 A_Impl 实现 B 测试类:new 一个 Adapter 类的 对象 adapter 就可以连接 接口 A 和 B 。 2、对象适配器: 原理:通过组合(强聚合)来实现适配器功能。 简单的例子: 两个接口: A , B 两个接口对应的实现类:A_Impl , B_Impl 适配器: Adapter 实现 A ,并包含一个 B_impl 类型的成员变量 或者 Adapter 实现 B ,并包含一个 A_impl 类型的成员变量 测试类:new 一个 Adapter 类的 对象 adapter 就可以连接 接口 A 和 B 。 3、接口适配器: 原理:通过抽象类来实现适配,这种适配稍别于上面所述的适配。 简单的例子: 接口 A 里面有很多方法 抽象的 Adapter 空实现 A 的所有方法 实现类 A_Impl 继承 Adapter ,需要什么方法就重写什么方法
原文出处:https://blog.csdn.net/ump45/article/details/82261146
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦