自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(275)
  • 资源 (5)
  • 收藏
  • 关注

转载 Java过滤器与SpringMVC拦截器之间的关系与区别

今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能

2016-09-11 07:58:33 368

转载 Java 异步回调机制实例解析

什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过哈哈,看着源码,享受着这种回调在代码上的作用,真是美哉。不妨总结总结。一、什么是回调回调,回调。要先有调用,才有调用者和被调用者之间的回调。所以在百度百科中是这样的:软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。

2016-09-11 07:55:41 306

转载 sql语句中GROUP BY 和 HAVING的使用 count()

在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有 国

2016-09-11 07:02:06 690

转载 Java 进程通信

进程间通信的主要方法有: (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。 (3)信号(

2016-09-05 16:39:53 245

原创 Mysql中limit的用法详解

Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这时候我们就需要使用到limit:limit语法结构示意:SELECT * FROM  table  LIMIT [offset,] rows | rows OFFSET offsetLIMIT 子句可以被用于强制SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参

2016-08-26 08:50:57 832

原创 Mysql中limit的用法详解

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能,尽管语法逻辑很是怪异。这个功能就好比oracle里的rownum,但比mysql提供的这个LIMIT好用、好记和好理解多了,呵呵SELECT * FROM  table  LIMIT [offset,] rows | rows OFFSET offset

2016-08-26 08:46:41 143

转载 LinkedHashMap 保持有序迭代原理

之前一直有这个疑问,今天有时间就把源码看了看终于知道了原理。分享给大家也做笔记自己可以随后查看�?br style="box-sizing: inherit; -webkit-tap-highlight-color: transparent;">linkedHashMap entry 继承了hashMap.Entry 然后定义了一个before与after用来存储当前key的上一个值引用和下一

2016-08-26 08:45:28 949

转载 java并发编程学习: 阻塞队列 使用 及 实现原理

队列(Queue)与栈(Stack)是数据结构中的二种常用结构,队列的特点是先进先出(First In First Out),而Stack是先进后出(First In Last Out),说得通俗点:Queue就是电影院入场时人们排起来的进场队伍,先来的人(即:前排在前面的人)先入场,而Statck则是一队人依次进入了一个死胡同想出来,先进去(最里面)的人,必须等后面的人(后进入的人)出来了,自己

2016-08-24 11:32:40 341

转载 深入浅出 RPC - 深入篇

RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用,在前文《浅出篇》中给出了一种实现结构,基于 stub 的结构来实现。下面我们将具体细化 stub 结构的实现。RPC 调用分类RPC 调用分以下两种:

2016-08-24 11:07:28 187

转载 深入浅出 RPC - 浅出篇

近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序员会感觉 RPC 比较神秘,而一些有多年使用 RPC 经验的程序员虽然使用经验丰富,但有些对其原理也不甚了了。缺乏对原理层面的理解,往往也会造成开发中的一些误用。本文分上下两篇《浅出篇》和《深入篇》,其目标就是想尝试

2016-08-24 10:41:06 165

转载 Java Web应用中调优线程池的重要性

不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求。线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的。本文主要介绍Java线程池的使用和如何正确的配置线程池。单线程我们先从基础开始。无论使用哪种应用服务器或者框架(如Tomcat、Jetty等),他们都有类似的基础实现。Web服务的基础是套接字(socket),套接字负责监听端口,等待T

2016-08-24 07:41:51 347

转载 MQ消息队列

AMQP协议介绍AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。JMS是早期消息中间件进行标准化的一个尝

2016-08-23 23:49:17 370

转载 jsp 的四个作用域 :page、request、session和application的区别 .

1.简单说 page指当前页面。在一个jsp页面里有效 2.request 指从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。 3.Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程。 4.application它的有效范围是整个应用。 作用域里的变量,它们的存活时间是最长的,如

2016-08-23 23:20:44 234

转载 深入解析:分布式系统的事务处理经典问题及模型

编者按:数据服务的高可用是所有企业都想拥有的,但是要想让数据有高可用性,就需要冗余数据写多份。写多份的问题会带来一致性的问题,而一致性的问题又会带来性能问题,这就会陷入一个无解的死循环!这里所谓数据一致性,就是当多个用户试图同时访问一个数据库时,如果它们的事务同时使用相同的数据,可能会发生以下四种情况:丢失更新、未确定的相关性、不一致的分析和幻像读。阿里巴巴北京研发中心、商家业务部任资深专家陈皓的

2016-08-23 22:43:57 526

转载 jdbc事务和事务的隔离级别

在jdbc的使用中以最简单的jdbc的使用为例,说明了jdbc的具体用法。然而在通常项目中,需要考虑更多内容,例如事务。 事务,在单个数据处理单元中,存在若干个数据处理,要么整体成功,要么整体失败。事务需要满足ACID属性(原子性、一致性、隔离性和持久性)。原子性:所谓原子性是指本次数据处理要么都提交、要么都不提交,即不能先提交一部分,然后处理其他的程序,然后接着提交未完成提交的剩

2016-08-23 21:19:26 235

转载 Java利用Zxing生成二维码

Zxing是Google提供的关于条码(一维码、二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码1、二维码的生成   1.1 将Zxing-core.jar 包加入到classpath下。   1.2 二维码的生成需要借助MatrixToImageWriter类,该类是由Google提供的,可以将该类拷贝到源码

2016-08-23 19:32:04 267

转载 java 二维码原理以及用java实现的二维码的生成、解码

QR码生成原理(一)一、什么是QR码QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化。QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示一下:这个图如果被正确解码,应该看到我的名字和邮箱。二、QR码的特点说到QR码的特点,一是高速读取(QR就是取自“Quick Response”的首字母),

2016-08-23 19:31:16 532

转载 Java中的阻塞队列

什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 阻塞队列提供了四种处理方法:  抛出异常:

2016-08-23 16:06:14 351

转载 Java中的Copy-On-Write容器

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。

2016-08-23 15:55:48 196

原创 Java enum的用法详解

Java enum的用法详解 用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语句只支持int,char

2016-08-23 12:17:19 439

转载 详解Java中的clone方法

Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象 2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存。程

2016-08-23 12:05:59 206

原创 Java面试

别人网易内推面试Java的问题一面:发散面自我介绍tomcat集群类似Google Gson的还有什么包tomcat加载基本流程,涉及到的参数Spring、SpringMVC原理、流程Mybatis原理Hibernate了解吗,Mybatis和Hibernate的区别设计模式在spring中的使用jvm参数、调优

2016-08-22 17:47:48 488

转载 Java研发方向如何准备BAT技术面试

最近BAT等各大互联网巨头们的校招陆陆续续都准备开始了,可能对于在校的大多数学生来说,不知道如何正确衡量自己掌握的技术,更不知道BAT这样的公司会要求自己必须具备什么样的技术能力。对于Java研发方向的技术面试,这里总结了一些你必须要掌握的技术知识点,考察的内容会比这里总结的多,所以如果想要有一个很不错的offer,下面的知识点需要都具备。社招考察的内容会在此基础上增加项目经验、技术实战经验、热门

2016-08-22 17:18:28 342

转载 JAVA工程师个人职业规划

“选择重于努力,方向重于能力。”很多职场人都缺乏借助职业导师的职业智慧和职场经验为自己拨开职场迷雾,导航职业方向的意识。钟总监建议,有好像王敏这种职业困惑的职场人,最好向具有同行业职场经验的职场导师寻求职业指导,借助导师们的职业智慧和职场经验让自己少走弯路。    1、选择比能力重要   通常,作为开发工程师,一般会有以下几种职业走向。   ①走技术路线:技术高手、技术

2016-08-22 17:00:39 554

转载 海量数据处理——分治和hash映射

什么是Hash     Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数

2016-08-19 14:14:41 354

转载 JVM三种垃圾收集算法思想及发展过程

JVM垃圾收集算法的具体实现有很多种,本文只是介绍实现这些垃圾收集算法的三种思想和发展过程。所有的垃圾收集算法的具体实现都是遵循这三种算法思想而实现的。1.标记-清除算法标记-清除(Mark-Sweep)算法是最基础的垃圾收集算法。正如其名字描述的那样,该算法分为两个阶段:“标记”和“清除”。首先标记出所有可以被回收的对象,然后经过一轮垃圾回收将所有被标记的对象的内存空间释放,即清

2016-08-19 11:44:07 261

转载 Java对象的创建 —— new之后JVM都做了什么?

Java对象创建过程1. 类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有则进行相应的类加载过程。(我之后会写一篇关于类加载顺序和过程的博客,并在此补充连接地址)2. 分配内存空间类加载检查通过之后,JVM将为新生对象在堆中分配内存。对象所需内

2016-08-19 11:43:09 409

转载 MySQL数据库引擎详解

作为Java程序员,MySQL数据库大家平时应该都没少使用吧,对MySQL数据库的引擎应该也有所了解,这篇文章就让我详细的说说MySQL数据库的Innodb和MyIASM两种引擎以及其索引结构。也来巩固一下自己对这块知识的掌握。Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离

2016-08-19 11:33:14 194

原创 java中怎么判断一个字符串数组中包含某个字符或字符串

使用String.indexOf("要匹配的字符串");

2016-08-19 10:55:20 1415

转载 WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见。对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎大家拍砖啊一、跨站脚本攻击(XSS)跨站脚本攻击的原理XSS又叫CSS (Cross Site S

2016-08-19 10:47:11 202

转载 单例模式以及双检锁DCL

回想起曾经经历的一次面试,是关于设计模式的。当时自己讲了单例模式,但是并没有全面地把与单例模式相关的线程安全问题理解清楚,当时的场景,哎,往事不堪回首,不过技术终归于技术,是必须掌握滴~ 1、单例模式      关于单例模式,就不再详细叙述,想必大家都耳熟能详了,简单回顾下吧。以下是单例模式的一个例子:[java] view plain copy

2016-08-19 10:40:53 245

转载 TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图所谓的协议就是双方进行数据传输的一种格式。

2016-08-19 10:25:32 305

转载 LRUMap 源代码实现解读

本文通过对Apache Commons Collections 项目中LRUMap这个集合类的源代码进行详细解读,为帮助大家更好的了解这个集合类的实现原理以及使用如何该集合类。首先介绍一下LRU算法. LRU是由Least Recently Used的首字母组成,表示最近最少使用的含义,一般使用在对象淘汰算法上。也是比较常见的一种淘汰算法。 LRUMap 则是实现的LRP算

2016-08-19 00:00:23 359

转载 JAVA线程池原理以及常用线程池介绍

什么原因使我们不得不使用线程池? 个人认为主要原因是:短时间内需要处理的任务数量很多 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存 以下是Java自带的几种线程池: 1、newFixedThreadPool  创建一个指定工作线程数量的线程池。

2016-08-18 23:50:14 172

转载 Java并发编程:阻塞队列

Java并发编程:阻塞队列  在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。  在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(L

2016-08-18 23:36:32 253 1

转载 接口和抽象类有什么区别

接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.

2016-08-18 22:58:34 140

转载 ConcurrentHashMap使用要点

ConcurrentHashMap的简要总结:1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使用锁;2、put、remove方法要使用锁,但并不一定有锁争用,原因在于ConcurrentHashMap将缓存的变量分到多个Segment,每个Segment上有一个锁,只要多个线程访问的不是一个Segment就没有锁争用,就没有堵塞,各线程用各自

2016-08-18 22:39:12 242

转载 Java集合---ConcurrentHashMap原理分析

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅

2016-08-18 21:54:11 148

转载 Thread和同步机制的比较

ThreadLocal和线程同步机制相比有什么优势呢?ThreadLocal和线程同步机制都是为了解决多线程中相同变量的访问冲突问题。  在同步机制中,通过对象的锁机制保证同一时间只有一个线程访问变量。这时该变量是多个线程共享的,使用同步机制要求程序慎密地分析什么时候对变量进行读写,什么时候需要锁定某个对象,什么时候释放对象锁等繁杂的问题,程序设计和编写难度相对较大。  而Thre

2016-08-18 21:42:22 170

转载 Java并发编程:深入剖析ThreadLocal

Java并发编程:深入剖析ThreadLocal  想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。  以下是本文目录大纲:  一.对ThreadLocal的理解

2016-08-18 21:32:38 158

Java8.0_API.CHM

Java 8.0 API中文文档,java8.0版本最新官方中文API文档

2015-09-30

图像研究方面的一些标准图库

包括一些图像处理方面的标准图库,用于做实验

2015-06-10

JAVA API官方文档中文版

JAVA开发人员必备是CHM格式的,中文版,就是详细介绍java(j2se平台)系统包,类库的文档JavaTM 2 Platform Standard Edition 6API 规范 本文档是 Java 2 Platform Standard Edition 6.0 的 API 规范。

2015-05-08

java中的各种包

各种java中开发需要的jar包,这里全是集中数据库的

2012-11-06

Android核心技术与实例详解.pdf

android开发,有关学习android开发基础教程,初步了解android

2011-12-08

空空如也

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

TA关注的人

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