自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

1024

我的学习笔记,便于理解和使用时查找

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

原创 RabbitMQ+Celery

RabbitMQ+Celery最近用到RabbitMQ+Celery框架进行开发分布式任务队列,这里进行一下整理总结,菜鸟欢迎批评指正。RabbitMQ一些术语官网:http://www.rabbitmq.com/ RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、Acti...

2018-08-05 15:39:12 9436 2

原创 使用PhantomJS+Selenium动态爬取

动态爬取使用PhantomJS+Selenium很多网站通常会用到Ajax和动态HTML技术,因而只是使用基于静态页面爬取的方法是行不通的。辨别是否是动态网站最简单的方法,浏览器中查看页面相应的内容、当在查看页面源代码时找不到该内容时就可以确定该页面使用了动态技术。环境搭建安装Selenium,pip install selenium下载phantomjs,解压然后在调用时执行路径executab...

2018-06-26 10:35:53 1279

原创 Scrapy笔记

Scrapy框架编写流程 1、scrapy s startproject XXXXX            //创建项目,XXXXX代表你项目的名字 2、创建好项目后,目录结构: 3、Scrapy默认是不能在IDE中调试的,我们在根目录中新建一个py文件叫:entrypoint.py;在里面写入以下内容:#coding:utf8from scrapy.cmdlineimport execute#前...

2018-06-14 14:35:22 568

原创 Lambda表达式

Lambda表达式Java是面向对象语言,没有函数类型,作为一种替代,函数被表达为对象,也就是实现了特定接口的类的实例。Lambda 表达式,也可称为闭包,它是推动Java 8发布的最重要新特性。Java8之前,如果想将行为传入函数,仅有的选择就是匿名类。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。语法lambda ...

2018-05-11 15:55:19 413

原创 面试知识点总结——网络

