自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

转载 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.util.Stac

import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;/* Created by Flynnon on 17-2-25. 对二叉树的递归定义、前序、后序、中序、层序遍历方法的归纳 *//** * 定义节点类 * 为了简单就不定义...

2018-06-14 18:30:31 2004

原创 redis实现分布式锁

public class RedisTool {private static final String LOCK_SUCCESS = "OK";private static final String SET_IF_NOT_EXIST = "NX";private static final String SET_WITH_EXPIRE_TIME = "PX";/** * 尝试获取分布式...

2018-04-17 17:13:13 257

原创 zk实现的分布式锁

/** * 基于zookeeper特性实现分布式锁 * * @author huangwu * */public class DistributedLock implements Lock, Watcher {private ZooKeeper zk = null;// 根节点private final String ROOT_LOCK = "/locks";/...

2018-04-17 17:10:24 336

原创 Java 应用问题排查

基本步骤是 1、先看程序的内存占用情况,如果原先是2G,现在是4G,那内存肯定异常 2、判断数据库连接占用了多少内存,如果连接占用内存很大,可能是查询语句有问题,查询的数据太大了,或者脏数据,导致程序内存过大 3、看日志,分析是否有堆内存异常或者栈内存溢出 4、用jdk自带的jvisiovm工具分析 5、获取dump文件,查看内存中哪些对象较多 6、然后看看这些对象和gc root之间...

2018-02-28 10:24:09 306

转载 Spring-bean 的生命周期

spring容器的生命周期: (a)在单例情况下: 1、由spring容器创建对象 2、spring容器调用初始化方法 3、客户点调用该对象的某些方法 4、关闭spring容器的时候,执行摧毁方法(b)在多例的情况下: 1、由spring容器创建对象 2、spring容器调用初始化方法 3、客户点调用该对象的某些方法...

2018-02-28 09:23:49 379

转载 JAVA 回调机制

public class SuperCalculator{ public void add(int a, int b, Student xiaoming) { int result = a + b; xiaoming.fillBlank(a, b, result); }}public class Student{ private

2017-11-06 14:49:42 208

转载 Pg数据库比较时间大小

postgresql 比较两个时间差大于 N个小时摘要: PG 中时间想减后为interval ,比较两个时间大于某个小时或者分钟等可以直接通过interval来实现 example1: – 判断两个时间差大于4个小时 select timestamp ‘2013-11-11 10:00:00’ - timestamp ‘2013-11-08 12:00:00’ > interval ‘4 h

2017-11-02 10:49:36 20788

原创 centos 下配置ftp服务后 xftp工具无法上传与下载

修改 vsftp.conf 相关配置查看ftp的Selinux状态: sestatus -b|grep ftp设置状态: setsebool -P ftp_home_dir on重启ftp服务: serivce vsftpd restart

2017-10-13 14:21:02 782

转载 PG数据库查看索引使用情况

select relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch from pg_stat_user_indexes order by idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;select relname, indexrelna

2017-08-04 15:15:17 5392

原创 日期注解格式

@DateTimeFormat(pattern=”yyyy-MM-dd”)

2017-07-11 11:16:32 3800

原创 Java8 Stream 基本操作示例

package Stream;import java.util.ArrayList;import java.util.Arrays;import java.util.IntSummaryStatistics;import java.util.List;import java.util.Optional;import java.util.OptionalInt;import java.ut

2017-07-06 16:52:24 470

原创 Java list add方法和addAll方法效率

结论是: 在数据量较小时,add方法配合for循环遍历比addAll来得快.但是在大量数据时,addAll的方法的效率更高.list.addAll()是浅拷贝,只是将内存中的地址进行了拷贝,指向了原先list的末尾做了拼接.

2017-07-06 14:05:20 14125

原创 eclipse智能提示

java->Editor->content Assist .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW

2017-07-06 09:37:10 211

转载 Java 引用方式

⑴强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ps:强引用其实也就是我们平时A a = new A()这个意思。⑵软引用(SoftReference)如果一个对象只具有软引用,

2017-07-04 14:28:55 156

原创 volatile关键字作用

1.保持可见性 2. 禁止进行指令的重排序(volatile关键字能确保变量在线程中的操作不会被重排序而是按照代码中规定的顺序进行访问)

2017-06-30 15:19:24 8908 2

转载 CRC8校验 java实现

以下为CRC8的实现package server;/** * CRC8相关计算 * encode: utf-8 * * @author trb * @date 2013-11-21 */ public class CRC8 { static byte[] crc8_tab = { (byte) 0, (byte) 94, (byte) 188, (byte

2017-06-28 15:29:17 7007 3

转载 eclipse中server location灰色,如何修改?

Eclipse中tomcat service设置 选择window —-show view---services可以看到服务的面板 双击tomcat进入配置界面Service Locations(Specify the server path (i.e. catalina.base) and deploy path. Server must be published with no module

2017-05-09 20:34:21 749 1

原创 com.jacob.com.ComFailException: VariantChangeType failed

调用jacob组件出错: com.jacob.com.ComFailException: VariantChangeType failed在C:\Windows\System32\config\systemprofile下创建文件夹Desktop即可!

2017-04-25 16:22:22 1657 1

原创 Socket通信之NIO

这里有一个完整的示例,打开一个Selector,注册一个通道注册到这个Selector上(通道的初始化过程略去),然后持续监控这个Selector的读事件ServerSocketChannel ssChannel = ServerSocketChannel.open(); //2. 切换非阻塞模式 ssChannel.configureBlocking(false);

2017-04-20 19:43:31 289 1

原创 Socket长连接实现思路

长连接的正确实现方式  1、不关闭流实现长连接?    流关闭了而不关闭Socket,还是无法达到长连接的效果的,所以,要长连接,流必须不能关闭!那么,是不是直接不关闭流,然后每次要发消息就直接往流里面任进去数据,然后调用flush()方法强制刷新就行了?其实不行的,这样客户端是无法正常接收信息的,你会发觉就算服务端flush了,客户端还是会一直在read方法那里阻塞!具体原因各位可以看一下java

2017-04-19 10:11:17 6258 1

转载 socket取流阻塞

刚开始感到很奇怪,大文件的复制不都是这样做的么,怎么还会出错,在网上搜了一下,socket在close后,才会发送给另一端结束符EOF,从而才会read到流结尾信息而返回-1。 以前写java聊天功能的时候其实遇到过这样的问题的,要退出聊天发一个特定的字符,然后在break出循环,接着会close掉socket,这样另一端的会由于这端的socket被close掉也跳出循环。只是现在由于只写服务端

2017-04-13 13:40:01 1651 1

转载 ActiveMQ

在 Java 里有 JMS 的多个实现。其中 apache 下的 ActiveMQ 就是不错的选择。用 ActiveMQ 最好还是了解下 JMSJMS 公共点对点域发布/订阅域ConnectionFactoryQueueConnectionFactoryTopicConnectionFactoryConnectionQueueConnectionTopicConnectionDestinationQ

2017-04-01 13:37:23 195

转载 Redis工具类

import org.apache.log4j.Logger;import org.apache.log4j.chainsaw.Main;import com.alibaba.fastjson.JSONObject;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clien

2017-03-30 19:13:51 1532

转载 Ehcache

一、简介 非常简单,而且易用。 ehcache 是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,而且是hibernate 默认的缓存provider。ehcache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 ehcache可以直接使用。也可以和Hibernate对象/关系框架结合使用。还可以做Servl

2017-03-28 15:01:45 267

原创 Pg数据库导出表结构

SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a .atttypmod AS lengthvar,a.attnotnull AS notnull,c.relnamefrom pg_class c,pg_attribute a,pg_type t where a.attnum>0 and a.att

2017-03-21 20:19:29 5556

转载 十六进制数据与字符串的相互转换

public static String bytesToHexString(byte[] src){ StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; }

2017-03-21 14:26:48 1073

转载 Java ExecutorService

(1). newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。示例代码如下:ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); for (int i = 0; i < 10; i++) { final int inde

2017-03-20 14:29:15 1790 2

转载 @ResponseBody 注解

作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。使用时机: 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

2017-03-18 16:16:55 372

转载 mybatis choose标签的使用

有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 whe

2017-03-18 09:26:19 35640 1

转载 jquery 面包屑导航

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>YanCms左侧导航栏

2017-03-17 10:17:32 7567

转载 @Param注解的用法解析

实例一 @Param注解单一属性 dao层示例 Public User selectUser(@param(“userName”) String name,@param(“userpassword”) String password); xml映射对应示例<select id=" selectUser" resultMap="BaseResultMap"> select * fr

2017-03-16 15:18:02 10999 3

转载 mybatis中的CDATA标签的用法

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。 在 XML 元素中,”<” 和 “&” 是非法的。 “<” 会产生错误,因为解析器会把该字符解释为新元素的开始。 “&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始。 某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可

2017-03-16 11:21:39 1146

转载 Maven的使用

maven作为一个项目管理的工具,它的内置依赖管理和Repository实现了依赖的管理和统一存储,我们所需要的项目的jar包和它的依赖包都在maven的仓库中,这里在maven安装目录下的conf文件夹里的setting.xml文件是建立仓库必须的,下面介绍下仓库:(下面介绍的setting.xml文件必须放在这个位置,内容在下面的介绍中有,下载仓库必须先配置setting.xml) 如果是要下

2017-03-15 22:44:45 208

转载 mybatis+SpringMVC中mybatis实例化接口Dao原理

今天早上有个疑惑,在mybatis+SpringMVC的工程中,我只定义了一个接口UserMapper,而spring就产生了一个UserMapper的对象,这个是我所不明白的,一个接口如何实例化。查了一下,发现Java 动态代理机制分析及扩展,估计mybatis也是这样实现的。看了看mybatis的源码,就有下文了。本文主要跟踪mybatis的源码,了解mapper接口的动态代理对象的生成myba

2017-03-03 15:30:19 2167

转载 java IO

初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。 首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!)这是Java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如c

2017-03-03 08:34:07 201

转载 关于锁(悲观锁与乐观锁)

锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其他

2017-03-02 13:55:41 306

原创 vs2013 设置不显示输出窗口

工具-选项-项目与解决方案-常规-取消“在生成开始时显示输出窗口”的勾选

2017-01-12 17:06:33 13732

转载 JVM内存划分

一.运行时数据区包括哪几部分?根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。 下面我们来了解一下运行时数据区的每部分具体用来存储程序执行过程中的哪些数据。1.Java栈  Java

2017-01-10 15:55:44 222

转载 JVM class加载机制

1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机

2017-01-10 09:17:18 290

转载 MySql双机热备份方法(备份Master数据库mysql到Slave中)

【环境】操作系统:两台32位Windows7旗舰版Mysql版本:mysql-5.5.28-win32(低版本mysql在配置副库时有所区别)工具:mysql-gui-tools-5.0-r17-win32Master IP:192.168.1.4(主)Slave IP:192.168.1.15(副) MySQL安装路径:D:\Program

2017-01-05 10:33:34 492

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除