一、Java基础
1、Java概述
Java语言特点:
简单性、解释性、面向对象、高性能、分布式处理
多线程、健壮性、动态、结构中立、安全性、开源、跨平台
jre: Java runtime Environment java运行时环境
JDK:Java Development kit java开发工具包
JVM: Java Virtual Machine 不同平台虚拟机实现不同
2、Java基础语法
关键字: 全小写 --请看关于关键字详解
标识符: 命名规则
★★ 注释: 注释是一个程序员必须要具有的良好的编程习惯,
先写思想,再写代码,因为代码只是思想的一种体现形式,
可能还有很多更好的其他解法,这样就能方便以后重构
//将项目需求先写在注释上;
//将自己的解题思路分步骤整理在注释部分;
//将调试的bug及解决方法写在注释部分;
//将重要代码、核心代码功能注释出来;
常量: 字面值常量:
自定义常量:
进制: 原码、反码、补码; 进制转换
变量:
数据类型:
基本数据类型: byte, short, int, long, float, double
char, boolean,
引用数据类型: 类, 接口, 数组
String类型是引用类型,然而这个引用类型比较特殊,
它指向一个字符串,这个字符串的值不能够改变。
强制类型转换:(如果不损失精度,编译器可以帮助强转,)
(如果损失精度,必须显示强转)
站在编译器的角度思考,能理解很多问题的根源
运算符: 算术、赋值、比较、逻辑、位、三目运算符
流程控制: 顺序结构、选择结构(case穿透)、循环结构
break、continue
当不明确循环次数时,使用while循环
方法: 不可以嵌套
数组: 数组别名问题
栈存储局部变量
堆存储新建对象
二、面向对象
1、三大特性:
封装:
访问控制: public:
protected:所有子类、或同包的类可以访问
private:
package:不写修饰符,默认包可访问
继承:在执行子类构造函数之前会默认执行父类的构造函数
用super()显示调用父类的构造函数
super关键字可以在任意非静态方法中调用父类属性
多态:
前提条件: 要有继承关系、
要有方法覆盖、
要有父类引用指向子类对象
覆盖 子类覆盖父类方法, 运行时多态
重载 同一类中参数不同的同名方法, 编译时多态
多态中成员访问的特点:成员变量、成员方法
理解在内存中的存放状态
instanceOf 向下转型是判断某个对象是否属于某个类
2、抽象类: 抽象方法不能有方法体
3、接口: 可以理解为技能类,或功能类,谁都可以实现
接口中所有的方法都是抽象方法
接口可以多继承
接口中只可以出现命名常量和方法声明
局部变量不初始化,编译报错
成员变量不初始化,初始为0
理解内存中栈区、堆区的工作原理就能理解所有问题的本质
4、变量的作用域:
5、对象的生命周期:
6、成员变量的隐藏性:局部变量与成员变量同名时,成员变量在该方法体无效
this关键字
7、Package属性:将相关的类或接口分组,包名表示功能或作用
解决命名冲突的问题
属性的包可见特性,
8、final关键字: 常量 最终
若修饰成员变量,只能被赋值一次,不能再被改变
若修饰类,则不能被继承
若修饰方法,方法不能被覆盖
9、static关键字:
静态的成员变量、静态的成员方法,成为类的成员变量,类的方法
在内存中只有一份,所有实例化对象共享
10、命名常量: 同时由 static , final修饰, 标识符全大写
11、构造方法:
12、值传递和引用传递:
深刻理解内存中堆、栈的工作原理