自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(273)

原创 前言

碰到做过的题目该怎么办?面试算法题要怎么做?面试在考察什么?

2019-10-19 22:10:15 53

原创 剪绳子

题目描述给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)示例1输入8...

2019-10-19 16:14:28 186

原创 【笔记】高性能MySQL(第三版)——第4章:MySQL基准测试

4.1选择优化的数据类型更小的通常更好。一般应该尽可能使用能正确存储数据的最小数据类型,更小的数据类型通常更快,因为他们占用更少的磁盘、内存和CPU缓存,并且处理需要的CPU周期更少。简单就好。整型比字符串操作代价更低。 两个例子:1、应该用MySQL内建的类型来记录日期和时间 2、应该用整型来存储IP地址(IP地址正好是32位,而且都是01值,可以转换成整形数值)尽量避免null。可为N

2017-09-27 11:00:45 539

转载 【笔记】高性能MySQL(第三版)——第2章:MySQL基准测试

基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。简单地说,基准测试是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。但也有其他原因,如重现某个系统状态,或者做新硬件的可靠性测试。2.1 为什么需要基准测试基准测试是唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些

2017-09-27 10:27:39 327

原创 【笔记】高性能MySQL(第三版)——第1章:MySQL架构与历史

1.1MySQL服务器逻辑架构最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。第二层架构是MySQL比较有意思的部分。大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、

2017-09-26 16:16:59 324

转载 Spring技术内幕——DataSourceTransactionManager

Spring的事务处理中,通用的事务处理流程框架是由抽象事务管理器AbstractPlatformTransactionManager来提供的,而具体的底层事务处理实现,由PlatformTransactionManager的具体实现类来实现,如 DataSourceTransactionManager 、JtaTransactionManager和 HibernateTransactionMan

2017-09-17 16:22:04 7731

转载 Spring技术内幕——事务的创建,挂起,回归,提交(事务拦截器和抽象事务管理器)

在涉及单个数据库局部事务的事务处理中,事务的最终实现和数据库的支持是紧密相关的。对局部数据库事务来说,一个事务处理的操作单元往往对应着一系列的数据库操作。Spring事务处理主要分以下三个主要的过程:(1)读取和处理在Spring IoC容器中配置的事务处理属性,并转化为Spring事务处理所需要的内部数据结构。这里涉及到的类是TransactionAttributeSourceAdvis...

2017-09-15 14:34:12 5184

原创 Spring技术内幕——Spring MVC与Web环境(未完)

本章主要讲述1、分析Spring的IoC容器是怎样在Web应用环境中发挥作用的 2、分析Spring MVC框架的实现原理4.2 Web环境中的Spring MVC如果要在Web环境中使用IoC容器,需要Spring为IoC设计一个启动过程。http://blog.csdn.net/zuoluoboy/article/details/4213053 (web.xml的作用到底是什么,如

2017-09-11 21:46:44 210

原创 Spring技术内幕——AOP的实现

维基百科对“AOP”相关概念的叙述:Aspect是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来封装、维护,这样原本分散在整个

2017-09-09 22:05:58 231

原创 Spring技术内幕——IOC部分摘录

哪些方面的控制被反转了?(名词“依赖注入”的由来)Spring IOC的容器设计中,有两种主要的容器系列,一个是实现BeanFactory接口的简单容器系列;另一个是ApplicationContext应用上下文,增加了许多面向框架的特性同时对应用环境做了适配。(下图中全是接口)三套接口体系: 1、从接口BeanFactory道Hierarchica

2017-09-08 00:23:23 260

原创 Spring技术内幕——依赖注入

假设当前IoC容器已经载入了用户定义的Bean信息,开始分析依赖注入的原理。首先,注意到依赖注入的过程是用户第一次向IoC容器索要Bean时触发的,当然也有例外,也就是我们可以在BeanDefinition信息中通过控制lazy-init属性来让容器完成对Bean的预实例化。这个预实例化实际上也是一个完成依赖注入的过程,但它是在初始化的过程中完成的,稍后我们会详细分析这个预实例化的处理。当用户向I

