知识回顾

初识JAVA

一、java起源
1.green小组的创建
2.oak语言的来历
3.java语言的来历
二、发展
1.java1.0发布
(1)jdk1.0
(2)jdk1.1
2.java2.0发布
(1)jdk1.2
(2)jdk1.3
(3)jdk1.4
3.java2.0分支
(1)J2SE
(2)J2ME
(3)J2EE
4.java5.0发布
(1)jdk1.5
5.java5.0分支
(1)JavaSE
(2)JavaME
(3)JavaEE
6.java6.0发布
(1)jdk1.6
java……
三、java特点
1.简单性
(1)抛弃了C系语言中,对指针,内存,头文件等一系列不必要的功能
(2)基于C++语言基础之上,延伸出来的编程语言,它依旧遵循C系语言中绝大多数的说法
(3)由于前辈多,拥有非常丰富的API类库,让我们开发更加的简单
2.面向对象
3.平台无关性
(1)虚拟机


方法区(持久代)
本地方法区
程序计数器
(2)翻译的2种方式
编译
解释
4.健壮性以及安全性
(1)抛弃了C系语言中,不必要的一些功能,避免了非法的内存操作
(2)JVM提供的gc垃圾回收机制
(3)Java的异常处理机制
5.多线程
……
四、java的组成
1.java编程语言
2.java平台
(1)JVM虚拟机
(2)java程序编程接口(API)
五、java环境变量配置
(1)JAVA_HOME
(2)PATH
(3)CLASSPATH

java基础语法

一、关键字
49种关键字
goto和const是关键字中的保留字
二、.保留字
true
false
null
三、.数据类型
3.1基础数据类型(8个)
3.11数值型
整形
byte(1字节)
short(2字节)
int(4字节)
long(8字节)
扩展:2进制、10进制、16进制如何相互转换
浮点型
float(4字节)
double(8字节)
3.12字符型(2字节)
Unicode编码
3.13布尔型(字节数不确定)
3.2引用数据类型
接口

数组
四、标识符
4.1作用范围
类的类名
方法的方法名
方法的参数
方法的返回
变量
常量
……
4.2命名规则
4.21 硬性规则
由字母,下划线,美元符号,数字组成
数字不能开头,必须要使用字母,下划线,美元符号开头
区分大小写,并且长度没有限制
不得使用java关键字
4.22 潜在规则
见名知意
类必须遵循大驼峰命名规则
变量,方法名,属性名必须遵循小驼峰命名规则
常量命名时,必须要所有字母大写,并且单词与单词之间使用_分隔,尽量做到语义详尽
……
五、常量
六、变量
6.1全局变量
作用范围:整段程序
特点:一处修改,处处都修改
6.2局部变量
作用范围:本方法内部有效,变量定义之后的代码
特点:不允许在同一个方法中,连续声明多个相同变量名的变量
七、运算符和表达式
7.1 运算符
增量和减量运算符
扩展赋值运算符
移位运算符
<< (数*2^n)

(数*2^-n)

