- 基本数据类型
- byte(-128~127 ,一个字节八位),short(2),int(4),long(8)
- float(数字后面要带f),double
- char
- boolean
- 输入输出
- 1.
- 多态的好处
- 为了后期软件需求的改变不至于修改早期过多的代码
- ++I 和I++
- 原理
- java的编译器在遇到++i和i++的时候会重新为变量运算分配一块内存空间,以存放原始的值
- (注: i ++存放i,++i存放i + 1),参加运算的恰好是这块新的内存空间中的值。而在完成了运算之后,这块内存将自动释放掉。
- ++i先自增
- I++后自增
- 原理
运算符
- 逻辑运算符
- 逻辑非
- !
- 逻辑与
- &&
- 逻辑或
- ||
- 短路
- &&和||中前面能够直接决定后面的结果时,后面都不运算了
- 逻辑非
- 位运算符
- 定义
- 主要对二进制进行运算
- ~
- 按位非
- &
- 按位与
- |
- 按位或
- ^
- 按位异或
- 相同为0
- 定义
- 移位运算符
- <<
- 左移位运算符
- 将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零(向左移 n 位,相当于乘以 2 的 n 次方
- >>>
- 右边移位运算符
- 将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补 0(右移 n 位,就相当于除上 2 的 n 次方)
- >>
- 带符号的右移位运算符
- 将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补 1
- <<
- 运算符优先级
- 1.
- 逻辑运算符
数组
- 定义
- 是在内存中连续存放且类型相同的数据的集合,一个数组用于表示一组数据
- 数组必须经过申明和初始化之后才能够使用
- 数组分类
- 一维数组
- 二维数组
- 多维数组
- 初始化
- 默认初始化
- 动态初始化
- int[] a = new int[4];
int a1[] = new int[4];
a[0] = 1;
// []int a1=new int[4];
- int[] a = new int[4];
- 静态初始化
- int[] a = { 1, 2, 3 };
- .length属性可以直接获取长度
- 对数组操作
- 1.
- 注意
- 数组是对象,注意使用时要new
- 数组的容量是固定的,注意开辟数组大小
- 基本排序
- 定义
- 方法
- 访问修饰符
- 返回值
- 方法名
- 参数列表
- 类的加载方法
- 找到对应.class文件
- 把。class文件加载到内存,用new为对象分配空间,为引用分配栈空间
- 把对象的成员变量设置为默认值
- 调用构造方法初始化
- this
- 指的是引用,也就是当前对象
- 无参构造默认就有
- 写了有参构造就没有无参构造了,要自己记得写
- 作用域(同一包中的类是朋友,派生类是子女)
- public
- 所有用户都可以直接调用
- protected
- 只有子女和朋友可见
- default
- 只有朋友可见
- private
- 只有自己可见
- 5.
- public
- 封装
- 功能
- 隐藏具体细节
- 迫使用户通过方法访问数据
- 使代码更好回顾
- 方式
- 使属性私有化
- 提供公有方法访问属性
- 功能
- static
- 不能被继承
- 不能被重写
- 不能用来修饰构造方法
- 是大家共享的
- static块
- 加载时机
- 在类加载到内存之后对象创建之前执行,比构造方法还早,因为此时对象还没有准备好,所以static块是不能调用非static成员的,只能调用类的static成员
- 加载时机
- 内部类
- Innter I = out.new Inner();
- Outer.Innter=out.new Innter();
- final
- 修饰变量
- 表示这是常量
- 修饰方法
- 表示方法不能
- 引用不可变
- 常见的final类
- String
- math
- Scanner
- 修饰变量
- 抽象类
- 特点
- abstract关键字
- 可以有抽象方法,也可以没有抽象方法
- 抽象类不能实例化
- 如果可以实例化那么可以调用抽象方法,但是抽象方法里面什么都没有
- 如果子类没有实现父类的抽象方法,那么子类也是个抽象类
- 访问修饰符不能是private
- 特点
- 接口
- 定义
- 也是一个类
- 但是类中的方法都是抽象方法
- 命名一般I开头
- 访问修饰符+ interface+接口名称
- 访问修饰符只能定义public常量和public方法
- 一般都是提供一种规范
- 成员属性默认都是public+static+final的
- 只能定义抽象方法
- 没有构造方法不能被初始化
- 接口可以继承多个接口
- 接口可以多继承
- 1.
- 实现接口
- implements方法
- 如果类中部分接口的方法没有实现,那么该类是抽象类
- 抽象类和接口的区别
- 抽象类可以为部分方法提供实现,避免了在子类中重复实现这些方法,提高了代码的可重用性,这是抽象类的优势;
- 而接口中只能包含抽象方法,不能包含任何实现。
- 一个类只能继承一个直接的父类(可能是抽象类),但一个类可以实现多个接口,这个就是接口的优势抽象类是is-a的关系,接口是has-a的关系
- 接口回调
- 定义
- 多态
- 不同类的对象对同一消息作出响应。同一消息可以根据对象的不同而产生不同的行为
- 动态绑定
- 是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法
- 基本要求
- 有重写
- 父类的引用指向子类的对象
- 有继承
- 好处
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
- 类与类之间的关系
- 泛化
- 1.
- 实现
- 1.
- 关联
- 1.
- 依赖
- 1.
- 聚合
- 1.
- 组合
- 1.
- 泛化
- 包装类
- 装箱
- 基本数据类型-》包装类
- 拆箱
- 包装类的好处
- 考试0分和缺考的区别
- 具有更多的功能
- 任意类型+String=String
-
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1 == i2);//false
System.out.println(i1.equals(i2));//true - Integer
- 装箱
- String
- 本质是char数组
- final类不能被继承
- 字符串值 一旦被确定就不能被更改
- 常量池
- 是一个对象,具有方法
- 编译期间能够自动优化
- 比较字符串是否相同使用equals方法
- 使用注意空指针异常
- Stringbuffer/StringBuilder
- StringBuffer线程安全,效率高
- builder不安全,效率低
- StringBuffer操作字符串不会创建新的对象
- 日期
-
- 特征说明
- 年份 y 由整数 y - 1900 表示。
- 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
- 日期(一月中的某天)按通常方式由整数 1 至 31 表示。 小时由从 0 至 23 的整数表示。
- 因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。
- 分钟按通常方式由 0 至 59 的整数表示。
- 秒由 0 至 61 的整数表示(有闰秒,但极少发生)
- 比较时间的先后
- before
- after
- 日期的转化
- getTime()
- long表示的毫秒数都可以转
- 区别
- java.util.Date
- 常用的日期类,但功能很少,可同时表示日期和时间
- java.sql.Date
- java.util.Date的子类,仅表示日期
- java.sql.Time
- java.util.Date的子类,仅表示时间
- java.sql.Timestamp
- java.util.Date的子类,可以表示日期和时间
- java.util.Date
- 日历类
- 是一个抽象类
- 获取 对象通过getInstance方法获取
- 常用方法
-
- 格式化日期
- java.text.DateFormat是负责格式化日期的类
- 是一个抽象类
- 2.
-
-
- 异常
- 定义
- 程序运行过程中出现的错误干扰了指令的正常指令流程
- 2.
- Throwable是异常类的父类
- Error
- 程序无法处理的错误
- OutOfMemoryError、ThreadDeath
- Jvm一般会选择线程终止
- Exception
- 程序本身可以处理的异常
- 分类
- checkedException
- 继承自Exception
- uncheckedException
- 继承自runtimeException
- checkedException
- 异常捕获处理机制
- try,catch,finally
- 都不能单独使用
- try-catch
- try-finally
- try-catch-finally
- 当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行
- try,catch,finally
- Throw
- 如果一个方法可能会出现异常,但没有能力处理这种异常,可以将异常通过throw向方法的调用者抛出,由他来处理异常
- Throws
- 对于Exception及子类,必须强制性处理可抛出
- 对于RuntimeException及子类,可以不处理不抛出,但一旦产生异常,将由系统抛出
- Error
- 自定义异常
- 定义
- 集合
- Collection
- public interface Collection extends Iterable
- Iterable
-
- foreach由iterable接口提供
-
- Iterator
- default void forEachRemaining(Consumer
- Collection
Java基础部分回顾(1)
最新推荐文章于 2024-11-11 21:19:25 发布