孔子云:温故而知新,可以为师矣。那么今天就来回顾一下这一个星期所学的知识。
第一章: 初步认识Java
- Java版本:SE 、 EE 、 ME, SE定位于计算机,EE定位于服务器。
- Java优势: 跨平台性(不区分操作系统),面向对象,多线程,高性能等等。
- JVM 、JRE 、JDK:JVM是跨平台性的核心机制,运行Java只要JRE,开发需要JDK。
- Java运行机制:先编译成.class文件,再解释运行。
- "Hello World"程序: main方法是Java程序的入口。输出语句的固定写法。
第二章: Java面向对象编程基础
- 面向过程和面向对象思想:万物皆可对象,要宏观把控系统。
- 类和对象: 类是模板,对象是实例。
1)类一般由三大部分组成(成员):成员变量、成员方法、构造方法。类名要符合驼峰原则。
2)看见new这个关键字就是在创建对象,其含义是调用类的构造方法创建实例。
3)匿名对象:一般对象都会给个名字,没名字的就是匿名对象。 - Java数据类型: 两类,基本数据类型和引用数据类型。
1)整型默认为int,浮点型默认为double,long型数据在末尾加"l/L",float型数据在末尾加"f/F"。浮点型数据避免直接比较大小!
2)自动数据类型转化:范围小的可自动转换成范围大的,有部分转化过程可能出现精度丢失,所以这也不是绝对安全的。
3)强制类型转化:小的转化成大的,在前面加上小括号并写上要转化的数据类型即可。 - 运算符: 一元、二元、三元(? :)、条件、逻辑等等
1)+ 比较特殊,如果都是数值则算数加,如果有一个是字符串(不是字符哦)则会变成字符串连接符。
2)== 需要注意,在基本数据类型中是比较数值大小,而在引用数据类型中是比较地址的值。 - 变量: 本质就是可操作的内存空间。分为三类(按所在位置):局部变量,成员变量,类变量(其实也算是成员变量)。其中第一种需要初始化值才能使用,而后两者系统有默认值。
- 常量: 相对于变量的概念。
- 标识符: 名称。
- 关键字: 也叫保留字,是Java内部使用的单词,用来表示某些含义。其特点是全部小写字母。
- 类的第一种成员——成员变量。定义在类中的变量。
1)如果有static修饰我们会换种称呼,叫静态变量或者类变量。它是从属于类的,要使用它,是类名.类变量名。
2)如果没有static修饰,它是从属于对象的,要使用它,是对象名.成员变量名。 - 控制语句:选择、循环等结构。
- 关键字 break 和 continue 的详解。
- 类的第二种成员——成员方法。相当于C语言的函数。
1)和成员变量一样,分有没有static修饰,且其他内容都一致,不过就是一个是变量一个是方法。
2)方法中的形参和实参:在传递值是都是传递的副本,但是对象本就是存的地址,所以即使是地址的副本,指向性仍然不变。
3)方法的重载:本质上是同名的不同方法。有三个条件:第一,不同含义即形参类型、形参个数、形参顺序不同;第二,只有返回值不同不能构成重载;第三,只有形参的名称不同,不构成方法的重载。本质上就是在调用时可区分开是不同的方法即可,不管返回值的。 - 类的第三种成员——构造方法: 就是一种特殊的方法,专门来创建对象的,所以构造方法一般都是为了给成员变量初始化。注意,不能写返回值类型,可就是不能return 什么东西回去,但可以有return; 表示方法的结束。
- 定义一个标准的类 :这是种规定,啥叫标准。要求:所有的成员变量必须要用private修饰;为每一个成员变量创建Setter和Getter方法;编写一个无参数的构造方法;编写一个全参数的构造方法。
- this 关键字详解: 说白了就是当前对象,this不能用于用于静态方法,原因是静态方法从属于类而非对象!
- static 关键字详解: 用static修饰的成员从属于类,并且只有一份,被所以对象共享!
- JVM内存结构粗略分析: 最主要的三部分——栈、堆、方法区。栈是方法执行的内存模型;堆是对象的存储区域;方法区放的是类信息和静态东西和一些常量。
- 垃圾回收机制: 分代垃圾回收机制。
- 包: 用于管理类!导入用import关键字。
第三章: Java面向对象编程进阶
-
面向对象三大特性——封装性: 成员变量全用private修饰;方法就是一种封装(常用Getter/Setter方法访问成员变量)。了解“高内聚,低耦合”。
-
访问控制符: public>protected>(default)>private。
-
面向对象三大特征——继承性: 子类和父类,也称派生类和基类。它们是一种逐渐延伸和具体化的关系。
1)Java只能是单继承。
2)方法的重写:和父类同名的方法的覆盖。要求:方法名、形参列表相同;返回值类型和声明异常类型,子类小于等于父类;访问权限,子类大于等于父类。
3)instanceof运算符: 看左边对象是否是右边类的实例。(包含多态性)
4)Object类: Java继承树的根节点。掌握两个方法toString()和equals()。
5)super关键字: 构造方法第一句默认为super(),意思是找到父类的成员。super()和this()在构造方法中只能二选一。所以构造方法的执行一定是从上往下执行的。
6)静态初始化块: 程序只执行一次,且优先级最高。
7) 成员变量和成员方法在继承中的查找: 先找自己的,没有再往上找。 -
面向对象三大特性——多态性: 多种形态。
1)多态是方法的多态,不是属性的多态。
2) 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。 -
对象的转型: 父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。还有向下转型,这是强制转型,不安全!
-
final 关键字详解: 修饰的变量是常量,不可改变;修饰的方法不能重写,但是可以重载;修饰的类不能被继承。
-
抽象方法和抽象类 : abstract修饰。
1)抽象方法直接 ; 结束,没有方法体,必须要重写。必须要在抽象类或接口中。
2)抽象类不能创建对象,但是可以有非抽象方法。 -
接口: 接口是一种规范,它比抽象类还抽象。
1)接口不能有普通的成员方法,成员变量也只能是final修饰的。
2)接口内容(Java9及之前):常量、抽象方法(7)、默认方法、静态方法(8)、私有方法(9)。
3)接口可以有多继承,类也可以实现多个接口。implements作为关键字。 -
内部类 : 定义在类的内部的类。编译时也会生成.class文件,不过名称是:外部类名$内部类名.class。
1)内部类分三种,第一种是成员内部类,顾名思义是类的成员。- 有static修饰的,是静态成员内部类,和类变量、静态方法实质一样,所以使用它是用 外部类.内部类 对象=new 外部类.内部类的构造方法。
- 没有static修饰的,是非静态成员内部类,用法是外部类.内部类 对象=new 外部类构造方法.new 内部类构造方法。
2)第二种是局部内部类:定义在方法内部。
3)第三种是匿名内部类:没有名字的内部类,这种内部类最常见,用来写那些只实现一次接口的类。
第四章: 数组
- 一维数组: 相同数据类型的集合。
1)长度是确定的。
2)数组就是对象。
3)初始化:静态、动态、默认。
4) 数组的length东西,是Java底层靠指令知道的
5)数组的遍历: 增强for循环。
6)数组的拷贝: arraycopy(…)方法,System类的。还可以用来删除等其他操作。 - 多维数组: 元素为数组的数组,嵌套关系,不常用。
1)二维数组的声明:从低到高。
2)二维数组初始化:注意元素是数组,所以需要创建对象而不是直接赋值。
第五章: 常用类
-
包装类 : 把基本数据类型包装成类。它们都在java.lang包里。
1)以Integer类举例,有两种构造方法,注意没有无参的。
2)静态变量: MAX_VALUE和MIN_VALUE,最大最小值。
3)静态方法:valueOf(…),创建一个Integer类对象。
4)静态方法:parseInt(String s) 和 成员方法: toString()完成Integer类对象和字符串对象的相互转化。
5)重写Number抽象类的方法…很多。
6)自动装箱和自动拆箱:这是编译器的优化,别搞混。
7)cache[]数组,缓存问题,仅对整型、char类型所对应的包装类。 -
String类: 不可变字符序列。
1)String类创建实例的方法:直接或使用构造器。
2)字符串拼接用String类对象容易造成内存泄漏。
3)String常用成员方法:charAt(int index)、 length()、equals(Object anObject)、 equalsIgnoreCase(String anotherString)、 indexOf(String str)、substring(int beginIndex,int endIndex)。
4)字符串常量池:字符串的存储区。
待进一步学习。
来源:CSDN
作者:咱能给力点吗
链接:https://blog.csdn.net/weixin_44170240/article/details/104224205