为了账号安全,请及时绑定邮箱和手机立即绑定

一个Java初学者写的博客

标签:
Java

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 互相转换:

https://img1.sycdn.imooc.com//5b8c032e0001497810970445.jpg

缓存值范围:

    Boolean:    (全部缓存)
    Byte:       (全部缓存)
    Character:  (<= 127 缓存)
    Short:      (-128 — 127 缓存)
    Long:       (-128 — 127缓存)
    Integer:    (-128 — 127缓存)
    Float:      (没有缓存)
    Doulbe:     (没有缓存)

缓存值范围作用:    判断该不该 new 一个对象。
    见下图:

https://img1.sycdn.imooc.com//5b8c03350001b8b512570493.jpg

设计模式

工厂模式:隐藏生产细节, 想要什么找什么工厂生产

抽象工厂:将工厂抽象出父类,例如水果工厂,有苹果工厂子类,香蕉工厂子类等。

单例:单例类的对象只允许存在一个,所以就用 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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消