数据结构与算法
数据结构与算法0725 一 队列、链表1.1 线性结构和非线性结构
线性结构
特点:一对一
顺序结构存储(数组)和链式存储结构(链表)
线性结构常见的有:数组、队列、链表和栈
非线性结构:
二维数组,多维数组,广义表,树结构,图结构
1.2 稀疏数组和队列
稀疏数组定义:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。
稀疏数组的处理方法:
记录数组一共有几行几列,有多少个不同的值(第一个数据)
把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模
稀疏数组和二维数组的转换练习:day0725/sparseArray.java
队列定义:队列是一个有序列表,可以用数组或是链表来实现。
特点:先进先出,三个参数 maxSize,front,rear
因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变
front指向队列第一个元素的前一位,rear指向队列的最后一位
当front== ...
多线程与反射
多线程与反射A 多线程一 线程1.1 程序、进程、线程
线程:独立执行的路径
线程会带来额外的开销,如CPU调度的时间,并发控制开销
线程开启了没有马上执行,由CPU进行调度
注:很多的多线程是模的,真正的多线程用的是多个CPU,很多都是切换的比较快看起来像多线程
1.2 线程创建
继承Thread类
自定义线程类继承Thread
重写run方法
调用start方法
1234567891011public class TestThread extends Thread{ public void run(){ sout("new Thread"); } psvm(){ TestThread test = new TestThread(); test.start(); }}
实现Runnable接口
定义类实现Runnable接口
重写run方法
执行线程需要丢入的runnable接口实现类,调用start方法
龟兔赛跑: ...
javase
JAVASE_STUDY0703 一 基础1.1 JDK JRE JVM关系
(jdk安装环境不带中文和空格)
1.2 JAVA编译过程源程序(.java) -> 编译器 -> java字节码文件(.class) -> JVM运行
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
cmd
D:/>javac HelloWorld.java <- 编译生成.class文件
D:/>java HelloWorld <- 运行
1.3 关键字、标识符标识符:26个字母、10个数字、美元符号$和下划线_ (不以数字开头,不能是关键字)
命名规则:
类名:首字母大写,后面每个单词首字母大写(HelloWorld)
变量名:首字母小写,后面每个字母首字母大写(helloWorld)
方法名:同变量名 ...