- 博客(52)
- 收藏
- 关注
转载 new HashMap(){{put(key, value);}}的解释
一、HashMap的初始化1、HashMap 初始化的文艺写法 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化: [java] view plain copy HashMap map = new HashMap(); map.put("Name", "June");
2017-05-20 10:55:21
5433
转载 Thread的中断机制(interrupt)
中断线程线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。线程会不时地检测这个中断标示位,以判断线程是否应该被中断(中断标示值是否为true)。它并不像stop方法那样会中断一个正在运行的线程。判断线程是否被中断判断某个线程是否已被发送过中断请求,请使
2017-04-15 21:31:22
802
转载 Java中Lock,tryLock,lockInterruptibly有什么区别?
ReentrantLock 锁有好几种,除了常用的lock ,tryLock ,其中有个lockInterruptibly 。先把API粘贴上来lockpublic void lock()获取锁。如果该锁没有被另一个线程保持,则获取该锁并立即返回,将锁的保持计数设置为 1。如果当前线程已经保持该锁,则将保持计数加 1,并且该方法立即返回。如果该锁被另一个线程保持,则出于线程调
2017-04-15 21:05:47
5414
转载 Java中守护线程的总结
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就
2017-04-13 22:49:41
416
原创 Java多线程中interrupt interrupted isInterrupted
/** * Created by wangxizhong on 17/4/13. */public class Main { public static void main(String[] args) throws InterruptedException { MyThread thread = new MyThread(); thread.star
2017-04-13 21:27:33
482
转载 Java多线程并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下
2017-04-13 17:56:50
508
转载 Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别
首先要明白 this.XXX 的使用场景 使用Thread.currentThread().getName()和使用this.getName()和对象实例.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线程的名称,
2017-04-13 13:42:17
660
转载 Spring 事务失效问题
只要避开Spring目前的AOP实现上的限制,要么都声明要事务,要么分开成两个类,要么直接在方法里使用编程式事务[问题] Spring的声明式事务,我想就不用多介绍了吧,一句话“自从用了Spring AOP啊,事务管理真轻松啊,真轻松;事务管理代码没有了,脑不酸了,手不痛了,一口气全配上了事务;轻量级,测试起来也简单,嘿!”。不管从哪个角度看,轻量级声明式事务都是一件解放生
2017-04-10 21:46:03
393
转载 BeanFactory与FactoryBean
原文地址:http://blog.youkuaiyun.com/is_zhoufeng/article/details/38422549首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂FactoryBean:以Bean结尾,表示它是一个Bean
2017-03-23 16:21:15
347
原创 Gradle Execution failed for task ':xxxx:findMainClass'.
bogon:smart wangxizhong$ gradle build -x testLoading.....:server:compileJava UP-TO-DATE:server:processResources UP-TO-DATE:server:classes UP-TO-DATE:server:jar:client:compileJava:client
2017-03-22 23:37:21
10922
转载 Bean实例化问题
在动态注册RMI远程调用的Bean后迟迟不进行注册,后显示在代码中getBean方法后注册成功,找到以下文章可以参考解决该问题容器启动之后,并不会马上就实例化相应的bean定义。我们知道,容器现在仅仅拥有所有对象的BeanDefinition来保存实例化阶段将要用的必要信息。只有当请求方通过BeanFactory的getBean()方法来请求某个对象实例的时候,才有可能触发
2017-03-13 17:24:29
637
原创 Java集合初始化赋值等相关问题
以下来举几个例子: Map map= new HashMap() {{ put("key1", "value1"); put("key2", "value2"); put("key3", "value3"); }};List stringList=new ArrayList(){{
2017-03-08 13:54:59
3667
原创 SpringData JPA @Query分页查询Exception问题解决方案
Caused by: org.springframework.data.jpa.repository.query.InvalidJpaQueryMethodException: Cannot use native queries with dynamic sorting and/or pagination in method public abstract org.springframework.
2017-02-16 16:50:11
8587
转载 MYSQL explain详解
explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchome_
2017-02-14 14:16:02
340
转载 使用 RMI + ZooKeeper 实现远程调用框架
在 Java 世界里, 有一种技术可以实现“跨虚拟机”的调用,它就是 RMI(Remote Method Invocation,远程方法调用) 。例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进行远程调用,就像调用本地方法一样,这就是 RMI。在分布式系统中,我们使用 RMI 技术可轻松将 服务提供者(Service Provider)与 服务消费
2017-01-20 17:32:21
428
转载 spring中注册bean(通过代码动态注册)
//将applicationContext转换为ConfigurableApplicationContext ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext; // 获取bean工厂并转换为DefaultLi
2017-01-20 17:21:08
787
转载 RMI(Remote Method Invocation)初窥门径
【引言】作为J2EE核心技术之一的RMI,它允许客服端调用一个远程服务器的组件,并返回调用结果(返回值或异常),可以完成分布式应用。整个调用过程由RMI实现,对使用者透明。【Stub和Skeleton】1、要了解RMI原理,Stub和Skeleton是必须先理解的两个概念。以下引用别的一段话:做个比方说明这两个概念。 假如你是A,你想借D的工具,但是又不认识D的管家C,
2017-01-20 16:34:02
336
转载 Java RMI远程服务调用
RMI的定义RPC (Remote Procedure Call):远程方法调用,用于一个进程调用另一个进程中的过程,从而提供了过程的分布能力。RMI(Remote Method Invocation):远程方法调用,即在RPC的基础上有向前迈进了一步,提供分布式对象间的通讯。允许运行在一个java 虚拟机的对象调用运行在另一个java虚拟机上对象的方法。这两个虚拟机可以是运行在相同计算机
2017-01-20 11:13:55
689
转载 Spring MVC 4.2 增加 CORS 支持
Spring MVC 4.2 增加 CORS 支持跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求。比如说,域名A(http://domaina.example)的某 Web 应用程序中通过标签引入了域名B(http://domainb.foo)站点的某图片资源(http://domainb.foo/
2017-01-20 09:45:35
355
转载 zookeeper 最佳教程
1、Zookeeper深入理解(一)(概念及基础)http://hao0.me/zookeeper/2015/02/28/zk-basic.html2、Zookeeper深入理解(二)(编程实践之Master-Worker)http://hao0.me/zookeeper/2015/03/02/zk-program-master-worker.html3、Zookeeper
2017-01-17 01:41:39
883
转载 Exception异常处理反模式
应该抛出一个异常还是应该返回一个null?是抛出checked类型异常还是抛出unchecked类型异常?对于很多中级的开发人员而言,异常处理往往是一件事后才去考虑的事情。他们经常使用的异常处理方式是try/catch/printStackTrace()。当这些开发人员想要尝试更有新意的异常处理方式时,常常会陷入一些常见的异常处理反模式中。 随着1998年《反模式:危机中软件、架构和项目的重
2017-01-17 01:39:47
1091
转载 RabbitMQ消息处理机制fanout,direct,topic,header
RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储RabbitMQ提供了四种Exchange:fanout,direct,topic,headerheader模式在实际使用中较少,本文只对前三种模式进行比较。 性能排序:fanout > direct >> topic。比例大约为11:10:6 一.
2017-01-15 13:21:12
3968
转载 Docker网络原则入门:EXPOSE,-p,-P,-link
编者的话】构建多容器应用程序,需要定义网络参数来设置容器间的通信,可以通过EXPOSE或者-expose暴露端口、使用-p发布特定端口,还可以用-link等等来实现,这些方法可能会得到一样的效果,但是这些方法之间是否有不同,应该选择什么样的方法,将是本文讨论的重点内容。如果你已经构建了一些多容器的应用程序,那么肯定需要定义一些网络规则来设置容器间的通信。有多种方式可以实现:可以通过--
2017-01-14 21:50:02
1533
转载 Java 8 Optional
我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了OptionalUser> user = ...... if (user.isPresent()) { return user.getOrders();} else
2017-01-07 21:01:33
343
转载 java 二进制兼容性概述
现在的软件越来越依赖于不同厂商、作者开发的共享组件,组件管理也变得越来越重要。在这方面,一个极其重要的问题是类的不同版本的二进制兼容性,即一个类改变时,新版的类是否可以直接替换原来的类,却不至于损坏其他由不同厂商/作者开发的依赖于该类的组件? Java二进制兼容性概念的主要目标是推动Internet上软件的广泛重用,同时它还避免了大多数C++环境面临的基础类脆弱性问题——例如,在
2017-01-07 19:39:23
677
转载 @SuppressWarnings
一、前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @SuppressWarnings("unused") 去除这些“感叹号”。 二、 @SuppressWarings注解
2017-01-07 17:35:36
419
转载 Modifier静态属性
JAVA 反射机制中,Field的getModifiers()方法返回int类型值表示该字段的修饰符。其中,该修饰符是java.lang.reflect.Modifier的静态属性。对应表如下:PUBLIC: 1PRIVATE: 2PROTECTED: 4STATIC: 8FINAL: 16SYNCHRONIZED: 32VOLATILE: 64
2017-01-05 15:07:02
945
转载 mysql获取某个表的所有字段名
mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库中所有表的字段信息。知道这个表后,获取任意表的字段就只需要一条select语句即可。例如:select COLUMN_NAME from information_schema.COLUMNSwh
2016-12-09 18:02:57
1140
转载 ThreadLocal 那点事儿
ThreadLocal,直译为“线程本地”或“本地线程”,如果你真的这么认为,那就错了!其实,它就是一个容器,用于存放线程的局部变量,我认为应该叫做 ThreadLocalVariable(线程局部变量)才对,真不理解为什么当初 Sun 公司的工程师这样命名。早在 JDK 1.2 的时代,java.lang.ThreadLocal 就诞生了,它是为了解决多线程并发问题而设计的,只不过设计得
2016-12-06 10:36:57
440
转载 FreeMarker的if标签
if, else, elseif Page Contents SynopsisDescriptionSynopsiscondition> ...condition2> ...condition3> ...... ...Where:condition, condition2, ...etc.: Expression
2016-12-05 18:04:55
4197
转载 FreeMarker 数字输出中的逗号问题
Long i=100000000l; Map model=new Map(); model.put("t",i); 在freemarker中显示为100,000,000 想按原样输出时${t} 显示为100,000,000 ${t?c} 显示为100000000 如果不加?c 默认情况下freemarker会将数字用逗号分隔 如何去掉","逗号呢.,加上"?c"就可以了
2016-12-05 18:04:09
1457
转载 RabbitMQ在Linux Centos安装步骤
rabbitmq:MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序的通信方法,在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。安装:坎坷历程 (erlang不建议源码安装,问题会有,自行决策)新搭的一台CentOS mini安装,里面缺少很多应用yum i
2016-12-03 23:07:56
523
转载 FileMode文件模式
一.FileMode.AppendAppend追加:如果文件存在,则打开文件,把指针指到文件的末尾;如果不存在,则新建文件二.FileMode.CreateCreate:新建如果文件存在,则覆盖原有文件,把指针指到文件的开始,文件的创建日期会更新;如果文件不存在,则新建文件三.FileMode.CreateNewCreateNew:新
2015-11-19 00:28:22
4882
原创 泛型List<T>方法属性
这两天上课正好学泛型和ArrayList之间的区别,在家看了看深入理解和李志的学习笔记,感觉泛型内容很多,在深入理解中就占了三四十页,目前小懂的一些方法与大家分享~后续学习深入我还会补充首先介绍一个List的方法 AsReadOnly() 此方法返回的是一个只读接口,实例: List num = new List();//首先创建一个泛型集合
2015-11-06 00:03:04
1013
转载 关于 4.5中新增的异步编程新特性总结
async & await关于 4.5中新增的异步编程新特性总结1.用async标记的异步方应该使用await关键子来制定挂起点。await操作符会告诉编译器,这个async方法在完成之前,后面的代码无法继续执行,同时,控制权转移到async方法的调用者2.一个async方法里通常包含一个或多个的对应的await操作符,但如果没有await表达式也不会导致编译错误。但如果调
2015-11-02 01:32:24
405
转载 C#中IDisposable
本文导读:C#中IDisposable接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾回收器会自动释放分配给该对象的内存。但无法预测进行垃圾回收的时间。另外,垃圾回收器对窗口句柄或打开的文件和流等非托管资源一无所知。将此接口的Dispose方法与垃圾回收器一起使用来显式释放非托管资源。当不再需要对象时,对象的使用者可以调用此方法。在Net中,由GC垃圾回收线程掌握对象资源的释
2015-11-01 23:05:23
481
原创 空合并操作符
空合并操作符即??操作符,他会对左右两个操作数进行判断,如果左边的数不为null,就返回左边的数,反之则返回右边的数,这个可空操作位运算符可以用于可空类型,亦可以用于引用类型,但是不能用于值类型,因为??运算符会将其左边的数与null进行比。使用??空合并运算符可以很方便的设置默认值,比变了通过if和else语句来进行判断,从而简化了代码行数,提高了代码的可读性。public static v
2015-11-01 20:50:40
853
转载 (抽象)类和接口细节分析
抽象类是否可继承接口?抽象类里面可以包括抽象方法和非抽象方法,而接口只是定义了方法的原型,没有方法的具体定义。从这方面来分析,抽象类是可以继承接口的。 抽象类继承接口后,一定要实现接口中的成员方法么?答案是否定的。抽象类继承接口后,可以实现接口中的成员方法,也可以不实现。如果不实现接口中成员方法,只需将该方法声明为abstract类型就可以了。int
2015-11-01 15:09:01
512
转载 C# 结构体 struct
C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数据成员和方法成员。 结构和类的区别: 1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。 2、结构类型直接存储成员数据,让其他类的数据位于对中,位于栈中的变量保存的是指向堆中数据对象的引用。 C#中的简单类型,如int、double、bool等都是结构类
2015-11-01 00:25:00
455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人