面试知识点总结——网络1.       OSI与TCP/IP各层的结构与功能,都有哪些协议。应用层:HTTP,FTP,DHCP,SMTP(推协议),POP3(拉取协议),DNS(表示层:数据格式的转换和加密,如FTP协议可以采用二进制形式传输还是ASCII传输,都可以在这儿进行转换,加密算法MD5,SHA1(MD5与SHA1都是Hash算法,MD5输出是128位的,SHA1输出是160位的,MD5...

2018-05-10 09:56:20 524

原创 CountDownLatch、CyclicBarrier和 Semaphore

CountDownLatch、CyclicBarrier和 Semaphore简介CountDownLatch、CyclicBarrier和 Semaphore是J.U.C中的三个辅助类,大致功能如下:CountDownLatch可以实现线程A等待其他多个线程执行完后再继续执行。CyclicBarrier可以实现一组线程等待至某个状态后再全部同时执行。Semaphore可以控同时访问的线程个数,比...

2018-04-17 11:23:06 252

原创 MySQL高级

MySQL高级存储引擎数据库存储引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。MySQL5.6支持存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等。可以使用SHOW ENG...

2018-04-01 12:23:35 998 1

原创 设计模式——Observer观察者模式

设计模式——Observer观察者模式观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的所有依赖对象。其实就是订阅和发布,只有订阅了才能收到发布的信息。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。观察者模式属于行为型模式。Servlet中的Listener就是基于观察者模...

2018-03-31 03:15:41 266

原创 设计模式——Decorator装饰器模式

设计模式——Decorator装饰器模式装饰器模式装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。同时,装饰器模式要做到对装饰类的使用者透明。装饰器模式结构Component:抽象组件角色,...

2018-03-29 15:34:54 249

原创 KMP算法Java实现

KMP算法Java实现字符串模式匹配问题,是求pattern模式字符串在target目标字符串中的位置。一般的暴力求解方法时间复杂度是O(m*n),而KMP算法可以在O(n+m)的时间数量级上完成串的模式匹配。其改进在于每当一趟匹配过程中出现字符比较不相等时,不需要回溯i指针,而是利用已经得到的“部分匹配”的结果将pattern模式字符串向右滑动,继续进行比较。这里有最通俗易懂的介绍KMP的思想:...

2018-03-28 13:58:06 228

原创 图的遍历——BFS和DFS

BFSBFS(Breadth First Search)广度优先搜索,类似于二叉树的层序遍历,基本思想:首先访问起始顶点v,接着由v出发,依次访问v的各个未访问过的邻接顶点w1,w2,...,wn,然后再依次访问w1,w2,...,wn所有未被访问过的邻接顶点。。。类似的思想还将应用于Dijkstra单源最短路径算法和Prim最小生成树算法。广度优先搜索是一种分层查找过程,不像深度优先有往回退的情...

2018-03-27 16:18:41 1890

原创 动态规划——01背包问题

问题描述01背包问题是特别经典的一个DP(DynamicProgramming)动态规划问题。在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn。也就是往包里放总价值最大的东西,所以一个物品拿与不拿就成了选择的问题。例如有如下物品(2/3)、(4/4)、(3/3)三样物品(w/p),背包空间5,如果拿价值最大的(4/4),则拿不了其他东西...

2018-03-27 14:40:02 263

原创 面试知识点总结——操作系统

面试知识点总结——操作系统和网络这里总结网上各大面经上出现的题目,持续整理。操作系统1.     进程与线程的区别。进程是系统进行资源分配和调度的基本单位,而线程是进程的一个实体,是系统调度和分派的基本单位;进程中各个线程可以共享进程的资源,线程之间可以相互的控制(并发编程),而进程之间不能共享资源(特殊情况除外,操作系统中有两个方法就就可以让一个进程直接去读取另外一个进程的内存,但是是高度保密的...

2018-03-20 13:32:18 955

原创 面试知识点总结——Java基础

面试知识点总结——Java基础这里总结网上各大面经上出现的题目,持续整理。1.     九种基本数据类型的大小,以及他们的封装类。byte1/float4/short2/double8/int4/char2/long8/boolean包装类一般首字母大写,除了Integer(int)和Character(char)。2.     Switch能否用string做参数?Java7之前无法使用字符串,...

2018-03-20 10:43:57 368 1

原创 Java中的锁

Java中的锁锁是用来控制多个线程访问共享资源的方式,一个锁能够防止多个线程同时访问共享资源(有些锁也可以并发访问共享资源,读写锁)。java.util.concurrent.locks包中包含以下内容:Lock接口在Java SE5之前都是靠synchronized关键字实现锁功能,而之后并发包新增了Lock接口以及实现类,使用时需要显示地获取和释放锁。Lock 实现提供了比使用 synchro...

2018-03-15 22:19:37 247 3

原创 Java中的线程池

Java中的线程池使用线程池的优点:降低资源消耗、提高响应速度、提高线程的可管理性。线程池原理线程池处理流程:if (核心线程池没满){    //创建线程执行,执行完后会去工作队列中获取新的任务task.run()}else if(工作队列没满){    //将提交的任务存储在工作队列里}else if (线程池没满){    //创建线程执行任务}else {    //其他策略处理无法执行的...

2018-03-14 10:51:24 224

原创 ConcurrentHashMap学习笔记

ConcurrentHashMap学习笔记简介ConcurrentHashMap是线程安全且高效的HashMap。我们都知道HashMap不是线程安全的,在并发编程中使用HashMap可能导致死循环。那么除了ConcurrentHashMap,还有Hashtable和Collections.synchronizedMap()方法都是线程安全的Map。Hashtable和Collections.sy...

2018-03-13 20:28:57 225

原创 NIO入门和使用

NIO入门和使用阻塞和非阻塞,同步和异步阻塞和非阻塞:程序在访问数据的时候,阻塞往往需要等待缓冲区中数据准备好才能继续处理,否则等待;非阻塞则是不论数据是否准备好都会返回。同步和异步:同步应用程序直接参与IO读写操作,同步IO方式必须阻塞在某个方法上(阻塞IO或非阻塞轮询IO的方式);而异步的IO操作交给了操作系统去处理,当IO完成后给应用程序一个通知即可。Java IO模型B...

2018-03-13 14:52:48 286

原创 Java源码阅读——TreeMap和红黑树

Java源码阅读——TreeMap和红黑树红黑树什么是红黑树红黑树是基于二叉搜索树的,为了能以较快的时间O(logN)来搜索一棵树,需要保证树总是平衡的(或者至少大部分是平衡的),这就是说对树中的每个节点在它左边的后代数目和在它右边的后代数目应该大致相等。红黑树就是这样的一棵平衡树,对一个要插入的数据项,插入例程要检查会不会破坏树的特征,如果破坏了,程序就会进行纠正,根据需要改变树的结构,从而保持...

2018-03-12 21:40:44 317 1

原创 MyBatis分页

MyBatis分页最早使用普通JDBC使用分页的时候,都是SELECT * FROM students LIMIT num1,num2;意思就是从students这个表中找第num1的记录开始往下的num2个记录。每次分页都得计算总条数,然后计算页数等等。后来使用MyBatis后, 该如何进行分页呢?当然也可以用以上的方法进行传参,但是每次遇到分页都得重写一个,很麻烦。实现MyBatis的拦截器实...

2018-03-11 14:44:50 727

原创 Java琐碎整理

Java面试笔试相关琐碎知识点,整理,持续更新。。。直到拿到offer。。。1.     静态块:用static声明,JVM加载类时执行,仅执行一次 构造块:类中直接用{}定义,每一次创建对象时执行 执行顺序优先级:静态块>main()>构造块>构造方法 父类静态成员和静态块、子类静态成员和静态块、父类构造方法、子类构造方法静态块按照声明顺序执行。2.     A.java用来运...

2018-03-09 11:30:01 254

原创 二叉树前中后序遍历——迭代和栈方式实现

二叉树前中后序遍历——迭代和栈方式实现用递归实现三种遍历方式只需改变递归顺序就可以实现任一顺序的遍历。而使用栈方式,则不同情况需要进行不同的考虑。首先,定义一个简单的二叉树节点的数据结构类:class Node {    int val;    Node left;    Node right;    public Node(int val) {        this.val = val;   ...

2018-03-08 20:12:19 10265 3

原创 MyBatis代码生成器——MyBatis Generator

MyBatis代码生成器——MyBatis GeneratorMyBatis Generator能够根据配置生成不同类型的代码,代码包含了数据库表对应的实体类、mapper接口类、mapperXML文件和Example对象等。这些代码中几乎包含了全部的表单操作方法,可以极大程度上方便我们使用MyBatis。说实话,刚刚接触MyBatis时,我不知道有这玩意这么好使,pojo和mapper.xml文...

2018-03-07 22:44:36 6948 1

原创 JVM学习笔记

Java虚拟机学习笔记GC(Garbage Collection)Java和JVM的历史1996年 SUN JDK 1.0 Classic VM,纯解释运行,使用外挂进行JIT 1997年 JDK1.1 发布,AWT、内部类、JDBC、RMI、反射 1998年 JDK1.2 Solaris Exact VMJIT 解释器混合 ,Accurate Memory Management...

2018-03-07 09:44:35 583

原创 Java源码阅读——HashMap

Java源码阅读——HashMap定义public class HashMap<K,V> extends AbstractMap<K,V>    implements Map<K,V>, Cloneable, Serializable 继承了AbstractMap抽象类,实现Map,Cloneable,Serializable接口。HashMap 是一个散列表,...

2018-03-06 15:20:41 758

原创 Java源码阅读——LinkedList

Java源码阅读——LinkedList上次介绍了ArrayList源码,自然少不了LinkedList。定义public class LinkedList<E>    extends AbstractSequentialList<E>    implements List<E>, Deque<E>, Cloneable, java.io.Seria...

2018-03-05 20:31:46 226

原创 Java源码阅读——ArrayList

ArrayList源码阅读起源这里说的起源不是ArrayList,而是插个题外话,为什么要开始源码阅读?本人研二,上周接到阿里的内推电话测评面试,20分钟左右,最后问了Java基础的ArrayList。心想,这个有啥好问的,但由于当时内心还是比较紧张的,所以说的不清不楚,说到底层说了初始为10容量,每次扩容50%,但问到每次怎么实现扩容的,当时就想着是基于数组实现的,具体怎么实现的还真一时没说上来...

2018-03-05 14:32:56 283

转载 ThreadLocal详解

概述相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误...

2018-03-05 10:33:11 181

原创 MySQL常用SQL语句

MySQL常用SQL语句一些概念关系型数据模型:建立在严格的数据概念基础上,用二维表来描述实体与实体间的联系。关系:对应通常所说的一张表元组:表中的一行属性:表中的一列主键:表中的某个属性(组),它可以唯一确定一个元组关系型数据库模型的操作:SELECTSELECT...INTO 创建一个查询表INSERT INTOUPDATEDELETEINNER JOIN 内连接LEFT JOIN 左连接RI...

2018-02-27 18:29:41 269

原创 URL和URI

URL和URI简介URI(Uniform Resource Identifier)统一资源标识符,是采用一种特定语法标识一个资源的字符串。URL(Uniform Resource Locator)统一资源定位符,URL可以标识一个资源在Internet上的位置。URL是最常见的URI。URIURI的语法为:[模式:模式特定部分]当前模式包括:data 链接中直接包含的Base64编码数据file ...

2018-02-27 14:01:39 1068

原创 数据库连接池实践——c3p0

之前转载了一个关于连接池的博客:http://blog.csdn.net/qq407388356/article/details/78869653介绍了连接池的原理。后来在Spring整合的项目中使用到了连接池的一些操作。下面以c3p0连接池与不使用连接池进行一个比较操作,使用maven比较简单获得c3p0的jar包。<dependency>     <groupId>c3...

2018-02-25 15:25:52 338

原创 Spring学习笔记-事务管理

Spring学习笔记-事务管理Spring支持两种事务管理的方式:编程式的事务管理,在实际应用中很少使用,通过TransactionTemplate手动管理事务。声明式的事务管理,使用XML配置声明,开发中推荐使用(代码侵入性最小),Spring的声明式事务是通过AOP实现的。什么是事务事务指的是逻辑上的一组操作,这组操作要么全都成功,要么全都失败。最典型的例子就是银行转账的问题。事务的特性:原子...

2018-02-12 18:01:30 758

原创 设计模式——Proxy代理模式

设计模式——Proxy代理模式Proxy代理模式 为其他对象提供一种代理,以控制这个对象的访问。代理对象起到中介作用,可以去掉功能服务或增加额外的服务。几种常见的代理模式:远程代理:为不同地理的对象提供局域网代表对象。虚拟代理:根据需要将资源消耗很大的对象进行延迟,真正需要的时候进行创建。保护代理:控制用户的访问权限。智能引用代理:提供对目标对象额外服务。 静态代理代理和被代理对象在代理之前是确定...

2018-02-11 23:34:06 1295

原创 设计模式——Adapter适配器模式

设计模式——Adapter适配器模式适配器模式适配器模式将一个类的接口,转换成客户期望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。即解决不兼容、不匹配的问题而引人的。可以作为两个不兼容的接口之间的桥梁。比如笔记本是三头插头,但现在只有两头插座,就需要一个电源适配器将三头转成两头。适配器模式有两种:类适配器模式(使用继承的适配器)和对象适配器模式(使用委托的适配器)类适...

2018-02-09 22:53:40 610

原创 设计模式——Template模板模式

设计模式——Template模板模式模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。即在父类中定义处理流程的框架,在子类中实现具体处理。工厂模式是将模板模式用于生成实例的一个典型例子。有一些通用方法的时候可以用的该模式,即有多个子类共有的方法,且逻辑相同。重要的、复杂的方法,可...

2018-02-09 21:41:19 622

原创 设计模式——Factory工厂模式

设计模式——Factory工厂模式工厂模式       实例化对象,用工厂方法代替new操作。定义一个创建对象的接口指向其实现的子类,让父类决定实例的生成方式,让子类决定实现的细节。这样有利于扩展。工厂模式是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方...

2018-02-09 10:57:01 640

原创 设计模式——Singleton单例模式

设计模式——Singleton单例模式单例模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。保证一个类仅有一个实例,并提供一个访问它的全局访问点。比如配置文件、工具类、线程池、缓存、日志对象等。优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首...

2018-02-08 23:55:03 543

原创 设计模式初步

设计模式初步设计模式简介       设计模式用来表示内部组件是如何组装的。设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。1、对接口编程而...

2018-02-08 21:53:59 589

原创 SSM整合开发(四)—高并发优化思路

SSM整合开发(四)—高并发优化思路首先感谢慕课网的老师,讲的真的很棒,学习很多书本上学不到的实用知识。学习课程的地址:https://www.imooc.com/learn/632老师的GitHub地址:https://github.com/geekyijun/seckill高并发发生在哪里?分析整个系统流程,用户进行秒杀时最感兴趣的进入详情页进行秒杀。图中红色表示可能会出现高并发的点,绿色表示...

2018-02-07 22:48:10 7379 3

原创 SSM整合开发(三)—Web层

SSM整合开发(三)—Web层首先感谢慕课网的老师,讲的真的很棒,学习很多书本上学不到的实用知识。学习课程的地址:https://www.imooc.com/learn/630老师的GitHub地址:https://github.com/geekyijun/seckill概要主要介绍前端交互设计、Restful:url满足Restful设计规范、Spring MVC、bootstrap+jquer...

2018-02-07 22:24:06 982 2

空空如也

空空如也

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

TA关注的人

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