(无符号右移)
比较运算符
三目运算符
7.2表达式
计算表达式
比较表达式
赋值表达式
布尔表达式
特别注意:++ – 参不参与表达式的区别
八、Java的注释
8.1单行注释 //
代码的描述
代码的注释
8.2多行注释 /* 注释内容 */
代码的描述
代码的注释
8.3文本注释 /* 注释内容 /
类的描述
属性的描述
方法的描述

程序流程控制

一、布尔逻辑
1.和
按位与 &
逻辑与 &&
2.或
按位或 |
逻辑或 ||
3.异或
4.非
按位非 ~
逻辑非 !
二、选择控制
1.单分支if
2.双分支if
3.多分支if
4.多分支switch
三、循环控制
1.先验循环
while
for
foreach
2.后验循环
do–while
四、跳出语句
continue
break

类、对象和包

一、结构化和对象化的区别
1.结构化编程,程序设计是围绕着解决的问题来设计的
2.对象化编程,程序设计是围绕着问题域中的参与者来进行设计的
3.类和对象的关系
二、如何编写一个Java类
2.1定义一个类
2.11访问修饰符
2.12class
2.13使用标识符规则定义类的类名
2.2添加属性,行为
三、实例化一个对象
四、访问对象的属性和行为的方法
五、this引用

对象的行为

一、方法调用栈
1.1栈的存储方式:先进后出,比如洗碗,弹夹……
1.2队列的存储方式:先进先出,比如:排队
二、方法的声明和调用
2.1方法的声明
2.11访问修饰符
2.12可选修饰符
2.13返回类型
2.14方法名
2.15参数列表
2.16可能抛出的异常
2.2方法的调用
2.21形参
2.22实参
2.23按值调用
基本数据类型传递的是值
引用数据类型传递的是引用
三、方法的重载
3.1方法名相同,但是参数列表不一样
个数
类型
顺序
3.2重载是多态的体现
四、javaoo面向对象的3大特征
1封装
1.1组装
组织类
属性
行为
行为的组织
1.2隐藏
访问修饰符
访问器
修改器
行为
2.继承
3.多态
3.1重写(动态体现)
3.2重载(静态体现)
五构造器
5.1构造器概述
5.2构造器特点
没有返回类型,甚至连void都没有
方法名必须与类名保持一致
5.3构造器的作用
5.4使用构造器创建对象的步骤
第一步:申请对象的存储空间
第二步:为对象中的属性分配存储空间
第三步:为属性赋初值,引用赋值为null,基本赋值为0
第四步:执行构造器中,我们自己定义的内容
5.5有参构造器
声明方式
潜规则
先声明无参构造
实际上,是构造函数的重载

**

数组

**
一、数组的概述
在一个连续区间,用于存放相同类型数据的集合
数组是一个特殊的集合
二、数组的特点
2.1数组中的元素必须是相同类型的元素
2.2存放元素的空间是连续的
2.3数组大小一旦固定,将无法修改
2.3数组中每一个元素,都有它对应的下标位置
三、数组的声明方式
3.1数据类型[] 变量名称
3.2元素数据类型 变量名称[]
3.3需要给数组创建引用
3.4声明时,元素数据类型即可以是基本数据类型,也可以是引用数据类型
四、数组的使用
4.1 按照下标去调用数组中对应位置的元素
4.2防止:数组越界操作
操作时
查询时
五、数组初始化
5.1概述
5.2适用场景
六、数组复制
6.1System.arraycopy
6.2Arrays.copyOf
6.3Arrays.copyOfRange
6.4封装超级数组
自动扩容
自动减容
七、文档注释工具
javadoc.exe
eclipse-导出文档注释

**

继承

**
一、继承的来源
1.1继承来自于现实生活
1.2如果不玩继承,代码可能出现:混淆属性,以及行为
1.3也有可能出现:代码重复,以及扩展性无法提升的情况
二、继承的概述
2.1将一些具有相同属性,和行为的类,中间的属性和行为抽象到一个公共类中,然后让子类去继承公共类的方式
2.2继承需要满足is–a的结构
2.3被继承的类,父类,基类,超类
2.4子类,派生类
子类可以继承除了父类私有的属性和行为、以及构造函数之外的其他内容
子类还可以扩展新的属性,以及新的行为
甚至还可以去重写父类的方法
2.5继承讲的是类和类的继承,不是对象和对象的继承

三、继承的优点
3.1代码的复用性
3.2代码的扩展性
四、继承的实现
4.1关键字extends
4.2java中只允许单继承,不支持多继承,但不是否认杂交的就不好
安全性高,层次结构清晰
不好的地方:丰富性降低

五、类和类的关系
5.1继承
5.2实现
5.3部分和整体
组合
聚合
5.4关联关系
5.4依赖
六、子类实例化
6.1new 关键字来实例化
但是要记住:并非先创建一个父类对象,然后再创一个子类对象
而是只创建一个对象,先给父类的属性分配空间,然后再叠加子类的私有属性
6.2所有类的超类Object
七、方法的重写
7.1重写的概念
7.23个原则
方法名,参数列表,返回类型都必须与父类相同
访问修饰符不得小于父类的访问修饰符
子类中重写方法的抛出的异常,不能比父类多
例子:重写toString(),equals()……
八、this,super,this(),super()
九、final 最终类
修饰变量
修饰类
修饰方法

**

类的高级概念

**
一、访问修饰符
1.private
仅限于本类访问
2.default
同包中子类和非子类都可以访问
3.protected
同包中的所有类,和非同包中的子类可以访问
4.public
所有的类都可以访问
5.概念
用来定义类中的属性和行为,能够被其他类在什么情况下可以进行访问的符号
二、封装
1.概念
用于组装类的属性和行为,并且通过访问修饰符,和方法的包装来完成对信息隐藏的一种方式
2.具体体现
2.1组装
类属性
类的行为
2.2隐藏
访问修饰符
方法的封装
3.优点
3.1类的成员变量通过访问器和修改器进行控制,可以成为只读或者是只写,不再是外部可以任意操作
3.2类可以通过对方法的控制,完成对成员变量的内容的整体控制,比如:口令(天王盖地虎),年龄控制,大小控制……
3.3类还可以改变一个成员变量的数据类型,从而让类的调用不能轻易的,凭借经验就判断出类的成员变量,比如:birthday, 变成int year,month,day;
三、static
3.1修饰全局变量(类变量)
3.11在修饰全局变量时,全局变量可以被称为静态变量,或者类变量 ,经过static修饰的全局变量,已经与对象无关,直接上升为类的变量。
3.12它的数据已经不存在每个单独的对象身上,而是存在方法区中的数据块的静态区域中,非静态成员变量,必须要等待实例化对象之后,才可以调用
3.13而静态成员变量,在类加载完成之后,就可以直接调用。
3.2修饰方法(类方法)
3.21在修饰方法的时,对应的方法可以被称为类方法,跟类变量一样,同样与对象已经无关, 直接上升为类的行为,非静态方法,必须要等到实例化对象之后,才可以调用
3.22而静态方法,在类加载之后,就可以直接调用。
3.3静态方法中,不能访问非静态成员(属性,也指方法)
3.31、静态方法在加载时,非静态属性,方法压根就还没调用
3.22、假设可以调用,那么如果存在成千上万个对象,我在调用谁的属性,或者是调用谁的行为?
4.适用场景
4.1static在修饰全局变量时,一般用于修饰常量,主要目的:节约堆内存,将变量定义在静态区域中,而不是每个对象的自身
4.2static在修饰方法时,一般用于修饰工具类的工具方法,比如:Math类,Arrays类,StringUtils类,包括超级数组类
4.3static无法修饰构造函数,因为static修饰的属性,或行为都与对象无关,但是构造是专门产生对象的。
四、初始化块
4.1实例初始化块
主要用于初始化成员变量,一般是对象实例化时,才会执行,并且是实例一次,执行一次。它执行在构造函数执行代码的第3步到第4步之间。当然可以使用有参构造,替代实例初始化块
4.2静态初始化
主要用于在类加载时,做一些前期的准备工作,比如:检查数据库连接是否正常,检查配置文件是否存在,或者提前读取某些文件内容到内存中来……,它的执行,是在类加载时,就开始执行
五、内部类
5.1成员内部类
定义在类的内部,作为类的组成
特例:静态内部类
用static修饰的成员内部类
它的特点,依旧是将该内部类,与对象脱离关系,直接上升为类的关系,效果等同于类变量,类方法
成员内部类的地位:等同于全局变量的地位
成员内部类,内部可以使用外部类所定义的所有的成员(成员变量,成员方法)
成员内部类的访问:必须要通过外部类的实例调用,才可以访问内部类。例如:pc.new Monitor();
5.2局部内部类
定义在方法的内部,作用范围也仅局限为这个方法
特例:匿名内部类
局部内部类,同样跟局部变量一样,不能添加访问修饰符
局部内部类,无法被方法外部访问
局部内部类,内部无法通过this.访问外部类的成员,但是可以通过“外部类.this.”来访问
5.3java文件与类文件的关系
5.31、java文件中,包含几个类,就对应的产生几个相应的类文件
5.32、java文件的名称,不一定和类文件的名称保持一样
兄弟类类文件的命名规则就是“兄弟类.class”
成员内部类类文件的命名规则就是“外部类 .class 内 部 类 . c l a s s ” 局 部 内 部 类 类 文 件 的 命 名 规 则 就 是 “ 外 部 类 内部类出现的次数 + 内部类.class”
5.33、一个java文件中,只允许出现一个public修饰的外部类,其他的而外部类都是default

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值