05
2018
05

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 问题解决

最近线下调试银联支付时报错:javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVeri
27
2018
03

HashMap,LinkedHashMap,TreeMap的区别

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 HashMap  HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。遍历时,取得数据的顺序是完全随机的。  HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null。  HashMap不支持线程的同步(即任一时刻可以有多个线程同时写HashMap),可能会导致数据的不一致。如果需要同步,可以用 Colle
18
2018
03

Spring如何处理线程并发:ThreadLocal

SpringMVC是单例的,高并发情况下,如何保证性能的?按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但Spring的DAO模板类并未采用线程同步机制,因为线程同步限制了并发访问,会带来很大的性能损失。此外,通过代码同步解决性能安全问题挑战性很大,可能会增强好几倍的实现难度。那模板类究竟仰丈何种魔法神功,可以在无需同步的情况下就化解线程安全的难题呢?答案就是ThreadLocal!spring单例模式下用它来切换不同线程之间
03
2018
03

Java并发编程实战

一. 线程安全性1.1 活跃性问题当某个操作无法执行下去时,就会发生活跃性问题,如死锁,饥饿,活锁等1.2 会另起线程的代码Timer, servlet/JSP,RMI,swing/AWT1.3 主要同步机制Synchronizedvolatile:只提供可见性显式锁(Explicit Lock)原子变量最好将一个有关联的同步操作放在同一个线程安全类中,由一个类提供入口,在类中做好同步措施,客户端调用类时不需要再考虑同步问题,比如concurrent包下的类1.4 可变的状态变量出现线程安全问题
27
2018
01

Linux系统中JavaWeb运行环境(JDK+MySQL+Tomcat)搭建过程

平时大家开发java web程序,大部分都是在Windows下,但运行java web程序最佳的当属Linux系统了,接下来说下Java Web运行环境的搭建过程。Linux系统版本:CentOS 6.5 (百度云盘)JDK版本:jdk1.7 (百度云盘)MySQL :Percona-Server-5.6 (mysql衍生版本) (百度云盘)Tomcat版本:7.0.57 (百度云盘)Linux系统的话,可以使用WMware本地搭建一个,当然如果有一点经济基础的话,可以去买个阿里云ECS云服务器
14
2018
01

SpringBoot应用以war包方式部署到Tomcat

最近,在用springboot开发一个小应用,springboot默认提供内嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以启动。但是,有时候我们更希望一个tomcat来管理多个项目,这种情况下就需要项目是war格式的包而不是jar格式的包。接下来就开始吧!我使用的jdk和tomcat版本:IDE: Eclipse Luna 4.4.0JDK版本:1.7.0_60-eaTomcat版本:7.0.791、首先将pom.xml将打包方式改成war<packaging&
13
2018
01

闭锁CountDownLatch、栅栏CyclicBarrier、信号量Semaphore

Java 5 是Java 历史上非常重要的一个版本,它提供了泛型、for-each、自动装箱和拆箱、枚举、可变参数、静态导入、注解以及java.util.concurrent并发工具包,接下来简单介绍下并发工具包下的闭锁ConutDownLatch、栅栏CyclicBarrier、信号量Semaphore。1、闭锁ConutDownLatchjava.util.concurrent.CountDownLatch 是一个并发构造,它允许一个或多个线程等待一系列指定操作的完成。CountDownLa
06
2018
01

java中数组转为列表的几种方法,推荐第三种

java中数组转为集合List,是很基础常见的,日常开发中也经常会用到,今天整理了下,有5种方法,先列出,再慢慢道来。1、 List list = Arrays.asList(array);2、new ArrayList(Arrays.asList(array));3、Collections.addAll(arraylist, array);4、for(Element e : array) { list.add(e);}5、Use Guava :Lists.newArrayList(aStrin
06
2018
01

java常用设计模式原型模式及深浅拷贝

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。Prototype类需要具备以下两个条件:1、实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常。2、重写
06
2018
01

java中单例模式的4种实现方式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。第一种:饿汉式public class Singleton {private static Singleton instance = new Singleton();private Singl