自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 mybatis中的#和$的区别

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

2017-02-08 16:40:51 3112

转载 设计模式之装饰模式

装饰模式定义:装饰模式动态的将责任附加到对象上,若要扩展功能,装饰模式提供了比继承更有弹性的替代方案看下下面的例子,总共有两种咖啡:Decaf、Espresso,另有两种调味品:Mocha、Whip(3种设计的主要差别在于抽象方式不同)设计一:即使添加在多的调味品,咖啡依然是咖啡,在抽象的过程中并没有考虑咖啡和调味品之间的关系当咖啡和调味品的种类很多时,将会产生

2017-02-08 12:01:15 367

转载 Java关键字final、static使用总结

一、final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。        final类不能被继承,没有子类,final类中的方法默认是final的。        final方法不能被子类的方法覆盖,但可以被继承。       

2017-02-07 11:56:46 622

转载 深入分析Volatile的实现原理

引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分

2017-02-07 11:37:34 532

转载 volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们

2017-01-22 10:34:21 424

转载 常见线程问题

53道Java线程面试题下面是Java线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了

2017-01-17 18:07:39 330

转载 wait和notify区别

"wait()允许我们将线程置入“睡眠”状态",也就是说,wait也是让当前线程阻塞的,这一点和sleep或者suspend是相同的.那和sleep,suspend有什么区别呢?   区别在于"(wait)同时又“积极”地等待条件发生改变",这一点很关键,sleep和suspend无法做到.因为我们有时候需要通过同步(synchronized)的帮助来防止线程之间的冲突,而一旦使用同步,就

2017-01-17 18:02:32 1081

转载 多个线程访问共享对象和数据的方式

l如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 l如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: Ø将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个Runnable对象。每个线程对共享数据的操作方法也分配到那

2017-01-17 17:14:20 463

转载 Java 多线程 并发编程(转载)

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间

2017-01-04 15:00:31 632 1

转载 java 处理高并发(转载)

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是

2017-01-04 14:56:24 472

转载 了解悲观锁和乐观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像memcache、hiberna

2016-09-08 09:48:29 468

原创 java 关于读取excel表内的日期时间

