汇编期末复习
第一章机器语言与汇编语言的基础冯·诺依曼体系:该体系的核心思想是将程序当作数据存储起来,然后由计算机自动运行。 机器语言:它是机器指令的集合,而机器指令本质上就是一台机器可以正确执行的二进制码或电平脉冲命令。 汇编语言的产生:因为机器指令难以记忆,所以产生了汇编语言。汇编指令是机器指令的助记符,书写格式更接近人类语言,便于阅读和记忆。程序员编写的汇编指令需要通过“编译器”转换成机器码才能被计算机执行。 汇编语言的组成:它的核心是决定了语言特性的汇编指令,此外还包含由编译器执行的伪指令,以及供编译器识别的其他符号。 指令、数据与存储器(内存)指令与数据的统一性:指令和数据仅仅是应用上的概念区分。在内存或磁盘中,它们没有任何物理区别,全都是二进制信息。 存储器的重要性:CPU要工作,就必须从存储器(内存)中获取指令和数据。磁盘中的程序或数据如果不读入内存,CPU是无法直接使用的。 存储单元与容量:存储器被划分为若干个从0开始顺序编号的存储单元。一个存储单元可以存储8个bit(即8位二进制数,记作1B)。微机中常用的容量计量单位换算为:1KB=1024B,1MB=1...
黑马点评03
黑马点评03:优惠劵秒杀全局唯一ID秒杀业务中,数据库自增 ID 不够用: *多台服务器同时处理请求 → 每台数据库自增 ID 可能冲突* *数据量极大(千万、亿级)→ 自增 ID 容易暴露业务量* *分库分表后,单表自增 ID 无法保证全局不重复* 基于 Redis 的全局唯一 ID 生成策略:采用 时间戳差值(高位) + 自增序列(低位) 的方式,通过 Redis 的 INCR 命令每天重置序列号,保证 ID 在分布式环境下唯一且趋势递增。相比数据库自增,性能更高、支持分库分表;相比雪花算法,实现更简单、无时钟回拨风险(依赖 Redis 时间)。 123456789101112131415161718192021// 配置常量private static final long START_TIMESTAMP = 1672531200L; // 2025-01-01private static final int COUNT_BITS = 32; // 序列号占用32位public long nextId(String keyPrefix) { // 1....
黑马点评02
黑马点评02:商户查询缓存商户查询缓存流程 缓存更新策略先更新数据库,再删除缓存1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556@Servicepublic class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements IShopService { @Autowired private StringRedisTemplate redisTemplate; // 查询单个店铺(带缓存) @Override public Result queryById(Long id) { String key = CACHE_SHOP_KEY + id; // 1. 从缓存查询 String shopJson = redisTe...
黑马点评01
黑马点评01:短信登陆第一版用Session实现发送验证码流程 接收手机号,进行基本校验(非空、格式)。 调用短信服务商API发送验证码 关键步骤:将验证码存入 HttpSession。 Key:一个固定字符串或与手机号关联的Key,例如 “code” 或 “login:code:”+phone。 Value:验证码本身。 登录注册流程 校验登陆状态 为了保护需要登录才能访问的接口,项目通过 Spring MVC 的拦截器(Interceptor)来实现状态校验和信息共享: 拦截请求: 拦截器会拦截客户端的请求,并尝试从 HttpSession 中获取 "user" 属性。 状态判断: 如果没有获取到用户信息,说明未登录,直接拦截请求并返回 401 状态码。 如果获取到了用户信息,说明已登录。 保存至 ThreadLocal: 拦截器将获取到的 UserDTO 保存到 ThreadLocal(项目中封装为 UserHolder 工具类)中。这一步非常关键,它实现了线程隔离,使得在后续的 Controller、Service 层中,可以随时随地通过 Use...
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...
