java
秦汉唐天下
这个作者很懒,什么都没留下…
展开
-
LMAX Disruptor学习
原作者译文:http://ifeve.com/disruptor/其它学习地址:https://juejin.im/post/5b5f10d65188251ad06b78e3http://blog.sina.com.cn/s/blog_68ffc7a4010150yl.htmlhttps://tech.meituan.com/2016/11/18/disruptor.html...转载 2019-07-20 18:11:13 · 333 阅读 · 0 评论 -
SimpleXML详细用法2
[四]、可选的非强制性的元素或属性 1.java beanJava代码 package michael.serialization.simplexml; import java.util.Date; import org.simpleframework.xml.Attribute; import org.simpleframework...转载 2014-02-25 10:43:56 · 176 阅读 · 0 评论 -
SimpleXML详细用法1(转)
[一]、简单bean的序列化和反序列化 1.java bean Java代码 package michael.serialization.simplexml; import java.util.Date; import org.simpleframework.xml.Attribute; import org.simplefram...转载 2014-02-25 10:43:02 · 222 阅读 · 0 评论 -
<context>与<init>的区别与作用
<context-param>的作用:web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>2.紧接着...转载 2014-02-25 10:48:57 · 204 阅读 · 0 评论 -
Java包装类
今天My colleague问我一个让他头疼的Java question,求输出结果 代码如下:/** * * @author DreamSea 2011-11-19*/public class IntegerTest {public static void main(String[] args) { objPoolTest(); }pub...转载 2014-02-25 10:59:49 · 78 阅读 · 0 评论 -
用 Quartz 进行作业调度
现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展。作业调度是现代系统中对 Java 应用程序的一般要求,而且也是对 Java 开发人员一贯的要求。虽然目前的调度技术比起原始的数据库触发器标志和独立的调度器线程来说,已经发展了许多,但是作业调度仍然不是个小问题。对这个问题最合适的解决方案就是来自 OpenSymphony 的 Quartz API。...转载 2014-02-25 11:01:18 · 71 阅读 · 0 评论 -
Quartz简单的任务管理类
import java.text.ParseException;import org.quartz.CronTrigger;import org.quartz.Job;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.Sched...转载 2014-02-25 11:02:45 · 106 阅读 · 0 评论 -
log4j.properties文件各参数含义与配置
以下是配置文件log4j.properties的一些属性:log4j.rootLogger=WARN, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output t...转载 2014-02-25 11:04:06 · 132 阅读 · 0 评论 -
Log4j使用指南
1 概述本文档是针对Log4j日志工具的使用指南。包括:日志介绍、日志工具介绍、Log4j基本使用、Log4j的高级使用、Spring与log4j的集成等。并进行了举例说明。本文档适合所有Java开发人员。2 日志介绍存储软件程序、服务或操作系统产生的消息记录的文件。电脑里的日志是指日志数据可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。要保...转载 2014-02-25 11:05:00 · 103 阅读 · 0 评论 -
JAVA String.format
format参数中可以包含不需要转化的字符串,这些字符串是你写什么,最终就输出什么。同时还包含一些特殊格式的内容,来指定将哪个对象来转换,以及转 换成什么形式。这种特殊的格式通通以%index$开头,index从1开始取值,表示将第index个参数拿进来进行格式化。1.对整数进行格式化:%[index$][标识][最小宽度]转换方式 我们可以看到,格式化字符串由4部分组成,其中%[ind...转载 2014-02-20 11:59:22 · 238 阅读 · 0 评论 -
jdk8 jvm调优参数配置
1.由于jdk8开始,没有了永久区的概念,所以在jvm参数配置上不再需要-XX:PermSize-XX:MaxPermSize的配置了2.metaspace,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm相关的参数有两个CompressedClassSpaceSize和MaxMetaspaceSize(1)CompressedClassSpace...转载 2018-10-09 14:17:48 · 13467 阅读 · 1 评论 -
idea resin
1.resin.propertiesweb_admin_enable : true新增(其中admin_user和admin_password为admin-users.xml里的配置)admin_user : adminadmin_password : {SSHA}rN8Bggx0Xw8CXQwY8ilX529uoOC6zgqYadmin_external : truead...原创 2014-02-25 11:34:17 · 346 阅读 · 0 评论 -
java动态代理和cglib代理学习
转自:https://blog.csdn.net/flyfeifei66/article/details/81481222转载 2019-07-14 13:37:51 · 215 阅读 · 0 评论 -
IntelliJ IDEA快捷键收藏
转自:http://www.cnblogs.com/robbinluobo/p/8559322.html%20转载 2019-07-09 10:26:07 · 146 阅读 · 0 评论 -
log4j2学习笔记
一.配置位置1.log4j2配置格式上与log4j已经不同了,log4j2不再支.properties格式,只能是.xml,.json或.jsn2.log4j2的配置文件需命名为log4j23.默认会在classpath里寻找log4j2的配置文件,可在web.xml里按如下配置<context-param> <param-name>log4jCo...原创 2019-05-13 17:12:11 · 683 阅读 · 0 评论 -
Jvm gc学习
一、基础概念1.连续的垃圾回收器又叫串行GC,在回收时只会使用一个cpu核进行操作,会stop the world2.并行GC,使用多核操作,GC任务会被分成多个子任务,在各个cpu核心上执行,这样可以让GC时间减少,但增加了复杂度,会有内存碎片产生的可能3.并发,GC可以和应用一起执行,大部分GC时间不用stop the world,但在并发的时需要做一些额外的并发处理,对象的引用状...原创 2019-05-11 14:24:42 · 148 阅读 · 0 评论 -
java linux查看线程问题
当线上java服务处于无响应,或占用cpu过高时,可以使用以下命令排查问题1.jps使用jps -l查看完整的java进程ID和启动主类的包名或jar的完整路径jps -v输出jvm完整参数2.jstackjstack -lpid 1>/tmp/jstack.log输出java进程的堆栈信息,-l打印关于锁的附加信息,当线程挂起,无法打印的时候,使用-F强制打...原创 2019-05-11 13:07:38 · 3545 阅读 · 0 评论 -
logback学习笔记
logback配置如下<?xml version="1.0" encoding="UTF-8"?><!-- 级别从高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL --><!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 --><...原创 2019-05-20 18:28:12 · 202 阅读 · 0 评论 -
多版本jdk时 jetty8+jdk1.7+gradle
最近由于新接手的项目使用的是jetty8+jdk1.7组合,与之前服务器上配置的环境不一样,最近只好修改jetty和gradle配置实现jdk的兼容性1.更改gradle编译jdk在build.gradle目录下添加gradle.properties和local.properties两个文件,文件内容都为指定jdk路径org.gradle.java.home=/opt/local/j...原创 2018-12-06 18:59:19 · 660 阅读 · 0 评论 -
Mac同时装jdk1.7和jdk1.8
1.通过which java命令,我们可以看到,java的目录为/usr/bin/java,在此目录下,我们可以看到java文件都是一些软链接,这代表我们可以切换java版本2.直接安装jdk1.8和jdk1.7,其中jdk1.7官网已隐藏下载地址,下载地址如下:https://www.oracle.com/technetwork/java/javase/downloads/java-ar...原创 2018-12-03 17:34:45 · 570 阅读 · 0 评论 -
java maven resin
1. java首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、“path”、“CLASSPATH”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和CLASSPATH是不存在的。一:点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,...原创 2014-02-25 11:35:20 · 99 阅读 · 0 评论 -
Maven的安装、配置
1 在Windows上安装Maven 2.1.1 检查JDK安装在安装Maven之前,首先要确认你已经正确安装了JDK。Maven可以运行在JDK 1.4及以上的版本上。本书的所有样例都基于JDK 5及以上版本。打开Windows的命令行,运行如下的命令来检查你的Java安装:C:\Users\Juven Xu>echo %JAVA_HOME%C:\Users\Juven X...转载 2018-10-19 13:59:42 · 187 阅读 · 0 评论 -
何为java nio
nio 是 java New IO 的简称,也被说成是nonblocking(非阻塞) IO 的简称,在 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下:– 为所有的原始类型提供 (Buffer) 缓存支持。– 字符集编码解码解决方案。– Channel :一个新的原始 I/O 抽象。– 支持锁和内存映射文件的文件访问接口。– ...转载 2014-02-25 15:04:49 · 71 阅读 · 0 评论 -
windows luajava安装
最近公司开发需要,需要在java中使用lua1.首先,下载luajava下载地址:http://luaforge.net/projects/luajava/最开始是下的luajava-1.1-win32-lua51.zip,将里面的jar包放入工程依赖包里,但总是提示出错org.springframework.web.util.NestedServletException: H...原创 2018-10-18 09:55:27 · 598 阅读 · 0 评论 -
linux下安装protobuf
1.去官网下载安装包https://github.com/google/protobuf/releases2.解压安装包,并进入安装包3.执行以下命令./configure --prefix=/opt/local/protobufmakemake check && make install4.修改/ect/profile####### add proto...原创 2018-10-18 09:53:31 · 732 阅读 · 0 评论 -
windows下使用protobuf
1.下载protobufhttps://github.com/google/protobuf/releases选择protoc-xxx-win32.zip下载2.将解压出来的protoc.exe放在一全英文路径下,并把其路径名放在windows环境变量下的path下,同时添加proto_path,值为protoc.exe的路径(此处设置并示成功,最后简单粗爆的放在了C:\Windows...原创 2014-04-17 16:46:24 · 145 阅读 · 0 评论 -
windows 配置java maven resin
1. java首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、“path”、“CLASSPATH”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和CLASSPATH是不存在的。 一:点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵...原创 2018-10-18 09:49:33 · 151 阅读 · 0 评论 -
Gradle打包
1.打包普通jar依赖包apply plugin: 'java'////////依赖设置////////dependencies { compile group: 'org.jboss.netty', name: 'netty', version: '3.2.7.Final'}////////测试设置////////task testAll() { //命令行执...原创 2018-10-18 09:48:20 · 767 阅读 · 0 评论 -
JVM内存调优参数相关说明
1.1 多功能养鱼塘-JVM内存 大鱼塘O(可分配内存): JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。 小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, ...转载 2014-10-11 16:32:57 · 449 阅读 · 0 评论 -
JVM内存配置详解
转自:http://www.open-open.com/lib/view/open1324736648468.html基本概念 堆/Heap JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Windows下为2G,而Linux 下为3G;64Bit的就没有这个限制。 JVM初始分配的内存由-Xms指定,默认是物理内存的1/64但小于1G。 JVM最大分配的内存由-Xmx指定...转载 2014-10-11 11:49:13 · 113 阅读 · 0 评论 -
jdk安装信任自签名证书
最近服务端联调方式改为了https,使用了openssl自签名证书,但在windows上跑测试时,会报错sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to fin...原创 2017-02-24 17:34:24 · 1535 阅读 · 0 评论 -
Ketama一致性Hash算法
转自:http://langyu.iteye.com/blog/684087一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多Memcached server上的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删Memcached Server...转载 2018-10-19 13:59:13 · 383 阅读 · 0 评论 -
ReentrantLock与synchronized对比
多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和 volatile 。在简化与平台无关的并发类的开发的同时,它决没有使并发类的编写工作变得更繁琐,只是使它...转载 2018-10-19 13:59:19 · 142 阅读 · 0 评论 -
几种java定时任务调度的区别
Timer相信大家都已经非常熟悉 java.util.Timer 了,它是最简单的一种实现任务调度的方法,下面给出一个具体的例子:清单 1. 使用 Timer 进行任务调度package com.ibm.scheduler; import java.util.Timer; import java.util.TimerTask; public class TimerTes...转载 2018-10-19 13:59:25 · 1150 阅读 · 0 评论 -
Runnable和Callable区别
在Java5之后,任务分两类:一类是实现了Runnable接口的类,一类是实现了Callable接口的类。两者都可以被 ExecutorService执行,但是Runnable任务没有返回值,而Callable任务有返回值。并且Callable的call()方法只能通过ExecutorService的(<T> task) 方法来执行,并且返回一个 <T><T>,...转载 2014-02-25 15:26:17 · 197 阅读 · 0 评论 -
ExecutorService的execute和submit方法
1、接收的参数不一样2、submit有返回值,而execute没有Method submit extends base method Executor.execute by creating and returning a Future that can be used to cancel execution and/or wait for completion. 用到返回值的例子,比...转载 2014-02-25 15:39:12 · 183 阅读 · 0 评论 -
Servlet 单例多线程
Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例);2.容器初始化化Servlet主要就是读取配置文件(例如tomcat,可以通过servlet.xml的<Connector>设置线程池中线程数目,初始化线程池...转载 2018-10-19 13:59:37 · 112 阅读 · 0 评论 -
java 排序测试
/** * 排序测试 */public class SortTest { /** * 升序排列 */ public static final int SORT_TYPE_AEC = 1; /** * 降序排列 */ public static final int SORT_TYPE_DEC = 2; pu...原创 2014-03-05 11:18:17 · 136 阅读 · 0 评论 -
Protocol Buffer技术详解
该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流。需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一...转载 2014-03-31 15:45:40 · 127 阅读 · 0 评论 -
mongodb java 部分示例
package com.commons.core.storage.mongoDb;import com.commons.core.CommonErrorCode;import com.commons.core.storage.mongoDb.config.MongoDbConfig;import com.commons.core.storage.mongoDb.config.MongoD...原创 2014-08-05 10:15:17 · 117 阅读 · 0 评论