1.JDK的安装
(1)下载、安装
(2)配置环境变量:
a)path配置: 可以直接放入jdk的bin目录 也可以直接引用JAVA_HOME中的路径 如:.;%JAVA_HOME%\bin;
b) JAVA_HOME:JDK的安装目录
c)classpath: 5.0以后的版本可以不配置
2.JDK、JRE和JVM三者关系
(1)JAVA程序运行环境:
a) 编译javac:把java源文件编译成class字节码文件
b) 运行java:运行.class文件
(2)标识符(给类、文件、变量起名)
3.一些基本数据类型、变量等
(1)变量:
(局部变量 从属于方法或语句块 使用之前,必须手动初始化、成员变量(实例变量field)使用之前可以手动初始化也可以让系统自动初始化 从属于对象、静态变量(类变量)(初始化可以使用静态块) 系统会自动初始化 从属于类)
(2)基本数据类型:
a)数字:
整数:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
byte(1字节)、short(2字节)、int(4字节)可以自动装换为int类型
浮点数:float(4字节)、double(8字节)
b)字符:char(2字节)
c)布尔:boolean(1位)
(3)引用类型(4个字节 本质就是引用了对中的一块 默认为4个字节)
a) 数组、对象、接口
(4)表达式:
a)类型的自动提升
如果有long,结果就是long
如果头double,结果就是double
b)强制转型
(5)运算符:
a)算术运算符
b)赋值运算符
c)关系运算符
d)逻辑运算 && || !
e)位运算符 & | <<(左移一位相当于乘以2) >>(右移一位相当于除以2)
f)扩展运算符 += —= *= /=
g)三目运算符 (布尔表达式)?A:B
(6)控制语句:
a)顺序结构
b)选择结构
If
If else
If else if…else
c)Switch 多选择结构 表达式:int或char/short/byte可以转为int类型的类型
d)循环结构 While、For、Do while、Break;强制终止整个循环、Continue:结束本次循环,继续下一次的循环
3.面向对象基础
(1)对象的进化史
a) 基本数据类型阶段 数据少 无数据管理时代
b) 数组 数据多了,将同类型的数据放到一起
c) 结构体
d) 对象
(2)对象和类:
对象是具体的,类是抽象的。类也是一个模板,通过类这个模板也可以new 对象
a)定义类
属性 建议使用private 修饰符 添加相应的getter/setter方法
b)构造方法
c)方法的重载:两同(同一个类、同一个方法名)三不同(参数列表不同:类型、个数、顺序)
d)方法的重写:函数名必须一致 子类重写父类中的方法
方法名保持一致
子类权限修饰符可以大于等于父类的
子类的返回值类型小于等于父类的类型
(3)一些关键的修饰词
This
a)普通方法中,调用本方法的对象
b)构造方法中,正要初始化的对象
c)还可以用来,调用其他的构造方法
Super指向直接父类对象的引用
Static用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类通过类名即可调用,实际存储于方法区中
Package
Import导入外部的类
Import static 导入类的静态属性
Final
修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)
修饰方法:不能被重写
修饰类:不能被继承
(4)面向对象的三大特征:
a)封装
通过 private 、default、protected、public关键词实现属性或方法的封装
高内聚 低耦合
b)继承
代码重用
通过继承实现对现实世界更加准确的建模
c)多态
三个必要条件:继承、方法的重写、父类引用指向子类对象
(5)抽象类
a) 包含抽象方法的类,一定是抽象类 (抽象方法必须被子类重写)
b)抽象类不能被new
c)抽象类可以包含:普通方法、成员变量、构造方法
(4)接口
a)interface
b)类实现接口:implements 可以实现多个接口
c)接口可以多继承
d)接口定义的一组规范 实现显示世界中这样的逻辑:如果你是。。。则必须能。
(5)内存机制:
c)栈
存放局部变量
不可以被多个线程共享
系统自动分配,空间连续,速度快
b)堆
存放对象
可以被多个线程共享
空间不连续,速度慢。但是灵活
c)方法区:
存放类的信息:代码、静态变量、字符串常量
可以被多个线程共享
空间不连续,速度慢。但是灵活
d)垃圾回收器(GC)
e)Object类是所有类的根基类
(6)递归算法
递归头:什么时候不掉用自己
递归体:什么时候调用自己
4.随手记