Java简介
java 是一个面向对象(Object Oriented,OO)的编程语言,和其他大多数的
面向对象编程语言一样,都是单根结构,面向对象的最上级水平:万物皆对象。
瞎扯1:
(即java 里所有的东西都有共同的‘祖先’ Object),父和子的说法来源于面向
对象三大特征之一的继承,说面向对象其实也就是面向 Object 这个‘祖先’,毕
竟java里所有的东西都是 Object 的后代,这个说法就有点 多态 的意思了,面
向(Object),这个参数 Object 可以是 Object 的任何一个后代,当然我们
自己创建的类也是 Object 的后代。
类和对象
类:(归)类
成员变量,类的属性、特征
成员方法,类的行为、动作
(构造方法,类变成实例时进行的行为/动作)
对象:类具体的例子,类的实例
(构造方法 new 出来的)
面向对象
封装:
用 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 并返回 实例对象 的引用。
装饰者:套壳。(国产浏览器:))
适配器:中间件。将两个不匹配的东西 匹配 一下。
类适配器