2017-09-07 23:21:20 161

转载 SpringMVC和Struts2的区别

https://www.zhihu.com/question/31565442Struts2处理请求是为每个请求都创建一个单独的Action类,Action类当中的Field属性参数作为输入和输出参数用IOC来依赖注入的方式,是基于类的。而SpringMVC则采用输入Request和Reponse作为参数,返回ModelAndView的方式,是单例的模式,且是基于方

2017-08-25 22:43:10 247

转载 Redis为什么是单线程

转自:https://www.zhihu.com/question/23162208 https://www.zhihu.com/question/55818031Redis为什么是单线程的?因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽。(以上主要来自官方FAQ)既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。关于redis的

2017-08-24 19:03:55 15070 2

转载 正则表达式中的贪婪匹配和懒惰匹配

1.什么是正则表达式的贪婪与非贪婪匹配  如:String str="abcaxc";    Patter p="ab*c";  贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc  非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc

2017-08-24 16:35:50 496

原创 java Pattern和Matcher——用于匹配和查找字符串中的内容

总结:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input):一种最基础最简单的匹配。Java正则表达式通过Java.util.regex包下的Pattern类与Matcher类实现(建议在

2017-08-24 15:54:57 543

原创 编程题——识别有效的IP地址和掩码并进行分类统计

网址:https://www.nowcoder.com/practice/de538edd6f7e4bc3a5689723a7435682?tpId=37&tqId=21241&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking题目描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合

2017-08-24 15:48:16 328

原创 leetCode——word ladder(Java实现)

Given two words (start and end), and a dictionary, find the length of shortest transformation sequence fromstart to end, such that: Only one letter can be changed at a time Each intermediate w

2017-08-24 14:06:57 402

转载 shell中各种括号()、(())、[]、[[]]、{}的作用及使用场景

转自:http://blog.csdn.net/ztf312/article/details/52317571技巧小结:字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格快速替换用花括号{ }——左右留空格反单引号起着命令替换的作用` `

2017-08-23 21:44:54 446

原创 Linux重点知识整理

基本概念:文件权限(http://blog.csdn.net/qqqqq1993qqqqq/article/details/73544513):文件权限前的一个字母用来表示文件类型: -:一般文件 d:目录文件 b:块设备文件(如,硬盘) c:字符设备文件(如,键盘、鼠标) l:链接文件(相当于Window中的快捷方式) p:人工管道 n:网络设备

2017-08-23 20:56:33 199

转载 MySQL触发器详解

转自:http://www.cnblogs.com/duodushu/p/5446384.html  http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.htmlMySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。

2017-08-23 16:39:24 289

转载 ReentrantReadWriteLock分析

转自http://blog.csdn.net/vernonzheng/article/details/8297230一、ReentrantReadWriteLock与ReentrantLock  说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。R

2017-08-19 11:43:04 180

转载 AbstractQueuedSynchronizer源码分析二(共享锁部分)

前言经过本系列的上半部分JDK1.8 AbstractQueuedSynchronizer的实现分析(上)的解读,相信很多读者已经对AbstractQueuedSynchronizer(下文简称AQS)的独占功能了然于胸,那么,这次我们再借助另一个工具类:CoutDownLatch,换个角度看看AQS的另外一个重要功能——共享功能的实现。AQS共享功能的实现在开始解读AQS的共享功能前...

2017-08-18 16:24:02 226

转载 设计模式——模板模式及在jdk中的应用

Template method(模板方法)核心思想:大的逻辑已经定义,coder要做的只是去实现一些具体步骤,不同的人实现这些具体步骤的方法也会有所不同,从而模板的行为也会表现出具体的区别。很多框架中都广泛应用了模板模式。作用:定义算法的结构,子类只实现不同的部分。可以加快块整个程序的开发进度。JDK中体现:ThreadPoolExecutor.Worker类图:

2017-08-18 14:43:02 256

转载 设计模式——策略模式及在jdk中的应用

策略模式(strategy)策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下:图中ICalculator提供同意的方法,AbstractCalculator是辅助类,提供辅助方法。

2017-08-18 14:34:52 970

转载 设计模式——访问者模式及在jdk中的应用

访问者模式(Visitor)访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其

2017-08-18 14:24:39 929

转载 设计模式——外观模式及在jdk中的应用

转自  设计模式--外观模式Facade(结构型)& http://www.cnblogs.com/xrq730/p/4908822.html :1. 概述     外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电

2017-08-17 21:31:43 1015

转载 设计模式——代理模式及在jdk中的应用

代理模式(Proxy)其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作。代理对象控制对原对象的引用。根据上文的阐述,代理模式就比较容易的理解了,我们看下代码:[java] view plain copypublic interface Sourceable {  

2017-08-17 20:46:43 348

转载 设计模式——装饰器模式及在jdk中的应用

装饰模式(Decorator)顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:[java] view plain copy

2017-08-17 20:22:03 873

转载 设计模式——适配器模式及jdk中的应用

http://blog.csdn.net/zhangerqing/article/details/8239539  适配器模式(Adapter)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式,先看类图:核心思

2017-08-17 19:18:45 1593

转载 设计模式——建造者模式和原型模式

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:四个要素产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象

2017-08-17 17:24:01 284

转载 设计模式——抽象工厂模式及在jdk中的应用+几种工厂模式的比较

抽象工厂模式(Abstract Factory)工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定

2017-08-17 16:39:35 3305

转载 设计模式——工厂方法模式及在jdk中的应用

工厂方法模式(Factory Method)定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式工厂方法模式分为三种:11、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举例如下:(我们举一个发送邮件和短信的例

2017-08-17 15:21:36 1166

转载 设计模式——单例模式及jdk中的应用

http://blog.csdn.net/zhengzhb/article/details/7331369  http://blog.csdn.net/gtuu0123/article/details/6114197定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、

2017-08-17 14:33:47 2244

转载 设计模式——设计模式概览及六大设计原则

转自http://blog.csdn.net/zhangerqing/article/details/8194653  http://blog.csdn.net/column/details/pattern.html?&page=2(这个专栏很好)http://blog.csdn.net/zhengzhb/article/details/7187278  http://blog.csdn.ne

2017-08-17 13:24:44 123

转载 JVM——虚拟机字节码执行引擎(运行时栈帧结构、方法调用(解析,动静态分配)、字节码解释引擎)

1 运行时栈帧结构栈帧( Stack Frame ) 是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈( Virtual Machine Stack ) 的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程 ,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。(1)局部变量表

2017-08-16 23:30:22 418

转载 JVM——类文件结构

http://blog.csdn.net/zhoufenqin/article/details/51045890http://blog.csdn.net/ochangwen/article/details/51457398http://blog.csdn.net/u010349169/article/category/2620885无关性的基石各种不同平台的虚拟机与

2017-08-16 15:10:26 308

原创 大端和大端

1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha

2017-08-15 16:59:21 213

翻译 Mybatis实战——高级结果映射

转:http://blog.csdn.NET/ilovejava_2010/article/details/8180521高级结果映射MyBatis的创建基于这样一个思想:数据库并不是您想怎样就怎样的。虽然我们希望所有的数据库遵守第三范式或BCNF(修正的第三范式),但它们不是。如果有一个数据库能够完美映射到所有应用程序,也将是非常棒的,但也没有。结果集映射就是MyBatis为解决这些问题

2017-08-15 16:17:59 196

转载 MyBatis实战——resultMap,resultType简介,关联对象

一、概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对

2017-08-15 15:36:10 543

原创 网易2017——小易喜欢的数列

小易喜欢的数列小易非常喜欢拥有以下性质的数列:1、数列的长度为n2、数列中的每个数都在1到k之间(包括1和k)3、对于位置相邻的两个数A和B(A在B前),都满足(A 例如,当n = 4, k = 7那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的但是小易不喜欢{4,4,4,2}这个数列。小易给出n和k,希望

2017-08-15 13:59:07 452

空空如也

空空如也

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