自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法学习之剑指offer(九)

一题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。public class Solution { public int Sum_Solution(int n) { int sum=n; boolean re = (n>0)&&((sum...

2018-02-17 11:12:46 307

原创 算法学习之剑指offer(八)

题目一题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序...

2018-02-15 00:03:51 458

原创 Java并发编程总结(一)Syncronized解析

Syncronized解析 作用:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。用法:(1)修饰普通方法(锁是当前实例对象)(2)修饰静态方法(锁是当前对象的Class对象)(3)修饰代码块(锁是Synchonized括号里配置的对象)底层实现原理:       方法和代码块都是基于进入和退出Monitor

2018-02-03 18:39:26 406

原创 Java虚拟机重点知识归纳总结

一、     JVM内存分区分为程序计数器、虚拟机栈、本地方法栈、Java堆、方法区5个区域 其中Java堆和方法区是线程共享的,虚拟机栈、本地方法栈、程序计数器是线程隔离的。 程序计数器:        1.可以看作当前线程所执行的字节码的行号指示器        2.Java多线程之间进行切换的时候需要之后恢复到之前执行位置,所以每条线程需要一个程序计数器,程序计数

2018-02-02 21:21:00 525

转载 JVM本地方法栈及native方法

看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。以下转载一篇关于native方法的介绍:http://blog.csdn.net/wike163/article/details/6635321————————————分 割 线——————————今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依

2018-01-27 09:01:57 3843

原创 算法学习之剑指offer(七)

题目1题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size 对于%75的数据,size 对于%100的数据,size

2018-01-24 20:23:06 319

原创 算法学习之剑指offer(六)

题目1题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。import java.util.*;public class Solution { public ArrayList GetLeastNumbers_Solution(int [] input, int k) {

2018-01-23 23:46:11 345

原创 Java动态代理

1.首先,什么是代理(中介)目标对象/被代理对象 ------- 房主:真正有租房子方法的人代理对象 -------------------- 黑中介:有租房子的方法(负责调用房主的租房子方法)执行代理对象方法的对象 ---- 租房的人  流程:我们要租房----->中介(租房的方法)------>房主(租房的方法)抽象:调用对象----->代理对象------>目标对象

2018-01-23 10:18:12 308

原创 算法学习之剑指offer(五)

题目1题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(seque

2018-01-22 16:22:25 270

原创 算法学习之剑指offer(四)

题目1题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {

2018-01-21 19:18:21 290

原创 算法学习之剑指offer(三)

题目1题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1

2018-01-20 18:09:29 291

原创 算法学习之剑指offer(二)

题目1题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) {

2018-01-18 12:58:31 265

原创 算法学习之剑指offer(一)

题目一:题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路1:遍历每一行,然后对每一行进行二分查找,复杂度为n*lognpublic class Solution { public boolean Find(int target

2018-01-17 17:49:42 285

转载 MySQL学习(四)深入理解乐观锁与悲观锁

转载自:http://www.hollischuang.com/archives/934在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认

2018-01-10 12:42:45 327

原创 MySQL学习(三)MySQL锁与事务

本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。一、MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level

2018-01-10 12:35:09 780

转载 MySQL学习(二)索引原理及其背后的数据结构

首先区分几个概念:聚集索引主索引和辅助索引(即二级索引)innodb中每个表都有一个聚簇索引(clustered index ),除此之外的表上的每个非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。聚簇索引和非聚簇索引不是一种索引类型而是一种存储方式。以下转载自:http://blog.codinglabs.o

2018-01-09 11:35:07 577 1

原创 MySQL学习(一)索引的基本认识

MySQL中,所有的数据类型都可以被索引,包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等。额外的:我已知的自动创建索引的时机:创建主键,唯一,外键约束的时候一、索引简介1.1、索引的含义和特点底层实现分 BTREE索引(主要是B树索引),HASH索引索引优点:提高查询,联合查询,分级和排序的时间索引缺点:索引占空间,维护(创建,更新,维护)索引时需要耗费时间 1.2、索引的分类...

2018-01-08 22:45:11 354

原创 Spring基础(二)

一、使用注解配置Spring1.1步骤--配置文件中,指明注解位置--要用的地方打上注解--改对象的作用范围(修改掉默认的单例,变多例)--属性的注入(两种)使用的反射实现set方法实现的

2018-01-07 11:36:31 390

原创 Spring基础(一)

一、Spring简介Spring框架性质是属于容器性质的.容器中装什么对象就有什么功能.所以可以一站式开发(springmvc+ioc+spring jdbc).核心是IOC(控制反转)和AOP(面向切面编程)。二、一个快速入门的spring(IOC)使用例子1.定义一个接口和实现类public interface UserDao { public v

2018-01-06 20:34:30 318

转载 数据库三大范式

第一范式第一范式(1NF)要求数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。若某一列有多个值,可以将该列单独拆分成一个实体,新实体和原实体间是一对多的关系。在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。第二范式满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式要求实体中没一行的

2018-01-06 10:52:20 950

转载 sql 外键 on update cascade 和 on delete cascade 作用区别?

这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的。update 则是主键表中被参考字段的值更新,delete是指在主键表中删除一条记录:on update 和 on delete 后面可以跟的词语有四个no action , set null , set default ,cascadeno action 表示 不做任何操作,

2018-01-02 09:22:28 954

原创 Mybatis入门简版(二)

一、Dao层开发的方式以前dao层开发比较繁琐,写了接口还得写实现类,实际上用了Mybatis之后写实现类非常重复,都是重复的代码。那么此时改成另外一种简单形式。 遵循以下四个原则(名称、形参、返回值、命名空间):1.Mapper接口方法名和Mapper.xml中定义的每个statement(SQL语句)的id相同 2.Mapper接口方法的输入参数类型和mapper.xml中

2017-12-24 13:00:19 271

原创 Mybatis入门简版(一)

一、Mybatis介绍 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。二、jdbc问题总结如下:数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。如果使用数据库连接池可解决

2017-12-24 12:57:58 296

原创 Mybatis入门简版(补充)

一、Mybatis 中$与#的区别 #相当于对数据 加上 双引号,$相当于直接显示数据1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".2.

2017-12-24 11:56:18 313

原创 SQL中ON和WHERE的区别

一直觉得自己SQL不熟练,于是开始刷SQL题,发现了不懂SQL中ON和WHERE的区别,搜索结果网上几十几十篇的博客互相抄 ,关键抄得还很迷惑。好在最后还是弄懂了。1.首先on是用连接join中的,它的意思是在生成连接结果的时候  偏心地 剔除掉一些不符合条件的至于怎么偏心,比如在left join 它就“偏袒”左边的表 只把右边的表中不符合条件的剔除了(置为null)如下:

2017-12-23 15:42:10 1108

转载 MySQL基础(五)常见运算符

MySQL常见运算符运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算。常见的运算有数学计算、比较运算、位运算以及逻辑运算。运用运算符可以更加灵活地使用表中的数据,常见的运算符类型有:算术运算符,比较运算符,逻辑运算符,位运算符等。1.1 运算符概述    运算符是告诉MySQL执行特殊算术或逻辑操作的符号。MySQL的内部运算符很丰富,主要有四

2017-12-23 09:47:17 628

转载 MySQL基础(四)常用函数

转载自 http://blog.csdn.net/evankaka目录(?)[+]        MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中将讲解的内容

2017-12-23 09:26:18 422

转载 MySQL基础(三)多表查询(各种join连接详解)

Mysql 多表查询详解一.前言 二.示例三.注意事项一.前言 上篇讲到Mysql中关键字执行的顺序,只涉及了一张表;实际应用大部分情况下,查询语句都会涉及到多张表格 :1.1 多表连接有哪些分类?1.2 针对这些分类有哪些连接方法?1.3 这些连接方法分别作用于哪些应用场景?这篇针对这三个点通过实例来讲述,目的是穷尽所有的场

2017-12-22 23:49:02 18936 4

原创 MySQL基础(二)

一、数据表的修改总格式:ALTER  TABLE tbl_name +具体命令;1.1添加列的具体命令为:ADD [COLUMN] column_definition [FIRST | AFTER col_name ]比如:ALTER TABLE seckill ADD age INT AFTER NAME;//在seckill表中name列后加一列ageALT

2017-12-22 17:17:48 323

原创 MySQL基础(一)

一、初涉MySQL1-1.MySQL的安装(略)1.2.MySQL的配置等MySQL的配置文件---my.ini,在MySQL的安装目录下。通常关注my.ini中的下面几个修改配置信息之后要重启1.3.MySQL的启动和停止两种方式:1.Windows的服务里重启2.命令行实现启动是:net s

2017-12-20 13:17:05 331

原创 创建SSM项目所需

一、mybatis所需:1.相关jar包2.创数据库+Javabean类3.接口+写SQL的xml映射文件4.核心配置文件:SqlMapConfig.xml  二、springMVC所需:1.相关jar包2.毕竟web层,web.xml里的前端控制器  和 中文相关过滤器 写好3.核心配置文件springmvc.xml三、spring框架所需(待

2017-12-17 16:59:00 427

转载 设计模式(三十二)------设计模式总结分类

什么是设计模式为解决某一类普遍存在的问题而提供的一种解决方案;分类及定义创建型模式(5)1、原型模式:通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型;详情...2、单例模式:一个类只有一个全局实例;详情...3、生成器模式:对复杂对象的创建过程进行抽象,相同的创建步骤,不一样的创建过程实现,生成不同表示的对象;详情...

2017-12-14 09:02:27 286

转载 设计模式(三十一)------23种设计模式(23):简单工厂模式

使用频率:★★★★☆一、什么是简单工厂模式一个工厂方法,依据传入的参数,生成对应的具体产品对象;二、补充说明不属于23种GOF设计模式;工厂方法一般设成静态方法,返回值一般是抽象类或接口,具体的产品类一般继承或实现抽象类、接口;优点:产品使用者不需要关心产品类的创建过程,与具体产品的实现类达到解耦的效果;缺点:违背"开放--封闭"原则(OCP),因为新增

2017-12-14 09:01:59 446

转载 设计模式(三十)------23种设计模式(22):装饰器模式

转载自:http://blog.csdn.net/hust_is_lcd/article/details/78843201.认识装饰器模式    装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象

2017-12-14 09:01:41 338

转载 设计模式(二十九)------23种设计模式(21):代理模式

使用频率:★★★★☆一、什么是代理模式通过代理对象间接控制并访问目标对象的方法;二、补充说明想到代理模式,容易让人想到AOP思想,Spring中的AOP可以通过动态代理实现;代理模式有静态代理和动态代理两种;解耦调用者和被调用者;三、角色抽象主题,定义一些需要代理的方法具体主题,实现一些具体逻辑代理主题,代理和封装具体主题客户端M

2017-12-14 09:01:03 235

转载 设计模式(二十八)------23种设计模式(20):外观模式

使用频率:★★★★★一、什么是外观模式在子系统中的接口之上定义一个更高层次的接口,方便使用子系统中的接口;二、补充说明缺点:不符合开闭原则,修改子系统的代码会影响高层接口代码;优点:引入外观类可以降低系统的复杂度,提高了客户端使用的便捷性;优点:客户类与子系统解耦;三、角色子系统角色外观角色客户端角色四、例子,JAVA实现

2017-12-14 09:00:36 209

转载 设计模式(二十七)------23种设计模式(19):组合模式

使用频率:★★★★☆一、什么是组合模式树形结构的实现,用于描述“整体-部分”的关系;二、补充说明使用场景:部分/整体场景,如树形菜单; 文件/文件夹; 树形结构的公司层级关系...三、角色抽象角色叶子角色树枝角色客户端角色四、例子,JAVA实现利用组合模式实现如下文件/文件夹的树形结构关系;抽象角色,抽象文件: 具

2017-12-13 17:43:25 238

原创 算法与数据结构基础(四)高级排序算法2.快速排序

一、快速排序算法图解:解析:快速排序分两步(分区域,调目标位置):1.分区域如上图,默认第一个为目标数据v,橘色区域的数据小于v 紫色区域大于v,初始时,l 与j 位置重叠(橘色区域没数据),i开始在l的右边一个个扫描,大于v的不管(一开始就默认右边的都在紫色了),小于v的数 把这个数和 ++j更换(放到橘色区域)。这样橘色区域不断收纳小于v的数,直到i扫描到最后,分成橘 紫

2017-12-13 15:14:34 376

转载 设计模式(二十六)------23种设计模式(18):桥接模式

使用频率:★★★☆☆一、什么是桥接模式将对象的行为抽象为接口,作为抽象类的成员属性在抽象层进行组合(个人理解,仅供参考);二、补充说明改变对象与其行为的强耦合关系,使之与行为解耦;使对象的行为以及对象本身都能独立变化;三、角色抽象类具体实现类行为接口具体行为实现类客户端四、例子,JAVA实现例子说明:对象:人(

2017-12-13 11:21:34 246

转载 设计模式(二十五)------23种设计模式(17):享元模式

使用频率:★☆☆☆☆一、什么是享元模式大量细粒度对象共享复用二、补充说明可以节约内存空间,提高系统的性能;一个对象有内部和外部两种状态,内部状态是不变的,外部状态是可变的,把一个对象分成内部状态和外部状态,然后通过共享内部状态,达到节约内存空间的目的;应用场景举例:一个文档中多次出现相同的图片;一篇文章中出现了很多重复的字符串;围棋的棋子(黑棋和白旗);

2017-12-13 11:13:39 289

空空如也

空空如也

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

TA关注的人

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