- 博客(60)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
转载 @ResponseBody处理Bean中属性值为空
在Bean的类上加上如下注解即可。@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
2017-03-14 16:45:30 628
原创 JDK中System.getProperty()方法介绍
该方法用于获得jdk现在运行的系统的一些信息,具体使用如下:java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.vendor.urlJava 供应商的 URLjava.homeJav
2016-04-24 17:02:59 816 1
转载 Java并发编程:volatile关键字解析(五.使用volatile关键字的场景)
synchronized关键字是防止多个线程同时执行一段代码,那么就会很影响程序执行效率,而volatile关键字在某些情况下性能要优于synchronized,但是要注意volatile关键字是无法替代synchronized关键字的,因为volatile关键字无法保证操作的原子性。通常来说,使用volatile必须具备以下2个条件: 1)对变量的写操作不依赖于当前值 2)该
2016-04-22 15:32:21 1011
转载 Java并发编程:volatile关键字解析(四.深入剖析volatile关键字)
在前面讲述了很多东西,其实都是为讲述volatile关键字作铺垫,那么接下来我们就进入主题。1.volatile关键字的两层语义 一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 2)禁止进行指令
2016-04-22 13:46:57 704
转载 Java并发编程:volatile关键字解析(三.Java内存模型)
在前面谈到了一些关于内存模型以及并发编程中可能会出现的一些问题。下面我们来看一下Java内存模型,研究一下Java内存模型为我们提供了哪些保证以及在java中提供了哪些方法和机制来让我们在进行多线程编程时能够保证程序执行的正确性。 在Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程
2016-04-21 17:28:17 377
转载 Java并发编程:volatile关键字解析(二.并发编程中的三个概念)
在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念:1.原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。
2016-04-21 17:23:27 452
转载 Java并发编程:volatile关键字解析(一.内存模型的相关概念)
大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就有了高速缓存
2016-04-20 17:43:41 374
原创 eclipse4.4(luna)整合maven3.3
一、去maven官网下载maven,下载地址:http://maven.apache.org/download.cgi#,下载apache-maven-x.x.x.bin.zip即可,我的电脑是win系统,如果在linux下请下载相关gz包。二、下载之后的zip包解压到一个文件目录下,如:E:\maven-3.3.9。 在环境变量中新建配置MAVEN_HOME,MAVEN_HOME配置到
2016-04-15 14:10:36 7760
原创 nginx+tomcat7+memcached服务架构实现session共享
一、Nginx安装 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574097.html二、memcached安装和启动 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574137.html三、配置Nginx实现tomcat服务的负载均衡,利用memcached服务实现session共享
2016-04-13 15:23:26 460
转载 有状态bean和无状态bean是在说什么
一个类的内部状态创建后,在整个生命期间都不会发生变化时,就是不变类。这种使用不变类的做法叫做不变模式。不变模式有两种形式:一种是弱不变模式,另一种是强不变模式。弱不变模式:一个类的实例的状态是不可变化的,但是这个类的引用的实例具有可能会变化的状态。这样的类符合弱不变模式的定义。要实现弱不变模式,一个类必须满足如下条件: 第一,对象没有任何方法会修改对象的状态,
2016-04-08 10:15:02 982
转载 深度解析Java8 – AbstractQueuedSynchronizer的实现分析(下)
本文首发在infoQ :http://www.infoq.com/cn/articles/java8-abstractqueuedsynchronizer,感谢作者liuinsect的分享。前言: 经过本系列的上半部分JDK1.8 AbstractQueuedSynchronizer的实现分析(上)的解读,相信很多读者已经对AbstractQueuedSynchronize
2016-03-28 16:24:40 346
转载 深度解析Java8 – AbstractQueuedSynchronizer的实现分析(上)
本文转载自:http://www.liuinsect.com/2014/08/07/jdk1-8-abstractqueuedsynchronizer/,感谢作者liuinsect的分享前言:Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知,通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态
2016-03-23 16:02:05 348
转载 怎么理解Condition
本文章转自:http://www.liuinsect.com/2014/01/27/how_to_understand_condition/,感谢作者liuinsect。在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占
2016-03-17 15:01:11 388
原创 解决系统提示msvcr71.dll文件丢失的错误
最近学习memcache,需要在windows7环境下安转mem服务,结果却报错,如下经过度娘发现是系统缺少了必要的系统文件,也就是msvcr71.dll这个文件,下载地址:http://www.crsky.com/soft/31101.html(自己百度也能查到)。然后将下载的文件放在:C:\Windows\SysWOW64\ 文件夹下,之后win键+R键(就是启动运行窗口),
2016-03-15 16:29:20 1994
转载 FutureTask 源码解析
版权声明:转载请注明出处。http://www.liuinsect.com/2014/02/17/FutureTask 感谢作者liuinsect。站在使用者的角度,future是一个经常在多线程环境下使用的Runnable,使用它的好处有两个:1. 线程执行结果带有返回值2. 提供了一个线程超时的功能,超过超时时间抛出异常后返回。那,怎么实现future这种超时控制呢?来
2016-03-15 15:48:27 349
原创 Java synchronize method与synchronize block的不同
在学习并发安全编程时,无意发现了一遍关于同步的文章,现记录下来。package others;public class CP { private int i = 0; public synchronized int synchronizedMethodGet() { return i; } public int synchronizedBlockGet()
2016-03-10 16:28:26 727
转载 happens-before俗解
学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。synchronized、大部分锁,众所周知的一个功能就是使多个线程互斥/串行的(共享锁允许多个线程同时访问,如读锁)访问临界区,但他们的第二个功能 —— 保证变量的可见性 —— 常被遗忘
2016-03-03 14:51:25 332
转载 Java类加载器总结
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始
2016-02-23 15:25:48 287
转载 JAVA方法和本地方法
JAVA中有两种方法:JAVA方法和本地方法JAVA方法是由JAVA编写的,编译成字节码,存储在class文件中本地方法是由其它语言编写的,编译成和处理器相关的机器代码本地方法保存在动态链接库中,即.dll(windows系统)文件中,格式是各个平台专有的JAVA方法是与平台无关的,但是本地方法不是
2016-02-23 14:10:11 341
转载 JVM系列之JVM体系(一)
前言、为什么要学习了解Java虚拟机1.我们需要更加清楚的了解Java底层是如何运作的,有利于我们更深刻的学习好Java。2.对我们调试错误提供很宝贵的经验。3.这是合格的Java程序必须要了解的内容。基于此,笔者打算出一个Java虚拟机的系列,加深自己对知识点的理解,同时也方便各位有需要的园友。一、Java虚拟机的定义Java虚拟机(Java Vi
2016-02-23 10:47:07 327
原创 正则表达式实战
先推荐一个正则学习的地址,这个博客讲的非常清晰,http://www.bejson.com/knownjson/regexJiaocheng/。我写的这篇主要是为了记录在工作中非常实用的一些正则表达式。先简单介绍一下常用的一些字符含义:^ 正则匹配的开始$ 正则匹配的结尾* 匹配出现0次或多次+ 匹配出现1此或多次? 匹配出现0此或多次x|y 匹配x或y{n} 匹配
2016-02-22 16:51:02 372
原创 Java反射与内省
1.什么是反射反射就是在运行状态把 Java 类中的各种成分映射成相应相应的 Java 类,可以动态得获取所有的属性以及动态调用任意一个方法。1).一段java代码在程序的运行期间会经历三个阶段:source-->class-->runtime2).Class对象在java中用一个Class对象来表示一个java类的class阶段Class对象封装了一个java类定义的成员变量
2016-02-18 11:53:30 297
原创 使用dom4j将xml文件转换成bean
package com.util;import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;import org.apache.commons.lang3.StringUtils;import org.dom4j.Document;import org.dom4j.DocumentExc
2016-02-03 13:32:59 1128
转载 阻塞与非阻塞,同步与异步的理解
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调用者
2016-02-02 11:11:30 294
原创 你不知道的JAVA
System.getProperty("line.separator");//获取该系统下的换行分隔符/**下边列出其他类似的方法:System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号System.out.println("Java提供商名称:" + System.getPropert
2016-01-12 11:53:14 244
原创 在ibatis中使用oracle insert all 函数
使用ibatis的iterate拼接insert all … select * from dual
2015-08-10 17:16:31 1823
转载 spring mvc与struts的区别
spring mvc与struts的区别spring3mvc与struts2比较 项目刚刚换了web层框架,放弃了struts2改用spring3mvc 当初还框架的时候目的比较单纯—springmvc支持rest,小生对restful url由衷的喜欢 不用不知道 一用就发现开发效率确实比struts2高 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置 sp
2015-03-09 15:16:40 414
翻译 JVM中各内存区域解释,以及变量的作用域解释
JVM内存分四种:1、栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源;2、堆区(heapsegment)—一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指向这个对象就回收;3、静态区(datasegment)—存放全局变量,静态变量和字符串常量,不释放
2015-01-19 16:50:51 984
原创 js中如何将字符串转化为时间,并计算时间差
在前台页面开发时通常会用到计算两个时间的时间差,先在此附上实现方法//结束时间end_str = ("2014-01-01 10:15:00").replace(/-/g,"/");//一般得到的时间的格式都是:yyyy-MM-dd hh24:mi:ss,所以我就用了这个做例子,是/的格式,就不用replace了。var end_date = new Date(end_str);//将字符
2015-01-15 15:37:16 41273
原创 Flex的mxml文件中ASCII码的使用
在mxml里如果想要让组件中的label换行需要用ASCII 码查询:转义序列 转义结果/b Backspace字符(ASCII 8)/f 走纸换页字符(ASCII 12)/n
2014-09-16 15:34:11 786
原创 Flex中Tree组件默认展开某一层
Tree展开某一层的方法:private function ExpandAll():void{ //展开整个Tree /* for each (var item:XML in this.xml.children()) myTree.expandChildrenOf(item, true); */ //展开某一层 if (!myTree.isItemOpen(XML(thi
2014-08-25 14:54:20 595
原创 Java面试题总结(二)
public class ForTest { private static int j = 0; private static boolean methodB(int k) { j += k; return true; } private static void methodA(int i) { boolean b; b = i < 10 | methodB(4);
2014-06-20 15:13:40 805
原创 JavaJDBC的简单写法包括Oracle、MySQL、SqlServer
public class JDBC { public static void main(String[] args) { //Oracle 数据库连接 Connection oracle_conn = null; Statement oracle_stmt = null; ResultSet oracle_rs = null; //SQLServer数据库连接 Conn
2014-06-19 00:47:28 633
FunnyDraw_New
2013-01-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人