随笔分类 -  实习

摘要:void HeapSort(int arr[],int start,int end) { int dad = start; int son = dad * 2 + 1; while(son<=end) { if( son+1<=end && arr[son]< arr[son+1]) son++; 阅读全文
posted @ 2022-09-20 20:15 小申同学 阅读(23) 评论(0) 推荐(0)
摘要:RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将 RocketMQ 捐献给了 Apache,当然了今天的主角还是讲 RabbitMQ。消息中间件最主要的作用是解耦,中间件最标准的 阅读全文
posted @ 2022-09-03 22:43 小申同学 阅读(30) 评论(0) 推荐(0)
摘要:锁! 1、Java中的乐观锁: CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行CAS操作 2悲观锁是一种悲观思想,即认为写多读少,遇到并发写的可能性高,每次去拿数据的时候都认为其他线程会修改,所以每次读写数据都会认为 阅读全文
posted @ 2022-09-02 17:17 小申同学 阅读(38) 评论(0) 推荐(0)
摘要:中间件屏蔽 操作系统复杂性 开发人员 要熟悉TCP IP 底层协议。 负载均衡 集群, runtime getime processor 线程 休眠用wait wait object sleep 是 thread 锁的释放 sleep方法必须要捕获异常,而wait方法不需要捕获异常。 sleep方法 阅读全文
posted @ 2022-08-29 19:28 小申同学 阅读(19) 评论(0) 推荐(0)
摘要:TCP建立连接时通过三次握手可以有效地避免历史错误连接信息的建立,减少通信双方不必要的资源消耗,三次握手能够帮助通信双方获取初始化序列号,它们能够保证数据包传输的不重不丢,还能保证它们的传输顺序,不会因为网络传输的问题发生混乱,到不使用「两次握手」和「四次握手」的原因已经非常清楚了: 「两次握手」: 阅读全文
posted @ 2022-08-27 12:09 小申同学 阅读(42) 评论(0) 推荐(0)
摘要:,说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL 存储引擎有 MyISAM 、InnoDB、Memory,其中 InnoDB 是在 MySQL 5.5 之后成为默认的存储引擎。 按「数据结构」分类:B+tree索引、Hash索引、Full-text索 阅读全文
posted @ 2022-08-26 12:51 小申同学 阅读(105) 评论(0) 推荐(0)
摘要:http 优化 相同请求的,得到相同结果资源。缓存土地。 CSS Image Sprites 合并请求 图片合并。 窃听 篡改 冒充 信息 校验 证书 慢启动的算法记住一个规则就行:当发送方每收到一个 ACK,拥塞窗口 cwnd 的大小就会加 1。 当 cwnd < ssthresh 时,使用慢启动 阅读全文
posted @ 2022-08-24 16:18 小申同学 阅读(27) 评论(0) 推荐(0)
摘要:http 双刃剑 无状态明文传输 ,不安全。 好处 服务器的开销比较小。不需要记忆http状态 。坏处 购物 下单支付每一次都要验证信息。 cookie解决。 Cookie 通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。 明文意味着在传输过程中的信息,是可方便阅读的,通过浏览器的 阅读全文
posted @ 2022-08-23 21:21 小申同学 阅读(32) 评论(0) 推荐(0)
摘要:不同设备,主机间的通信需要用到网络通信协议。 一个设备进程通信 用管道,消息队列, 内核中的消息链表。共享内存。用户态 共享空间快、信号量 互斥和同步。 信号 异常Linux ctrl+c 终止信号。 一、应用层 比如 HTTP、FTP、Telnet、DNS、SMTP等。 应用层只需要专注于为用户提 阅读全文
posted @ 2022-08-22 12:49 小申同学 阅读(28) 评论(0) 推荐(0)
摘要:#循环扫描算法这个过程是很快的,并且返回中途不处理任何请求,该算法的特点,就是磁道只响应一个方向上的请求。 那针对 SCAN 算法的优化则叫 LOOK 算法,它的工作方式,磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中会响应请求。 反向 阅读全文
posted @ 2022-08-22 10:02 小申同学 阅读(44) 评论(0) 推荐(0)
摘要:进程都希望自己能够占用 CPU 进行工作,那么这涉及到前面说过的进程上下文切换。 一旦操作系统把进程切换到运行状态,也就意味着该进程占用着 CPU 在执行,但是当操作系统把进程切换到其他状态时,那就不能在 CPU 中执行了,于是操作系统会选择下一个要运行的进程。 选择一个进程运行这一功能是在操作系统 阅读全文
posted @ 2022-08-21 21:47 小申同学 阅读(59) 评论(0) 推荐(0)
摘要:内核的缘由 计算机是由各种外部硬件设备组成的,比如内存、cpu、硬盘等,如果每个应用都要和这些硬件设备对接通信协议,那这样太累了,所以这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。 现代操作系统,内核一般会提供 4 个基本能力: 管理进程 阅读全文
posted @ 2022-08-21 19:12 小申同学 阅读(61) 评论(0) 推荐(0)
摘要:CPU 的高速缓存,通常可以分为 L1、L2、L3 这样的三层高速缓存,也称为一级缓存、二级缓存、三级缓存。 在 Linux 系统,我们可以通过这条命令,查看 CPU 里的 L1 Cache 「数据」缓存的容量大小: $ cat /sys/devices/system/cpu/cpu0/cache/ 阅读全文
posted @ 2022-08-21 16:20 小申同学 阅读(142) 评论(0) 推荐(0)
摘要:数据和指令是分开区域存放的,存放指令区域的地方称为「正文段」 编译器会把 a = 1 + 2 翻译成 4 条指令,存放到正文段中。如图,这 4 条指令被存放到了 0x200 ~ 0x20c 的区域中: 0x200 的内容是 load 指令将 0x100 地址中的数据 1 装入到寄存器 R0; 0x2 阅读全文
posted @ 2022-08-21 10:39 小申同学 阅读(75) 评论(0) 推荐(0)