自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tangyuan_sibal的博客

世界上所有的努力都值得一份期许

  • 博客(115)
  • 资源 (1)
  • 收藏
  • 关注

原创 操作系统----CPU、内存、进程管理

操作系统一、 操作系统的功能1)概念:管理硬件的软件主要的核心就是:CPU管理、内存管理、磁盘管理、文件管理(硬盘管理),还有一个隐藏的进程管理2)操作系统中的库函数和系统调用1>概念:为什么要有库函数和系统调用函数,主要是为了保护操作系统。将内存分为了内核态和用户态,内核态能访问所有内容,包括硬件等,而用户态的权限有限,用户程序一般运行在用户态,当需要时候才会进入内核态。而在用...

2019-08-18 17:03:08 3537 1

原创 Linux三剑客--grep、sed、awk

grep、sed和awk被称为Linux三剑客,他们在linux系统中具有强大的处理文本能力,一般情况下,grep:适合用于单纯的查找对应匹配的文本,也就是我们常用的正则匹配规则。参看文章grep命令详解sed:适合用于编辑匹配到的文本信息,比如当我们文本中只有,当匹配到文本的时候我们可以对输出内容进行添加其余我们想要的内容,也就是说不会改变原本的文本内容,只会改变我们想看到的结果。参考文章:...

2019-08-04 18:51:04 240

转载 进程间的通信---UNIX高级环境编程

原文地址:https://www.jianshu.com/p/4989c35c9475 本文主要说明进程间的几种通信机制,并对比起优缺点与使用场景。I、IPC方式进程间通信(IPC,InterProcess Communication)的主要方式包括:管道、FIFO、消息队列、信号量、共享内存已经socket。1.1 管道这一节中所说的管...

2019-07-28 14:54:50 270

原创 Linux性能优化

