操作系统-1.4OS体系结构
大内核&微内核内核最核心部分:时钟管理、中断处理、原语 两种内核区别:内核的划分不同 分层结构 每层可调用更低一层 模块化 优点:可使多个模块同时开发,效率高,适应性强 外核 功能:给用户分配未经抽象的硬件资源
操作系统-1.3系统调用
系统调用&库函数的区别系统调用 比 高级语言库函数 更底层 系统调用必要性实现对共享资源的互斥访问:操作系统对共享资源统一管理,向上提供”系统调用“ 系统调用过程应用程序——传参指令——(用户态)CPU 应用程序——陷入指令——(用户态)CPU内中断 系统调用入口程序——指令——(核心态)CPU 系统调用的处理程序——指令——(核心态)CPU
地坛,我的乌托邦
小学,在语文课本上第一次读到史铁生的《秋天的怀念》,他在意气风发的21岁失去双腿,从此变得喜怒无常,对母亲恶语相向。“她出去了,就再也没回来”,沉重的故事我总是有意地快速翻过,不想被它反复刺痛。 高一,我第一次读了史铁生的《我与地坛》,称之为神作绝不为过。其中最喜欢的一篇是《好运设计》,那是作者为自己设计的充满好运的来世。“宇宙在走向热寂。但此刻宇宙正在旋转,正在飞驰,正在高歌狂舞,正借助了星汉迢迢,借助了光阴漫漫,享受着它的路途,享受着坍塌后不死的沉吟,享受着爆炸后辉煌的咏叹,享受着追寻与等待,这才是幸运,这才是真正的幸运,恰恰死亡之前这波澜壮阔的挥洒,这精彩纷呈的燃烧才是幸运者得天独厚的机会。”我震惊于人类可以写出这般伟大通透的文字,仿佛了悟了命运,参透了生死。“上帝爱我!—我们的设计只剩这一句话了,也许从来就只有这一句话吧。”我笔记本的封面依然写着这句话。在我高中那贫瘠的精神世界里,可谓带来一场盛大的甘雨。 后来有一天,突然的噩耗有如晴天霹雳将生死第一次摆在我眼前。除了睡觉做题我找不到任何可以摆脱这痛苦的办法,终于理解《病隙碎笔》中那句“其实每时每刻我们都是幸运的,因为任何...
java-4.泛型
什么是泛型一种类型模板 允许写一个类但不把数据类型写死,而是用一个占位符<T>代替。 泛型的好处 类型安全。源头上杜绝了类型放错的可能 方便。不用手动强转类型 类型擦除 Java语言的泛型实现方式是——擦拭法 Java 的泛型只存在于编译期,在运行期(JVM执行时)会被全部“擦掉”,替换成 Object 和强制类型转换 所有工作由编译器来做,虚拟机一无所知! 擦拭带来的局限 运行时,所有泛型箱子都“长得一样”。 不能用 instanceof 检查泛型标签(instanceof 是在运行时检查的) 不能用基本类 int, double,要用 Integer、Double(Object才可以被安全擦拭) 不能 new T()
java-3.反射-动态代理
什么是反射一种java的基础API,通过实例动态地获取和操作一个类/对象的所有内部信息的能力,甚至可无视 private限制 反射的好处极大的灵活性、通用性 可以编写“通用代码”,在运行时再动态地决定加载谁、执行谁 反射应用场景 ⭐框架: Spring、MyBatis 等框架用它来实现 IoC/DI (依赖注入) 和 AOP (动态代理) 动态加载: 比如 Class.forName() 根据配置文件里的一个类名字符串,在运行时加载该类并创建实例(如 JDBC 驱动)。 反射核心Class实例:JVM为加载的每个类/接口都创建了一个唯一的 Class对象,它储存了该类型的所有元数据(名字、方法、字段等) 访问字段通过反射可以获取、设置private类型实例的字段值,但首先要调用 setAccessible(true) 反射是一种非常规手段 动态代理两种方式 JDK 动态代理:JDK提供的动态创建接口对象的方式 CGLIB 动态代理(第三方库,Spring 框架大量使用) 区别 对比维度 JDK 动态代理 CGLIB 动态代理 实现...
java-2.程序基础
Java数据类型基本数据类型 数值:byte1字节 short1字节 int4字节 long8字节 浮点:float4字节 double8字节 字符:char2字节,存放单个字符a 布尔:boolean1字节,true/false,不能用0/1代替 自动类型转换 精度小的类型自动转换为精度大的类型 多种数据混合计算:所有数据转换成容量最大的数据类型,再计算 byte和 char之间不会自动转换,但可以计算,计算时转换为int类型 boolean不参与转换 1234567891011n1 = 10;float d1 = n1 + 1.1; // ❌ n1 + 1.1为double类型,赋给d1产生精度损失double d1 = n1 + 1.1; // ✔float d1 = n1 + 1.1F; // ✔int n2 = 1.1; // ❌double n3 = n1; // ✔ 自动转换byte b1 = 1;byte b2 = 2;byte b3 = b1 + b2; // ❌ b1 + b2会转换成int类型,不能再赋给b3 强制转换123by...
java-1.背景
The background of JAVA 我亦无他,唯手熟尔 Java诞生 Sun公司 1995年发布第一版 目前属于甲骨文公司 企业主要使用8、11版本 Java特性 面向对象 健壮的 强类型机制、异常处理、垃圾的自动收集 跨平台 编译的.class文件可以在win/linux多个系统上运行 解释性语言 需要解释器;编译性语言(如C)可直接执行 若要输出中文 -> 将属性-字符编码设为GDK 严格区分大小写 一个源文件至多一个public类,其他类个数不限制;每一个类都对应一个.class 源文件public类和文件名必须匹配 转义字符 \n 换行符 \\ 输出 \ \" 输出 " \\\\ 输出 \\ \r 相当于回车 1System.out.println("北京\t上海\t广州\nA\tB\tC"); 注释 单行注释 多行注释 文档注释:注释内容可以被JDK提供工具javadoc解析,生成说明文档 123456/***@author 巴巴利波*@version 1.0*//...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
算法-5.区间和
kamacoder 58 题目描述给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 输入描述第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间下标:a,b (b > = a),直至文件结束。 输出描述输出每个指定区间内元素的总和。 输入示例123456785123450 11 3 输出示例1239 提示信息数据范围:0 < n <= 100000 思路前缀和 为降低时间复杂度,在读入数组时直接保存前缀和,获得区间a、b后直接输出 vec[b]-vec[a-1] 1234567891011121314151617181920212223242526272829303132import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(Syste...
算法-4.长度最小的子数组
leetcode 209 209.长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。 提示: 1 <= target <= 10^9 1 <= nums.length <= 10^5 1 <= nums[i] <= 10^5 思路💡滑动窗口 12345678910111213141516class Solution { // 滑动窗口 public int minSubArrayLen(int target, int[] nums) { int i = 0; int sum = 0; int result = Intege...



