自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 算法题:求所需的最小的书包数量(拓展拓展再拓展~)

现在有一种书包,这种书包只有两个书槽(即最多只能放下两本书。),并且一个这种书包只能装下N千克的书。现在有一个数组,数组元素是每本书的重量(千克)。问:完全装下这堆书,需要多少个书包?

2023-12-02 00:05:26 105

原创 求无序集合的并集、交集、子集(大厂面试题)

前两天面某大厂,有这么一条考数据结构的题,属实把我难倒了,要考虑的点实在太多了。题目基本如下:有n个集合,每个集合里面存放无规律数字,每个集合可以认为是从一个文件里面读出来的数字,自己考虑用什么数据结构来存。(一个集合里面是不允许有重复元素的) 求两个集合的并集、交集、子集。(子集即两个集合的交集的一部分,例如sub(a&b,0)就是求a、b两个集合的交集的子集,子集大小为10) 求多个集合的并集、交集、子集。 求多个集合进行并集、交集混合运算后的子集。(例如,sub((a|b|c|.

2021-11-06 18:51:33 1430 3

原创 KMP(java实现)

public static int KMP(String s1,String s2){ if(s1.length()<s2.length()||null==s2||s2.length()==0) return -1; //求模式串的next数组 int[] next=new int[s2.length()]; next[0] = 0; int j = 0;int i = 1; while(i&lt...

2021-08-23 16:23:05 145

原创 springboot的springmvc请求映射原理

①当容器建立完成后,spring扫描@Controller的方法,把每一个方法作为一个handler(Bean)注入到容器里面,并且根据@RequestMapping里面的那段url为该Bean添加一个alias别名。②当HandlerMapping开始自动配置时,它就会去容器里面找handler,并且根据handler的alias,来建立一个url->handler的映射。③当请求过来的时候,DispatcherServlet就会到HandlerMapping里面找那个映射,就找到了可以处理

2021-07-23 12:02:03 260 1

原创 CAP定理之我见

前导知识:1、一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)2、可用性(Availability)在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)3、分区容错性(Partition tolerance)大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是,区间通信可能...

2021-07-13 22:14:51 103

原创 HTTP请求头和响应头字段

首先请求报文包括请求行、请求头、请求体请求行:请求方法 路径 HTTP版本不要混淆请求头Content-Type : 请求的与响应体对应的MIME信息,就是我从服务器里面想获取什么类型的信息。​ 如果想获取json :Content-Type:application/json​ 如果想获取html : Content-Type : text/html​ 如果想获取jpg : Content-Type:image/jpgCookie : Cookie

2021-03-11 09:33:55 258

转载 操作系统实验报告-信号量的实现和应用(转载)

https://www.cnblogs.com/tradoff/p/5754583.html

2020-12-18 08:42:09 558

原创 哈工大操作系统实验四——基于内核栈切换的进程切换(极其详细)

目录总览第一部分、switch_to相关一、改写switch_to二、配合switch_to修改的补充2.1 开放switch_to2.2改写task_struct2.3 ESP0和KERNEL_STACK 以及一些参数的设置2.4 全局变量tss的声明2.5 在sche.c声明switch_to三、在schedule()调用switch_to四、PCB结构如下第二部分、fork()相关一、为什么要修改fork()二、内核栈视角下的五段论2.1中断进入阶段(第一阶段)2.2 调用schedule引起PCB切

2020-12-12 23:59:22 2787 5

原创 哈工大操作系统实验(二)操作系统调用——极其通俗易懂

目录前言零、总览框图一、编写应用程序二、追溯include/unistd.h的_syscall1(type,name,atype,a)三、研究0x80中断四、追溯system_call五、追溯sys_call_table数组六、编写who.c七、修改Makefile八、开机前言本文采用自顶向下的方式完成实验,也即从自己编写的用户应用程序开始一步一步完成最终的功能,这样可以更好地把握主线。零、总览框图一、编写应用程序该应用程序iam.c和whoami.c将会调用iam()和whoami()这两个系

2020-12-07 01:00:15 1995 2

原创 汇编语言(王爽)实验十(3)

答案在最后面assume cs:codedata segment db 10 dup(0)data endscode segment start:mov ax,1266 mov bx,data mov ds,bx mov si,0 call dtoc mov dh,8 mov dl,3 mov cl,2 c

2020-11-09 21:34:45 233

原创 ServerSocket源码调试分析——java学习总结(12)

从书上找下来的一个demo,准备根据这个demo来断点调试学习Socket和ServerSocket源码。1 样例首先看一下HTTPServer里面的service()如下2 ServerSocket的构造方法先看看ServerSocket的构造方法继续跳转到另一个构造方法在执行这个方法体之前,调试界面又跳到成员变量那里去,觉得很奇怪。》》》主调试外》》》哎呀,之前的JVM白学了,复习了一下对象实例化才发现,原来在构造方法执行前,需要先初始化成员变量。这里粘一下之前的笔记,看不懂

2020-09-28 22:26:12 404

原创 图解HTTPS原理

2020-08-02 12:12:37 118

原创 HashMap源码分析putTreeVal(红黑树部分)——java学习总结(11)

这里写目录标题①:TreeNode②:putTreeVal()③:comparableClassFor()④:compareComparables()⑤:find()⑥:tieBreakOrder()⑦:balanceInsertion()⑧:treeify()⑨:untreeify①:TreeNodeTreeNode虽然是红黑树结点,但它也有链表结构(继承了LinkeHashMap.Entry,后者继承了HashMap.Node)②:putTreeVal()此博文只介绍putTreeVal(),

2020-06-21 04:20:14 531 1

原创 HashMap源码解读(链表部分和resize)——java学习总结(10)

jdk8以后的resize()做了一个更新,在扩容后不是所有键值对再次重新哈希,重新计算所有键值对位置,而是根据一个设定(也就是每次resize()只扩容一倍,也即capaticy必须是2的倍数),每次扩容后根据hash值的不同,一部分留在原来位置j,另一部分放在扩容后的部分(位置j+oldCap)其中oldCap表示未扩容的容量此处不懂没关系,具体实现请参考下面的源码加深理解...

2020-06-19 00:31:22 222

原创 Integer的缓存问题——java学习总结(9)

一、先考虑一下这个demo的输出是什么public class Main { public static void main(String[] args) { Integer i1 = 100; Integer i2 = 100; Integer i3 = 200; Integer i4 = 200; System.out.println(i1==i2); System.out.println(i3==i4); }}运行结果:tr

2020-06-17 21:15:31 407

原创 DualPivotQuicksort源码解读(附图解)——java学习总结(8)

阅读指南源码在文章最后一部分,加上了本人的理解注释,建议打开两个页面同时对照源码注释和博文(图解)一起阅读零:在看ArrayList的源码时,对它的sort()方法进行了深入研究,最后找到它的最终实现类——DualPivotQuicksort,这类是私有的,防止实例化的,所以在api上找不到它。一、DualPivotQuicksortDualPivotQuickSort汇集了多种排序算法,仅仅称之为DualPivotQuickSort(双轴快速排序)并不合适。这个类包含以下几种排序算法:单轴

2020-06-14 14:10:57 3020 1

原创 (图解)Object的clone()与深浅拷贝——java学习总结(7)

图①:图②:图③:图④:

2020-06-10 00:50:53 121

原创 (图解)Object的wait(),notify(),notifyAll()——java学习总结(6)

一、wait()1、无参情况下:当前线程A释放对象锁,然后进入无限等待状态,直到被其他线程X 里object的notify()或者notifyAll()唤醒。有参情况:wait​(long timeoutMillis),参数为等待的最长时间。当前线程A 释放对象锁,进入等待状态,当计时结束或其他线程X 里object的notify()或者notifyAll()唤醒。2、由于执行wait()时必须释放对象锁,所以wait()必须处于synchronized(obj)下。二、notify()表示持有

2020-06-09 16:19:28 160

原创 flatMap()的深入理解——java学习总结(5)

1、初解flapMap()是流的中间操作,是用于扁平化Stream的操作。JDK API 给出的解析是这样的Returns a stream consisting of the results of replacing each element of this stream with the contents of a mapped stream produced by applying the provided mapping function to each element.翻译过来意思

2020-05-23 18:32:50 1052

原创 Lambda表达式(Java8新特性)——java学习总结(4)

该文从行为参数化和匿名类介绍Lambda表达式为什么产生,再通过图解等方式详细解析Lambda表达式...

2020-05-23 12:15:09 320

原创 Mybatis的@Param注解———java学习总结(3)

@Param注解里的value值是用于标识@Insert或@Select注解里的SQL语句的预定义变量。1、第一种形式:只有一个预定义变量,接口方法参数只有一个@Select("select * from role where id = #{roleId} ")Role findById(@Param("roleId") String roleId);以上的@Param可加可不加,即以下也可达到同样效果。@Select("select * from role where id = #{roleId

2020-05-10 13:28:52 345

原创 String的深入理解——java学习总结(2)

1.String是不可变的字符串,它的底层是一个用final修饰的字符数组;[1]2.String 的两种创建方式(1)创建方式一:String a = "hello";String a = "hello";String b = "hello";System.out.println(a==b);输出为true,原因如下:String维护了一个字符串的常量池[2],当用String...

2020-04-13 12:23:09 329

原创 MethodHandles的机理——java学习总结(1)

MethodHandles在java的作用就相当于函数指针在C++中的作用,允许java动态引用变量、方法,并调用它们。1.与C++函数指针的相似参照一下C++代码void sort(int list[],const int size,int (*compare)(int,int));C++中可以传递一个函数指针(入口)作为参数 而Java中却不行,只能实现一个带有compare()方...

2020-04-01 18:02:03 834

原创 《操作系统实用教程--螺旋方法》习题答案

第一章:入门1.1操作系统是为普通用户和编程人员提供服务,从而使计算机的使用无须处理那些低级的、难以掌控的硬件命令的软件。1.2略1.3(1)操作系统可以把安装在游戏系统上的各种不同游戏所需要的公共模块整合到一起并统一管理(2)操作系统可以处理异常事件。(3)一些重要的操作系统概念已经融入该游戏系统中,例如当游戏被启动时,其部分软件模块被加载进内存,而其他部分可能被预装进ROM。1.4...

2019-12-06 12:57:45 731 2

原创 最通俗易懂的Git教程!!!

一、git的特性1、git是一个版本控制系统,通俗的来说就是此前任一时刻的文件更改都能被查找到,就比如浏览器上面的历史纪录。2、比如,当我写好正确的代码后,发现有些地方可以更改得更具可读性,或者提高运行速度,这个时候我便开始修改,改完这些地方了,但是一运行,发现出bug,这个时候我想找回原来正确的代码的时候,不会用git的人就会用crtl+z返回上一步,但这并不总是奏效,应为有时修改太多,cr...

2019-11-02 22:39:36 268

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除