最合适学习的时间点有两个,一个是1年前,一个是现在。
[1] Java综述:
1. 先编译(成.class)后解释(由不同系统下的jvm)
2. Jdk:java sdk和jvm
3. Oo:java纯面向对象,不允许全局的数据和函数,所有代码都在类的内部
4. 环境:javac和java指令,为项目添加项目依赖,自定义类库,类库
[2] 基本语法:
1. 常量:final--c++:const,只能初始化不许赋值
2. 变量:
3. 静态:static—一致,静态变量和类相关(和方法一起存在方法区),和实例无关
4. char:占16位,中文字也是用一个char来表示
5. boolean:--bool,不能与整数互换
6. 运算法:正负数符号+/- --
7. 异或位运算:公式1异或两次相同的数,值不变;应用:两数交换
[3] 流程控制:
1. if:一致,
2. switch:一致
3. 循环:foreach,类似脚本语言中的遍历数组
[4] Eclipse:
1. 导入和导出
[5] OO:
1. 类:--声明格式不同public class Fruit extends Plants implements []{}
2. 对类访问控制:类可以访问包中其他类,还可以访问其他包中public类 – 只用对类成员的访问控制
3. .java:一个源文件里只能有一个public类(且要同名) -- 无关
4. 成员:更多的修饰符,可以对非静态成员赋初值 – 除了静态其他都只能在构造函数里初始化
5. New:给一个引用赋值 --- 返回一个指针
6. 释放:垃圾回收机制 –手动delete或者利用智能指针计数
7. 包:包含多个类,访问控制以包为单位—namespace
8. Import:import 包.类|* 直接导入类的源文件 -- #include ”*.h”导入类头文件申明
9. 继承:extends 父类只允许单继承,只继承能被使用的--- :public(等)父类名,拥有父类的完整内存
10. This:自身的引用– 指向自己的指针
11. Super:显示调用父类成员– 利用作用域符号::,如父类::成员
12. 多态:重载,参数不同的同名函数 —和c++一致
13. 覆盖:产生了多态,所有函数都在方法表中 – virtual才产生多态,只有虚函数在虚表中
14. 参数是基类时多态:java是引用赋值,自然多态– 必须是基类指针或者引用类型
15. 子类到父类转换:Base b=new derived d
1变量不会被覆盖只是隐藏了2new子类时生成了子类堆区和方法区 3(引用)赋值后发现原来是一个父类实例,堆区里原来隐藏的回来了,但是方法区里已经被覆盖回不来了(子类特有的方法也没有使用了)
16. 抽象类:abstractclass 类名 ,不能实例化– 具有纯虚函数virtual void fun()=0的类
17. 抽象方法:没有实现的函数 – 纯虚函数
18. final类:不能有子类,不能被动态修改—无
19. final方法:不能被改动的方法,无法被子类重写,private方法自动成为final – 无
20. 接口:格式 publicinterface 接口名 extends 父接口 -- 类似一个虚基类
21. 接口成员:必须是public
22. 实现接口:类 implements接口1,接口2 -- 多继承,同名函数只要是实现一个