自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

忆雨星域

linux

  • 博客(23)
  • 收藏
  • 关注

原创 动态规划

简介动态规划(Dynamic Programming)也叫DP算法,通常用于求解具有某种最优性质的问题。其基本思想就是将一个复杂的问题分解若干个简单的子问题,而这些子问题相互之间不是独立的,每个子问题仅仅只解决一次。我们可以使用一块额外的空间(例如数组)来记录所有已解的子问题的答案,不管这个子问题以后是否会被用到,都会记录到这个空间中。基本步骤首先我们来说明以下几个概念,状态:状态可以理解为原问题和简单的子问题的解。这时,我们需要根据子问题的状态的推导出原问题的状态,也就是推导出状态转移方程。状

2020-06-20 14:19:23 147

原创 Leetcode-反转链表

题目介绍给我们一个链表,将这个链表的反转过来。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL题解模板/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }

2020-06-20 13:14:44 201

原创 Innodb存储引擎锁机制

锁的类型Innodb存储引擎实现了如下两种标准的行级锁1)共享锁(S Lock),允许事务读一行数据。2)排它锁(X Lock),允许事务删除或更新一行数据。为了支持在不同粒度上进行加锁操作,Innodb支持一种额外的加锁方式,称之为意向锁(Intention Lock)。意向锁为表级别的锁。设计的目的主要是为了在一个事务中揭示下一行将被请求的锁类型。其支持两种意向锁1)意向共享锁(IS Lock),事务想要获取一张表中的某几行的共享锁2)意向排他锁(IX Lock),事务想要获得一张表中某几行

2020-05-25 20:03:14 203

原创 Innodb事务

前言事务是数据库区别于文件系统的重要特性之一。它会把数据库从一种一致状态转换为另一种一致状态。事务特性原子性(atomicity)整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个SQL语句执行失败,已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。一致性(consistency)一致性指事务将数据库从一种状态转变为下一种一致性状态。在事务开始之和事务结束以后,数据库的完整性约束没有被破坏。隔离性(isolati

2020-05-24 08:57:07 221

原创 希尔排序

基本介绍对于大规模乱序数组插入排序很慢,因为它只会交换相邻的元素,因此元素只能从数组的一端移动到另一端。希尔排序是基于插入排序的高级排序算法。它将插入排序算法进行了改进,交换不相邻的元素以对数组局部进行排序,并最终用插入排序将局部有序的数组进行排序。基本思想将数组中任意间隔为h的元素都是有序的。这样的数组成为h有序数组。在排序时,如果h很大,我们可以将元素移动到很远的位置上。h是一...

2018-09-04 10:00:01 139

原创 JavaScript实现继承

继承继承的方式有两种,一种是接口继承,继承方法签名,一种是实现继承,继承实际的方法。JavaScript由于没有方法签名,所以只支持实现继承原型链JavaScript实现继承的方式是用原型链来实现的。由于每个构造函数都一个属性,指向一个原型对象,所以我们将原型对象等于另一个类型的实例,显然这时这个实例中有一个指向另一个原型的指针。如果这样一层一层的嵌套下去,就构成一个原型链。 ...

2018-09-03 20:45:01 742

原创 创建对象

创建对象工厂模式使用Object函数和对象字面量的方式创建对象,都有一个巨大的缺点:使用同一接口创建多个对象时,会造成大量重复代码。 function createPerson(name){ var o=new Object(); o.name=name; o.sayName=function(){ ...

2018-09-03 16:22:04 120

原创 JavaScript引用类型的使用

创建对象创建对象的方式分为两种: 1)new操作符加上Object var person=new Object()2) 通过对象字面量来创建对象 var person={ name:"yudi", age:13 }使用对象字面量创建对象时,不会调用Object的...

2018-08-21 21:19:10 185

原创 JavaScript的变量,作用域和内存问题

基本类型和引用类型的值1,引用类型的值可以添加属性,基本类型的值不能为它添加属性var name ="hello world "name.age="12"alert(name.age) //undefiend2,复制变量值时,将变量值复制到另一个变量中时,基本类型和引用类型都是将值复制一份到另一个变量中。var num1=1;var num2=num1;这时nu...

2018-08-20 21:27:17 128

原创 liunx基本知识

shellshell是一个命令行工具,负责用户和内核之间交流的媒介。目前主流的shell解释器的是bash解释器。bash具有以下几个优点: 1)可以使用TAB键补全完整的命令 2)使用方向键上和下来调用之前用过的命令 3)具有强大的批处理脚本 4)具有使用的环境变量功能常用命令命令格式命令名称 [命令参数] [命令对象] 命令参数分为长格...

2018-08-11 17:22:47 136

原创 《JavaScript高级程序设计》第二章笔记

<script>标签的使用 包含在script元素中的代码将会从上到下依次执行 在script元素当中,不能书写&li;script&gi;

2018-08-03 15:47:54 140

原创 《JavaScript高级程序设计》第一章笔记

JS的实现一个完整的JavaScript的实现由下列三个不同的部分组成 1)核心(ECMAScript) 2)文档对象模型(DOM) 3)浏览器对象模型(BOM)ECMAScript介绍ECMAScript是由ecma-262定义的语言,与web浏览器并没有依赖关系。它定义的只是语法,类型,对象等语法。web浏览器只是ECMAScript的宿主环境之一。它除了可以在web浏览...

