
Java
文章平均质量分 78
西夏一品堂
对新技术持开放且慎重的态度,开放在于新技术到来时有自己的尝试与思考,慎重在于对没有多大价值的所谓的新技术持有自己的判断。绝大部分所谓的新技术都没有多大价值。
展开
-
ToStringBuilder动态列出javabean的信息
当你需要重载 toString 函数而不想写代码把当前类的所有成员信息列出来,可以用这个函数。原创 2014-11-23 18:32:28 · 762 阅读 · 0 评论 -
JSP 简单的layout例子
首先,在WEB-INF目录下新建tags目录,然后,在tags目录下新建文件原创 2014-05-31 09:46:45 · 3280 阅读 · 0 评论 -
JRebel + Tomcat + eclipse 实现热部署
JRebel + Tomcat + eclipse 实现热部署原创 2014-11-22 12:10:14 · 2748 阅读 · 0 评论 -
JMX简单例子
一:创建maven项目,在pom.xml里面加入如下依赖 com.sun.jdmk jmxtools 1.2.1由于该依赖在默认的maven中央仓库无法下载,所以,还必须加入如下仓库 jboss http://repository.jboss.org/maven2/ 二:创建一个MBean的接口package com.la原创 2015-07-01 23:08:58 · 2319 阅读 · 0 评论 -
maven + hessian 简单例子
项目结构如下:pom.xml 内容:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mav原创 2015-06-07 22:58:22 · 4437 阅读 · 0 评论 -
基于ZooKeeper的Dubbo注册中心的简单例子
一:安装zookeeper系统环境Ubuntu 14.04.2 LTS x64IP : 192.168.1.102下载zookeeper-3.4.6.tar.gz到目录/opt,解压mkdir /opt/zookeeper-3.4.6/datavim /opt/zookeeper-3.4.6/conf/zoo.cfg输入如下内容tickTime=2000dat原创 2015-06-07 21:42:16 · 2613 阅读 · 0 评论 -
java web项目发送404页面
有些时候,我们要向页面发送404错误页面bi原创 2014-11-22 22:15:21 · 903 阅读 · 0 评论 -
使用Fork/Join实现WordCount例子
Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架是一个比较特殊的线程池框架,专用于需要将一个任务不断分解成子任务(分叉),再不断进行汇总得到最终结果(结合)的计算过程。比起传统的线程池类ThreadPoolExecutor,ForkJoinPool 实现了工作窃取算原创 2016-09-20 14:46:56 · 2429 阅读 · 0 评论 -
Embed Tomcat8简单示例
一:项目依赖 org.apache.tomcat.embed tomcat-embed-core 8.5.5 org.apache.tomcat.embed tomcat-embed-el 8.5.5 org.apache.tomcat.embed tomcat-embed-jasper 8.5.5二:示例代码servletpackage c原创 2016-09-20 15:20:13 · 14611 阅读 · 2 评论 -
Java8 Stream经典示例
示例一:class User { private int id; private String name; public User(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String toString() {原创 2016-04-06 16:53:13 · 6947 阅读 · 0 评论 -
使用jvisualvm、jmc远程监控JVM
演示环境:jdk1.8jvisualvm和jmc都是JDK自带的监控工具。jmc监控数据比jvisualvm更加丰富。它们都在JDK bin目录中首先介绍jvisualvm的使用打开bin/jvisualvm.exe本地的JVM进程都已经识别出来了,直接点击即可监控。为了使jvisualvm功能更加强大,需要安装一些插件 运行jvisual原创 2017-06-30 13:05:19 · 20663 阅读 · 1 评论 -
Java加密解密之对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。其核心思想是,加密和解密都是同一个秘钥对称加密常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。对称加密算法的缺原创 2017-10-07 12:49:04 · 2541 阅读 · 0 评论 -
Java加密解密之非对称加密
非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。使用公钥加密的,要使用私钥解密。反之,使用私钥加密的,要使用公钥解密。和对称加密的区别是:对称加密:加密和解密时使用的是同一个秘钥非对称加密:加密和解密时使用的是不同的秘钥非对称加密与对称加密相比,其安全性更好:对称加原创 2017-10-07 13:33:23 · 1103 阅读 · 0 评论 -
Java加密解密之消息摘要
消息摘要,也叫数字摘要。它是一种单向的,不可逆的加密算法。发送方:采用单向hash函数对消息进行计算,得到摘要。发送消息和摘要。接收方:把接收的消息,按着同样的hash函数计算,新产生的摘要和发送来的原摘要进行对比。如果2个摘要不一致,说明消息不完整了。消息摘要的特点:1、无论输入的消息有多长,计算出来的摘要长度是固定的。2、相同的消息,计算出来的摘要相同。不同的消息,原创 2017-10-07 22:04:53 · 830 阅读 · 0 评论 -
Java加密解密之MAC(消息认证码)
上一篇帖子,我们讲了消息摘要(数字摘要),它是把一个文本/文件 通过摘要函数(hash函数)计算出一个结果。然后把文本/文件和摘要结果一同发给接受者接受者接收到文件之后,也进行摘要,把两个摘要结果进行对比。如果一致就说明文本/文件和摘要是一致的但是,这里有个问题,假设A把文件和摘要发给B,中途被C截获了。C把文件改了,同时把改后的文件进行摘要。然后把改后的文件和重新生成的摘要发给B原创 2017-10-08 12:40:42 · 6489 阅读 · 0 评论 -
使用Google Guava实现定时缓存功能
一:加入maven依赖 com.google.guava guava 19.0二:使用缓存方法一:package com.test.guava;import java.util.concurrent.TimeUnit;import com.google.common.cache.Cache;import com.google.common.cache.CacheB原创 2016-02-22 15:28:21 · 10059 阅读 · 0 评论 -
commons-collections集合类型-MultiMap
在日常的开发工作中,我们有的时候需要构造像Map>或者Map>这样比较复杂的集合类型的数据结构,如果是自己写,需要额外大量的代码,此时,就可以使用到commons-collections里面的MultiMap代码如下首先加入依赖: commons-collections commons-collections 3.2.2package org.osc.hazelcast.c原创 2015-11-21 21:25:58 · 1829 阅读 · 1 评论 -
手动实现RPC远程调用
java中的RPC核心思想就是:socket编程、传输Object、动态代理package com.lala.rpc;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.lang.reflect.InvocationHandler;import java.lang.ref原创 2015-06-16 22:28:43 · 1582 阅读 · 0 评论 -
JVM -XX:NewRatio、-XX:SurvivorRatio参数含义
原创 2015-06-25 21:20:37 · 71603 阅读 · 6 评论 -
java并发编程之Semaphore
信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphor原创 2015-06-27 12:09:58 · 1401 阅读 · 0 评论 -
java并发编程之CountDownLatch
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 CyclicBar原创 2015-06-26 23:41:56 · 1028 阅读 · 0 评论 -
java并发编程之CyclicBarrier
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。 CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后原创 2015-06-27 11:22:20 · 894 阅读 · 0 评论 -
final关键字对JVM类加载器的影响
众所周知,当访问一个类的变量或方法的时候,如果没有初始化该类,就会先去初始化一个类但是,当这个类的变量为final的时候,就不一定了请看下面的例子package com.lala.shop;import java.util.Random;public class App { public static void main(String[] args原创 2015-06-27 12:58:15 · 1095 阅读 · 0 评论 -
使用commons-daemon启动、关闭java程序
系统环境:CentOS 7 X64JDK1.8一:安装jsvc下载 commons-daemon的源码包http://apache.fayea.com//commons/daemon/source/commons-daemon-1.0.15-src.zip解压之后 cd src/native/unix/执行:export CFLAGS=-m64exp原创 2015-06-28 22:10:31 · 4375 阅读 · 0 评论 -
java -D参数简化加入多个jar【简化设置classpath】
1、-D= set a system property 设置系统属性。java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个。-Djava.ext.dirs有了这个,就不用一个一个的写了。如:java -Djava.ext.dirs=lib MainClass原创 2015-07-05 23:37:44 · 3137 阅读 · 1 评论 -
基于maven的openjpa简单例子
一:创建maven项目jpa整体项目构造如下:二:pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/原创 2015-07-28 14:09:23 · 1649 阅读 · 0 评论 -
httpClient4.x忽略证书直接调用
org.apache.httpcomponents httpclient 4.5代码如下:package com.lala.httpclient;import java.net.URI;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;i原创 2015-09-17 12:21:42 · 6364 阅读 · 0 评论 -
SSLServerSocket、SSLSocket简单例子
系统环境:java version "1.8.0_66" x64一:使用keytool生成服务端证书生成密钥对keytool -genkeypair -alias myserver -keystore myserver.jks输入密码123456(注意,两次输入的密码一样)从密钥对中导出证书keytool -exportcert -alias myse原创 2015-11-09 22:41:45 · 4722 阅读 · 0 评论 -
JVM跟踪类的加载
启动的时候,加上如下系统参数,即可跟踪类的加载-XX:+TraceClassLoading原创 2015-11-13 15:27:57 · 1931 阅读 · 0 评论 -
HttpClient4.x调用指定证书访问https
代码如下:package com.lala.http;import java.io.FileInputStream;import java.io.InputStream;import java.security.KeyStore;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManagerFactory;i原创 2015-11-13 22:54:28 · 3058 阅读 · 0 评论 -
JDK1.8新特性之方法引用(Method References)
方法引用的唯一用途是支持Lambda表达式的简写,不用Lambda表达式,就用不着方法引用方法引用分为4类,常用的是前三种。方法引用也受到访问控制权限的限制,可以通过在引用位置是否能够调用被引用方法来判断。具体分类信息如下:引用静态方法 ContainingClass::staticMethodName 例子: String::valueOf,对应的Lamb原创 2015-10-15 18:12:17 · 5753 阅读 · 0 评论 -
Java加密解密之数字签名
上一篇帖子,我们讲了MAC(消息认证码),它可以验证身份和防篡改。它的机制是通过通信双方都持有相同的秘钥去实现,秘钥相同摘要才相同,没有秘钥就不能生成正确的摘要信息。但是,它有个缺点,就是通信双方必须持有相同的秘钥,解决方法就是使用数字签名数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了非对称加密领域的技术实现,用于鉴别数字信息的方法原创 2017-10-08 20:36:48 · 3153 阅读 · 1 评论