最近任务上遇到了需要读取excel表里的日期时间,在没有添加红色框框里的代码时,读到的值为一串数字。后来搜索了资料并添加了这段代码后,就正确解析并读取到日期信息了。/** * 普通类型值设置 * * @param rows * @param obj * @param cellConfig * @throws Exception * @thr

2016-09-07 10:29:20 17304

原创 关于图片压缩

最近在做h5的图片上传 弄了还是挺久的 毕竟第一次弄。最后还是得把图片压缩这功能记录下:public static InputStream compressImg(FileItemStream fileStream, String suffix){ File file = new File("tmp.jpg"); try { file.createNewFile(); Im

2016-08-25 10:58:10 563

转载 mysql处理海量数据时的一些优化查询速度方法

最近工作上遇到需要查找大量订单数据的功能,于是就开始关注针对Mysql数据库的select查询语句的相关优化方法。      由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延

2016-07-26 15:47:12 537

原创 tomcat启动不了 报异常java.lang.ClassNotFoundException

至于为什么这样可以 我也不是很清楚了

2016-07-25 10:36:02 953

原创 eclipse 发布项目是报错 Publishing the configuration...

win7在使用Myclipse发布项目时,会出现如下两种错误:1、系统找不到指定的路径Publishing the configuration...Error copying file to C:/Program Files/Apache Software Foundation/Tomcat 7.0/backup\catalina.policy: C:\Program File

2016-07-21 10:21:38 14379 1

原创 double和float转换的问题

这是一个一分钱引发的血案。案情现场还原float f = 280.8f;System.out.println(f*100);结果是什么?结果是:28080.0f(我是这么想的)实际结果是:28079.998既然float处理有问题换double会不会有问题呢?double f = 280.8d;System.out.println(f*100);结果是:

2016-07-11 18:09:56 23525

转载 拦截器和过滤器的区别

刚好今天在群里有一位群友问到这个问题,刚好我也忘记了,也该复习一下下了 过滤器和拦截器的区别:  ①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。  ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。  ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。  ④拦截器可以访问action上下文、值栈里的对

2016-06-21 18:07:16 4910 1

原创 前端 js不知道key的情况下解析json

var json = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};for(var key in json){console.log(json[key]);}这是一个快速遍历json格式的方法

2016-05-17 11:25:18 1508

原创 java使用poi解析或处理excel的时候,防止数字变成科学计数法的方法

现在还在加班,趁有些时间就把刚刚操作excel表中遇到的一个坑的解决方法给写出了了。这个坑如题,解决方法就是使用DecimalFormat df = new DecimalFormat("0"); val = df.format(cell.getNumericCellValue()); 这个方法。/** * 普通类型值设置 * * @param rows * @

2016-05-12 18:48:35 8066 1

转载 Java 设计模式之策略模式

刚好工作上有个空档期,于是就复习了下Java模式,感谢博主分享的文章1:定义:在《head first Design Pattern》中的定义是:策略模式定义了算法族,分别分装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。2:设计原则1)   找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。2)   针

2016-05-05 18:25:30 235

转载 java 线程简介

从Java5开始,Java提供了自己的线程池。每次只执行指定数量的线程,java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。以下是我的学习过程。首先是构造函数签名如下:[java] view plain copy print?public ThreadPoolExecutor(int co

2016-05-05 11:25:51 292

转载 Java 输入/输出流的详解

无意中看到一篇比较详细介绍流的文章1.什么是IO      Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。        Java.io是大

2016-05-04 11:34:55 396

原创 redis 缓存对查询结果的使用技巧

首先,由于最近项目中用到缓存redis而且还有 查询分页的比较多,因此用到一个PageEntity的一个类,让实体类需要用的分页的时候来继承就可以了。用好这个类你的排序更酸爽。然后,how ?1、 设计表的时候,必须有这个三个字段 create_time, status, status_time2、 根据这三个字段过滤数据的场景是在是太多了

2016-04-28 15:00:36 11885

转载 关于session和cookie的文章

一、术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 session。有时候我们可以看到这样的话“在一个浏览器会

2016-04-12 17:38:47 305

原创 SpringMVC中的拦截器

公司的项目里有使用拦截器,于是就一边看代码 一边搜索资源,看看怎样使用   一、定义Interceptor实现类   SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的Handler

2016-04-06 10:30:17 800

原创 FTPClient 处理多个文件时注意添加completePendingCommand

//楼主之前做一个项目对接,要求用到操作ftp文件等功能,主要遇到的问题是当要遍历文件夹里的文件时或者下载所有文件时,如果没有使用completePendingCommand()这方//法,则只能处理一个文件,在处理第二个文件的时候(即第二次调用retrieveFileStream()方法的时候)返回null。//所以处理第二个文件前,必须使用completePendingCommand()方法

2016-03-31 11:02:29 17296

转载 java(DOM、SAX、JDOM、DOM4J)xml方式详解与比较

1.详解     1)DOM(JAXP Crimson解析器)     DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几

2016-03-18 14:52:42 391

转载 HttpClient和HttpURLConnection的区别

由于工作上遇到HttpURLConnection 所以就百度下 顺便也百度下两者的区别  给自己科普下:分析一:            在研究Volley框架的源码中,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient。我也比较好奇这么使用的原

2016-03-18 10:55:17 294

转载 Spring 整合 Redis详细

pom构建:[html] view plain?modelVersion>4.0.0modelVersion>  groupId>com.x.redisgroupId>  artifactId>springredisartifactId>  version>0.0.1-SNAPSHOTversion>    dependencies>

2016-03-07 14:22:27 856

转载 java缓存技术的介绍

一、什么是缓存1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache二、缓存的分类1、基于web应用的系统架构图2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存操作系统磁盘缓存->减少磁盘机械操作

2016-03-04 11:57:34 52551 2

转载 MySQL存储引擎--MyISAM与InnoDB区别

MyISAM 和InnoDB 讲解  InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。  以下是一些

2016-02-20 09:53:15 385

转载 Redis与Memcached的区别与简介

Redis与Memcached的区别传统MySQL+ Memcached架构遇到的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着

2016-01-26 14:38:33 448

转载 SpringMVC中添加Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。   一、定义Interceptor实现类   SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在

2016-01-12 17:01:43 835

原创 MyBatis动态SQL中trim标签的使用参数

MyBatis动态SQL中trim标签的使用  MyBatis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少。  事实上trim标签有点类似于replace效果。  trim 属性  prefix:前缀覆盖并增加其内容  suffix:后缀覆盖并增加其内容  prefixOverrides:前缀判断的条件  suffixO

2016-01-12 11:34:00 5173

原创 用js打开新的窗口

超链接Welcome等效于js代码window.open("http://www.***.com");                 //在另外新建窗口中打开窗口

2016-01-05 16:46:35 272

原创 jQuery设置select中选中的值

$("#id option[value='"+value+"']").attr("selected", "selected");

2015-12-25 12:00:24 424

空空如也

空空如也

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

TA关注的人

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