2018-08-02 20:54:41 145

原创 Mysql基本操作

下面让我来介绍下mysql数据库最基本的操作 1,创建数据库 create database database_name 2,删除数据库 drop database database_name 3,创建表 create table tb_emp1( id int(11) primary key, name varchar(25), deptId int(11), salary f

2018-04-10 10:23:56 109

原创 《深入理解Java虚拟机》-垃圾收集器与内存分配策略

Jvm垃圾回收分为俩点,一是对象的内存回收也就是堆内存回收,二是字面量(运行时常量池)和类信息内存回收也就是方法区内存回收。1,对象内存回收判断1)引用计数算法 即给每个对象设置一个引用计数器,每当有一个地方引用它时,引用计数器加一,当为0时,选择内存回收。引用计数法实现简单,判定效率也高,但它无法解决对象之间循环引用的问题。主流的java虚拟机不采用这种方法来管理内存 2)可达性分析算法 通

2018-04-08 22:02:30 157

原创 《深入理解Java虚拟机》-对象

1,对象的创建当虚拟机遇到一条new指令之后,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个类是否被加载,解析以及初始化中。如果没有则进行类加载。 当类加载之后,接下来虚拟机会为对象分配内存空间(对象所需的内存大小在类加载之后便可完全确定)。分配空间的方法有两种分别为指针碰撞(适用于内存规整)和空闲列表(虚拟机维护一个列表,记录哪些内存块是可用的,在分配时从列表中找出一

2018-04-08 19:49:25 98

原创 《深入理解java虚拟机》-JVM内存区域

java虚拟机在执行java程序时,会将它所管理的内存划分为若干个不同的数据区域1,程序计数器程序计数器是指当前线程所执行的字节码的行号指示器,即存储的是下一条需要执行的字节码指令。为了在多线程中,线程切换能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器2,java虚拟机栈Java虚拟机栈是线程私有的。Java虚拟机栈描述的是Java方法执行的内存模型。每个方法在...

2018-04-08 19:01:30 94

原创 Redis小结

1,Redis数据结构redis是一个开源的键值对(key-value)数据库。它的value支持五种类型,分别为字符串类型,哈希,字符串列表,字符串集合,字符串有序集合。 1)字符串(String) 字符串类型是redis中最为基础的数据类型。它存入和取出的数据相同。在Redis中value值可支持的最大长度512M 2)哈希(hash) Redis中的hash类型,可以看作value值为

2018-04-03 16:05:18 117

原创 Redis安装与配置

1,什么是redisRedis是一个用c语言开发的一个开源高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求。Redis基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。2,为什么使用redis1)易扩展:数据之间没有关系,使得非常容易扩展 2)具有非常高的读写性能 3)具有灵活的数据模型3,r

2018-04-02 20:11:36 103

原创 浅谈json

1,json定义json是一种轻量数据交换格式,它采用完全独立于编程语言的文本格式来存储和表示数据。2,为什么使用json简单和清晰的结构使得json广受好评。它具有易于人阅读和编写的特点,同时易于机器解析和生成,有效的提升了网络传输 效率3,json格式json的格式主要分为两种 1)对象格式 {"json1":"haha","json2":{"json3...

2018-04-01 17:08:03 250

原创 Jsp小结

1,jsp概述jsp(Java Server Pages),它是建立在Servlet规范至上的动态网页开发技术2,Jsp原理在第一次访问jsp时,服务器将jsp转换为.java文件,然后编译为.class文件。通过反射建立对象。通过查看jsp转换的.java文件可知该类的父类为Servlet。即jsp的本质就是servlet3,为什么使用Jsp在早先,页面代码和逻辑代码都是使用servlet来书写,

2018-04-01 16:27:39 267

原创 常用的Liunx命令(java开发)

1,cd 切换目录 cd .. 切换到上一级目录 cd - 切换到上一个所在目录 cd ~ 切换到系统主目录 cd / 切换到用户主目录2,mkdir 目录名称 增加目录操作 mkdir test 创建一个目录 mkdir -m 777 dir 创建权限为777的目录 mkdir -p dir/dir13,ls 查看目录 l...

2018-03-26 15:40:08 259

原创 栈,队列,背包(java实现)

栈栈是一种基于后进先出(LIFO)策略的数据结构。无论是在现实生活中,还是计算机中都大量运用了栈这个数据结构。例如:在浏览网页时,点击超链接会访问一个新的页面(压入栈中),你可以不断的点击新的超链接来访问新的页面。但是你总是可以点击回退按钮去访问以前访问的页面(从栈中弹出)。即程序添加元素的顺序和程序使用foreach遍历栈的顺序相反。栈有两种实现方法,一种是数组实现,一种是链表实现。下面我会一一详

2017-12-30 14:38:06 419 1

原创 java实现二分查找

二分查找的简单用法1,二分查找的思想二分查找是一种高效的查找算法。它比顺序查找快的多,虽然它需要的条件是数组是有序的。 在查找时,我们先将被查找的数和数组的中间键比较,因为数组是有序的,所有若被查找的数小于数组的中间键则这个数只可能在数组的左部分,然后将中间键的左边数组当作一个数组来进行二分查找。反之,则在数组的右部分,同样将右部分的数组当作一个数组来进行二分查找。若相等,则命中。2,二分查找的两

2017-12-25 17:01:18 3283 2

空空如也

空空如也

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

TA关注的人

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