概述
重要特点
- Java语言是面向对象的
- Java语言是健壮的。Java的强类型机制,异常处理,垃圾的自动收集等是Java程序健壮性的重要保证
- Java语言是跨平台性的。
- Java语言是解释型的
JDK,JRE和JVM的包含关系
- JDK=JRE+开发工具集
- JRE=JVM+Java SE标准类库(java核心类库)
- 如果只想运行开发好的.class文件,只需要JRE
变量注意事项
- 变量表示内存中的一个存储区域
- 该区域有自己的名称和类型
- 变量必须先声明,后使用,即有顺序
- 该区域的数据可以在同一类型范围内不断发生变化
- 变量在同一个作用域内不能重名
- 变量=变量名+值+数据类型。
数据类型
- JAVA数据类型分为两大类,基本数据类型,引用类型
- 基本数据类型中有8种,数值型【byte,short,int,long,float,double】char,boolean
- 引用类型【类,接口,数组】
整型细节
- Java各整数常量(具体值)默认为int型,声明long型常量需要后面加‘l’或‘L’
- bit:计算机中最小存储单元。byte:计算机中基本存储单元,1byte=8bit。
浮点型细节
- 浮点常量默认为double型,声明float型常量,需要后面加‘f’或‘F’。
字符型细节
字符编码表
类以及类型转换
类的组织形式
自动转换注意类型和细节
强制类型转换
运算符,标识符
逻辑运算符一览
规则
短路与与逻辑与
短路或与逻辑或
逻辑运算符规则
三元运算符
细节
运算符优先级
进制
标识符命名规则
原码反码补码
为什么用补码来运算:补码可以把正数和负数连接起来。
位运算符
注意
重要的两个编程思想
程序控制
switch,for,while,do…while
多重循环,
合理运用。
嵌套最好不超过三层
continue,break
数组
概念
使用方式
细节
冒泡排序
特点:
二维数组
生成随机数
radom的nextInt(int n),指的是在0到n(不包括n)之间随机生成一个int型的值
二维数组内存中的存在形式
类与对象
对象存在形式
基本介绍
注意细节
内存分配机制以及流程
成员方法
基本介绍
调用
定义
细节
编写思路
传参机制 parameter(参数)
方法递归调用
基本定义
重要规则
方法的重载
基本介绍
细节
可变参数
基本概念
解读
细节
作用域
基本使用
注意事项
构造方法/构造器
class Person{ String name; int age; //构造器 // 1. 构造器没有返回值,也不能用void // 2. 构造器的名称和类名一致 // 3. (String pName,int pAge)是构造器的形参列表,规则和成员方法一样 public Person(String pName,int pAge){ System.out.println("构造器被调用"); name=pName; age=pAge; } } //小点(.)是对象访问符,例:p1.age
注意事项和细节
Javap可以反编译
对象创建流程分析
- 方法区加载类信息(只会加载一次),在堆中开辟一块该类的空间(分配地址)。
- 根据类里定义的全局变量(属性)将该空间划分出来,默认初始化:初始值int型为0,string型为null。
- 显式初始化:如果属性有赋值初始值,将其赋给该属性。
- 构造器初始化:如有传参,应用相应的构造器进行属性值的更改。string类型从常量区进行加载。
- 将堆中的对象的地址返回给栈中的p(对象的引用/对象名)。
this关键字
因为java是在jvm虚拟机上运行的,所以没有办法直接获取真实的地址。折中办法使用hashCode()返回对象的哈希码值,可以近似当作对象的地址。
练习
Double是double的包装类。返回值可以为空:null。
注意:静态方法可以直接通过类名调用
包
三大作用
包的本质
包的命名
常用的包
注意事项以及细节
访问修饰符
基本介绍
注意事项
面向对象三大特征
封装
介绍
好处
实现步骤
如果在构造器中也需要对数据进行判断,可以把get/set跟构造器结合。在构造器内部调用get/set方法。
继承
基本介绍以及基本语法
细节
继承的本质
- 内存布局图
继承顺序
super关键字
基本介绍
细节
表格
演示规则
方法重写
基本介绍
细节
重写和重载的区别
多态
基本介绍
具体体现
向上转型
注意事项,细节
调用方法规则
向下转型
注意事项
动态绑定机制
多态应用
多态数组
A instanceof B:判断A的运行类型是不是或者B的子类,
多态参数
什么是多态,多态的具体体现有哪些?
(3)编译类型看定义时=号的左边,运行类型看=号的右边。
Object类详解
equals方法
==和equals的对比
示例表格
instanceof
hashCode方法
6点小结
toString方法
基本介绍
finalize方法
断点调试
注意事项以及介绍
快捷键
示例小项目零钱通
//用于日期格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//获取当前日期
date = new Date();
开发流程
改进
小项目截图
类变量与类方法
类变量
特点以及举例
static变量的位置
jdk8以前是在方法区的静态域,jdk8及以后是在堆中的对应的class对象的最后。
共识
基本介绍
类变量师随着类的加载二创建,所以即使没有创建对象实例也可以访问。
使用细节
类方法
基本介绍
使用场景
注意事项
小结
main方法
形式
注意
代码块
基本介绍
好处以及使用方法
好处
使用方法
使用细节
第一部分
第二部分
第三部分
第四部分
单例模式
设计模式介绍
概述
饿汉式
具体步骤
细节解释
懒汉式
步骤
区别
总结
final关键字
基本介绍
细节
第一部分
第二部分
抽象类
概念
细节
第一部分
第二部分
第三部分
接口
基本介绍
小结
细节
第一部分
第二部分
实现接口和继承类的区别
接口的多态
内部类
基本介绍
基本语法
分类
局部内部类
- 使用
注意:
匿名内部类
本质
使用举例
细节
成员内部类
使用
静态内部类
特点