导言:在linux系统中检查指标和影响性能的主要分为以下四个大块:1、CPU2、内存3、文件系统和I/O模块4、网络一、CPU1、CPU的性能指标主要由:CPU使用率、上下文切换、平均负载、CPU缓存命中率所影响。2、检查工具:top(可现实内存使用情况,CPU使用率)、pidstat(可查看每个进程的CPU使用率)、ps(查看进程的运行端口等信息),uptime(用来查看1min,...

2019-07-19 20:08:29 879

转载 数据库分库分表详解

数据库分库分表详解

2019-06-21 09:24:16 325

原创 KMP算法简解

一、KMP解决的问题一个字符串s1=“BBCABCDABABCDABCDABCDABDE”,和一个模式串s2=“ABCDABD”;现在要求s2于s1匹配的开端位置。如本串的位置就是 “BBCABCDABABCDABCDABCDABDE”,开端位置就是A,下标为17二、KMP的过程KMP主要分为两个过程。一个是求next数组。另一个是根据next数组移动。(一)求next数组(1)求解ne...

2019-06-19 22:22:53 179

原创 动态规划的套路----左神

一、动态规划首先动态规划不是一种数据结构,而是一种优化,它是一种用空间换时间的套路,它是递归的进阶版本。二、动态规划的套路使用动态规划套路的一个原则是能想出递归的解法。由递归来改成动态规划。我们以这套例题来解释动态规划的套路第一步: 写出递归的“试”法,看看如何尝试可以解决问题。num:表示前几步已选择的值的和, 变量id:在下标为 0 — id-1中的数中进行选择,变量targ...

2019-06-19 20:03:47 1196

原创 深入分析Java I/O 的工作机制

前言:写这篇文章的一个人原因是我以为我I/O方面的相关知识以为复习的还不错。结果在面试某手机厂时被深深打击。所以励志写下此篇文章。。。。。。,(注:此篇文章是来自于许令波的《深入分析Java Web》技术内幕)一、Java 的 I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个...

2019-06-16 16:39:37 216

原创 回溯法常用的解题模板和常见题型

文章目录1、什么是回溯法2、通用框架3、模板测试1、subSet2、Permutations3、 Combination Sum4、Palindrome Partitioning4、总结1、什么是回溯法wiki上面是这么说的在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索...

2019-05-24 21:48:06 1327

原创 MYSQL的索引

文章目录1、mysql的索引2、B+树索引2.1 聚集索引2.2 辅助索引2.3 联合索引2.4 覆盖索引3、全文索引4、哈希索引5、总结1、mysql的索引MYSQL中存储引擎为INNODB的支持以下几种常见的存储引擎:(1)B+树索引:聚集索引,辅助索引,联合索引,覆盖索引(2)全文索引(3)哈希索引:这个是InnoDB存储引擎根据表的使用情况自动为表生成哈希索引。2、B+树索引...

2019-05-12 13:11:56 344

原创 求字符串的最长回文串-----Manacher's Algorithm 马拉车算法

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: "babad"Output: "bab"Note: "aba" is also a valid answer.Example...

2019-05-10 19:49:47 318

原创 TreeMap源码解析

1、TreeMap类的说明TreeMap是一种底层采用红黑树结构的哈希存储,数据内部保持有序,这个类继承了abstractMap和实现了NavigableMap。而NavigableMap又是拓展了SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法,方法 lowerEntry、floorEntry、ceilingEntry 和 higherEntry 分别返回与小于、小于等于、...

2019-05-07 20:30:36 314

原创 最长不重复的子串长度

Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:In...

2019-05-06 21:15:15 915

原创 LinkedList源码解析

文章目录1、LinkedList类的说明1.1 解释说明1.2 数据结构2、方法字段3、关键方法栈和队列的操作4、总结1、LinkedList类的说明在上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点。本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于双向链表实现的,因此它具有插入删除快而查找修...

2019-05-03 17:15:22 2247

原创 ArrayList源码解析

文章目录1、ArrayList类的说明1.1 解释说明1.2 数据结构2、方法字段3、主要方法4、总结1、ArrayList类的说明本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组。数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间用来进行元素的存储,由于它直接操作内存,所以数组的性能要比集合类更好一些,这是使用数组的一大优势。但是我们知道数组存在致命的...

2019-05-02 17:03:14 372

原创 LinkedHashMap源码解析

1、LinkedHashMap类的说明1.1 解释说明/** * 哈希表和链表实现了Map接口,具有可预测的迭代顺序(也就是说LinkedHashMap是有序的) * 这个工具不同于HashMap因为它在entry节点上多维护了一组双向链表,用来保证entry * 插入有序。(我们知道在HashMap中每一个桶中的节点用一个单链表或者红黑树维护) * 这个双向链表保证了entry的迭代...

2019-05-02 13:48:19 205

原创 HashMap源码解析

1、hashMap类的说明1.1 解释说明/** * Hash table是基于Map接口的工具. 这个工具提供了所有的可选的map操作,和允许 * key和value为空。HashMap有点类似于Hashtable.除了hashMap不是线程安全的和允许 * 空值。HashMap不能保证元素的有序性。特别是它不能随着时间的进行保证有序。 * * * Hash在get()和p...

2019-04-29 11:32:16 689

原创 JAVA集合容器源码解析

集合容器是我们使用的最多的一个容器,像ArrayList,LinkList,HashMap等等,这个系列的文章主要从源码来解析比较常用的集合,一方面练习自己阅读源码的能力,另一方面加强对集合容器的理解。集合容器的关系有如下这张图当然我不会全部去看,会自己挑几个重点的看。另外,我觉得看源码要有目的性,你要怎么看,需要看哪些。对于我自己,我主要从以下方面来看源码:1、类的说明2、字段3、主...

2019-04-29 11:27:58 361

转载 HashMap底层红黑树

转:https://www.cnblogs.com/finite/p/8251587.html

2019-04-28 11:42:34 570

原创 动态规划简单题小结

198、House RobberYou are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is th...

2019-04-27 17:08:07 228

原创 MYSQL事务的ACID--隔离级别的详解

事务是MYSQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。本文从ACID四大特性介绍。主要介绍隔离性。一 基本概念事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务,本文介绍基于MySQL5.6。首先回顾一下MySQL事务的基础知识。1、逻...

2019-04-26 11:38:45 385

原创 mybatis如何使用preparedstatement防止依赖注入

原文地址:以mysql为例介绍PreparedStatement防止sql注入原理最近,在写程序时开始注意到sql注入的问题,由于以前写代码时不是很注意,有一些sql会存在被注入的风险,那么防止sql注入的原理是什么呢?我们首先通过PrepareStatement这个类来学习一下吧!作为一个IT业内人士只要接触过数据库的人都应该知道sql注入的概念及危害,那么什么叫sql注入呢?我在这边先给它...

2019-04-25 18:30:12 6424

原创 servlet工作原理与tomcat的系统架构

文章目录一 从Servlet容器说起1、server服务器2、tomcat容器3、客户端请求服务器(http请求的过程)二 servlet的过程1、解析过程2.web应用初始化3、创建servlet实例(1)创建 Servlet 对象(2)初始化 Servlet4、servlet如何工作5、整个流程三 模仿tomcat和servlet实现Http请求过程。(1)http基本要求(2)项目的基本结构...

2019-04-25 11:32:25 392

原创 求最少篮子个数---最大公约数

这是一道360的笔试题,有几种颜色的球,每个球有n个。求最少用几个篮子可以将这些球装到篮子里,每个篮子只有一种颜色的球且最少2个球。同一个颜色的球可以装到不同篮子。思路:采用最大公约数求。package mttest;import java.io.*;import java.util.*;import java.util.Map.Entry;import java.text.*...

2019-04-24 21:12:51 199

原创 求最长前缀子串---indexOf()

Write a function to find the longest common prefix string amongst an array of strings.If there is no common prefix, return an empty string "".Example 1:Input: ["flower","flow","flight"]Output: ...

2019-04-20 21:01:32 447

原创 操作系统中的算法----进程调度算法,空闲分区分配算法、页面置换算法、磁盘调度算法

文章目录进程调度算法空闲分区分配算法虚拟页式存储管理中的页面置换算法磁盘调度进程调度算法1.先进先出算法(FIFO):按照进程进入就绪队列的先后次序来选择。即每当进入进程调度,总是把就绪队列的队首进程投入运行。2.时间片轮转算法(RR):分时系统的一种调度算法。轮转的基本思想是,将CPU的处理时间划分成一个个的时间片,就绪队列中的进程轮流运行一个时间片。当时间片结束时,就强迫进程让出CPU,...

2019-04-20 15:02:00 858

原创 字符转为数字---一个奇怪的现象

Implement atoi which converts a string to an integer.The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from thi...

2019-04-19 21:03:15 160

转载 秒杀系统设计

文章目录一、秒杀业务为什么难做二、优化方向三、常见秒杀架构四、各层次优化细节第一层,客户端怎么优化(浏览器层,APP层)第二层,站点层面的请求拦截第三层 服务层来拦截(反正就是不要让请求落到数据库上去)第四层,最后是数据库层五、总结六、Q&A一、秒杀业务为什么难做1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据...

2019-04-15 16:33:41 2141 1

转载 Mysql高性能优化规范建议

参考文章:https://www.cnblogs.com/huchong/p/10219318.html

2019-04-15 10:41:30 100

原创 redis设计与实现

参考文章:https://www.cnblogs.com/ysocean/category/1221478.html

2019-04-09 17:46:24 1255 1

原创 Dubbo模型从上到下

SOA,ORM,MVC,AOP->RPC,socket,管道(无名管道(单向传输),命名管道(可双向))->dubbo,hessian,RMI,http->netty,Mina->NIO,BIO,AIO:NIO,BIO,AIO的区别->epoll,poll,select poll,select,epoll的区别->fd文件描述,用户态和内核态的切换效...

2019-04-09 15:10:48 204

原创 算法---约瑟夫环问题

每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友...

2019-04-08 23:57:31 214

原创 spring--容器创建过程(IOC和AOP的过程)

在前面两篇中我们介绍了IOC和AOP,知道了IOC容器就是来管理每个Bean的,而AOP就是对这些Bean进行功能的拓展,那么这个过程是怎么样实现的呢,IOC和AOP又是怎么样的一个过程呢。一、Spring容器创建过程我们通过一个简单的创建bean来看看底层源码是怎么跑的。配置一个基于注解的beanimport org.springframework.context.annotatio...

2019-04-08 12:01:32 693

原创 算法---扑克牌中的顺子(位图的运用)

首先先学一下什么是位图看这里看这里LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q...

2019-04-08 00:01:49 1185

原创 spring之AOP

1、什么是AOP?没有AOP会怎么样在前面我们提了IOC,作为spring的两大核心功能,AOP(Aspect-OrientedProgramming,面向方面编程)也是非常重要的,它体现了一种相对于OOP(Object-Oriented Programing,面向对象编程),而进一步完善了补充。在之前我们提到过,IOC是整个spring的核心功能,它管理着Bean,解耦了各个类。而AOP呢则是...

2019-04-07 11:59:36 85

原创 设计模式--代理模式(proxy)

一 、什么是代理什么是代理模式?日常生活中我们经常会碰到代理模式,例如我们找房产中介帮我们介绍房子,找婚姻中介帮我们介绍对象,找保洁帮我们打理房间,找律师帮我们进行诉讼等。我们在无形中运用到了代理模式,却不知道它的存在。为什么要使用代理?运用代理可以使我们的生活更加便利,有了代理,我们不需要自己去找房子,不需要自己去找对象,不需要自己去打理房间,不需要自己去诉讼。当然,你也可以选择一切...

2019-04-06 17:36:03 251

原创 算法---求一个数组中两个只出现一次的数字(移位运算和二进制运算的精髓)

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。比如{2 ,4 ,3, 4 , 6 ,3, 5},则这两个数字是2和5,要求时间复杂度为O(N),空间复杂度为O(1)思路:1)首先我们要了解一个知识就是异或运算的功能。一个数异或自己为0,异或0为本身。转化为二进制就是两个数相同位为0,不同位为1。2)我们首先从一个数组中只出现一次的数字来做。比...

2019-04-06 01:08:53 121

原创 算法----求是否是平衡二叉树(剪枝方法)

输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路一:暴力递归,判断每个两边的高度差是否大于1,但是会有很多多余的计算public boolean IsBalanced_Solution(TreeNode root) { if(root==null) return true; int left = TreeDepth(root.lef...

2019-04-06 00:09:23 197

原创 Spring之IOC

一、什么是IOC,没有IOC的话会怎么样就比如在没有IOC的时候,个个类之间的关系就像上面这张图一样紧密联系在一起。每次调用一个类实例必须手动创建一个对象。对象的耦合非常高。这时候IOC就出来了。前面不是说对象之间的关系紧密联系吗?所以我们将对象之间的关系不直接关联在一起,而是交给一个中介(也就是IOC容器),当要创建类实例的时候不是自己创建,而是通过IOC容器来实现。这样类之间的关系就不会...

2019-04-05 17:59:04 165

原创 算法---求一颗树的最大深度

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

2019-04-04 23:22:43 6429

选择重传协议c语言实现

数据链路层的流量控制滑动窗口协议,其中采用选择重传协议,用c语言实现,实验中实现(1)在高丢包率和错误率下,实现选择重传。(2)在基于广播的形式发送方发送数据,多个接收方全部接收到数据,但只有指定的接收方接收到数据,而其他的接收方并不做处理。实验环境带gcc的linux

2018-11-28

空空如也

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

TA关注的人

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