版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
前言
关于知识体系,我的理解是,不止是知道你会什么,也应该包括知道你不会什么。
给自己的知识划范围,能看到边界的存在,并且去自我选择往哪个边界发展。
同样。每个知识除了它可以做什么,也应该明白它不能做什么。知道优点,也要知道缺点。这样才是掌握。
明白自己的知识边界,把知识孤岛联系起来,是为知识体系
一、目的
复习java基础的目的:
- 复习java基础语法
- 思考:java基础语法可以做什么?
- java基础在知识体系中的位置?
二、java基础知识回顾
java的特点
- 面向对象,继承,封装,多态
- 面向对象是什么
编程语言类型: 面向过程POP/对象OOP/函数FP等
- 面向过程:当前代码的目的就是为了满足当前功能.数据作为输入,方法实现功能,最后产生输出。表示一次面向过程
- 面向对象: 一个功能由多个对象的不同行为组装而成.核心思想在于将功能拆分为不同对象的行为。
- 面向函数: 以函数为单位,将函数传递调用实现最后的输出。
- 面向服务框架SOA: 将一个服务拆分为多个子服务
- 面向切面编程AOP: OOP的一种补充,OOP是将一类有着共同行为的对象组成类,然后,子类是功能的扩展,层级关系是自上向下的。AOP有一种从左到右的感觉。即同一个类,有100个对象,现在你想对其中50个进行某些处理,另50个不做处理,怎么办,OOP只能向下扩展一个子类,AOP则是对每一个对象横向切面,做处理.例如:spring中,方法调用是顺序执行,AOP可以在任意方法上加入 前置后置处理。 - 继承,封装.多态是什么
- 继承: 表现形式为 子类可以继承父类的代码,提高了代码利用率
- 封装: 每个对象负责自己的私有属性,同时只开放固定的处理属性的方法,其他人不能直接修改对象的属性,只能按照指定的方法逻辑去处理属性。提高了安全性。(get/set对安全性没有帮助,但是如果不需要get/set,只有固定处理逻辑的方法时,就能体现(其实就是对数据处理的行为进行了限制))
- 多态 子类因为继承了父类的代码,可以当父类使用 配合重写特性,子类可以用自己的代码覆盖父类的代码,执行的时候,不同子类的相同方法,最后有了不同的表现。
- 重写 子类和父类同名的方法,实现以子类为准
- 重载 同一个类的同名不同参方法,视为不同方法
java基础语法
- 对象类型
- class: 存放数据和处理数据的具体行为
- interface: 定义class的行为
- enum: 存放固定数据 - 数据类型
基本类型:
- boolean: 1个字节
- byte: 1个字节
- char: 2个字节 UTF-16BE编码格式,单个char只能保存部分中文,超过2字节的中文,使用2个char表示。因此,String可以支持UTF-16的所有字符,char不能
- short 2个字节
- int 4个字节 二进制保存数字
- long 8个字节 二进制保存数字
- float 4个字节 采用指数计数
- double 8个字节 采用指数计数
封装类型:
- 自动装箱和自动拆箱: 其实就是调用valueof()方法
- Boolean,
- Byte,
- Character,
- Short,
- Integer(-127~128的值是缓存值),
- Long,
- Float,
- Double,
- String(字面常量最多65536个字节长度,因为写为class文件时,使用CONSTANT_Utf8_info表示字面常量的字节长度(采用UTF8编码),CONSTANT_Utf8_info使用的16位无符号整数,String长度最大(2^31-1) 大概2G个char ),
- BigInteger,
- BigDecimal - 运算符
4.流程控制
for / foreach/while/dowhile/if else/switch/break/continue
5.面对对象
初始化: 构造函数 this
垃圾回收: gc finalize()方法
访问权限: private default protected public
对象复用:- 组合 将对象作为其他类的属性
- 继承 子类继承父类,可以重写父类的方法
内部类: 匿名内部类/局部内部类/静态内部类