汇编期末复习
第一章机器语言与汇编语言的基础冯·诺依曼体系:该体系的核心思想是将程序当作数据存储起来,然后由计算机自动运行。 机器语言:它是机器指令的集合,而机器指令本质上就是一台机器可以正确执行的二进制码或电平脉冲命令。 汇编语言的产生:因为机器指令难以记忆,所以产生了汇编语言。汇编指令是机器指令的助记符,书写格式更接近人类语言,便于阅读和记忆。程序员编写的汇编指令需要通过“编译器”转换成机器码才能被计算机执行。 汇编语言的组成:它的核心是决定了语言特性的汇编指令,此外还包含由编译器执行的伪指令,以及供编译器识别的其他符号。 指令、数据与存储器(内存)指令与数据的统一性:指令和数据仅仅是应用上的概念区分。在内存或磁盘中,它们没有任何物理区别,全都是二进制信息。 存储器的重要性:CPU要工作,就必须从存储器(内存)中获取指令和数据。磁盘中的程序或数据如果不读入内存,CPU是无法直接使用的。 存储单元与容量:存储器被划分为若干个从0开始顺序编号的存储单元。一个存储单元可以存储8个bit(即8位二进制数,记作1B)。微机中常用的容量计量单位换算为:1KB=1024B,1MB=1...
Spring
Spring是什么Spring 是一个轻量级 Java 开发框架,核心思想是 IoC 和 AOP。 IoC 用来管理对象的创建和依赖关系,降低耦合;AOP 用来把事务、日志、权限这些公共逻辑从业务代码中抽离出来。 在此基础上,Spring 又提供了 MVC、事务管理、整合数据库等能力,所以它成了 Java 后端开发的核心框架。 没有 Spring: 12UserService userService = new UserService();OrderService orderService = new OrderService(userService); 有 Spring: 12345678910@Servicepublic class UserService {}@Servicepublic class OrderService { @Autowired private UserService userService;} 区别: 以前你自己创建对象 现在 Spring 帮你创建对象 以前你自己维护依赖关系 现在 Spri...
多线程基础
进程和线程进程是程序执行的实体,每一个进程都是一个应用程序,都有自己的内存空间,CPU一个核心同时只能处理一件事情,当出现多个进程需要同时运行时,CPU一般通过时间片轮转调度算法,来实现多个进程的同时运行。 线程像进程里的执行路线 同一个进程里可以有多个线程 这些线程共享这个进程的内存和大部分资源 用来并发执行任务 维度 进程 (Process) 线程 (Thread) 本质 资源分配的基本单位 CPU 调度(执行)的基本单位 资源拥有 拥有独立的内存地址空间(Code, Data, Heap, Stack 等) 共享所属进程的资源,仅拥有少量的私有资源(如 PC, 栈, 寄存器) 创建/切换开销 大。需要分配内存空间、初始化数据段等 小。直接共享进程资源,上下文切换比进程快得多 通信方式 复杂。需通过 IPC(管道、信号量、Socket、共享内存等) 简单。通过读写同一进程内的全局变量或堆内存即可通信 健壮性 高。一个进程崩溃通常不会影响其他进程 低。一个线程崩溃可能导致整个进程内的所有线程一起挂掉 线程的创建和启动通过创建Thre...
集合
集合体系结构 Iterable // 可迭代接口,表示可以使用迭代器或增强 for 遍历 └── Collection // 单列集合的根接口,存一个一个的元素 ├── List // 有序、可重复、有索引 │ ├── ArrayList // 底层是动态数组,查询快,增删慢 │ ├── LinkedList // 底层是双向链表,增删快,查询慢 │ └── Vector // 老版本动态数组,线程安全,较少使用 ├── Set // 无索引、元素不可重复 │ ├── HashSet // 基于哈希表,无序,去重常用...
内部类和函数式编程
内部类内部类就是类中再套一个类 eg: 1234class Outer { class Inner { }} 作用: 让一个类和另一个类关系更紧密 内部类可以方便访问外部类的成员 有些场景下写起来更方便,比如事件处理、临时小对象 Java 里常见有 4 种: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类就是:像成员变量一样,直接写在类里面,不加 static。 123456789class Outer { private String name = "Outer"; class Inner { public void show() { System.out.println(name); } }} 这里 Inner 可以直接访问 Outer 的私有成员 name。 创建对象成员内部类对象不能直接 new,一般要先有外部类对象: 123Outer outer =...
