
java
文章平均质量分 56
ChanYeeLi
这个作者很懒,什么都没留下…
展开
-
设置MySQL时区
数据源添加&serverTimezone=Asia/Shanghaiurl: 'jdbc:mysql://gofbox.com:3306/arseeu?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai'...原创 2018-10-16 17:38:26 · 1133 阅读 · 0 评论 -
JAVA自带故障排查工具
jpsjinfojmapjstack 打印线程dump,发现线程目前停留在哪行代码 -l 打印线程锁信息 -F 强制dumpjstat 统计信息 >jconsolejvisialvm原创 2017-11-19 21:41:08 · 831 阅读 · 0 评论 -
redis 序列化配置的奶酪
1.在初次使用redis原创 2017-11-16 16:03:53 · 880 阅读 · 0 评论 -
JVM 微解1
知识储备:JVM和普通虚拟机 vmvare,visualbox虚拟机:完整的一个能够提供虚拟主机的PC,所以我们需要在上边安装操作系统,是通过使用操作系统软件模拟物理CPU的指令集 jvm:程序自己的独立运行环境,比如说:对战,寄存器,虚拟硬件架构,Java字节码指令集等JVM/JDK/JRE关系 JDK : Java Development ToolKit(Java开发工具包)。J原创 2017-11-15 09:57:35 · 315 阅读 · 0 评论 -
Spring-boot 启动时碰到的错误
spring boot 启动时报如下错误:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package* WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of t转载 2017-11-15 15:09:39 · 11931 阅读 · 0 评论 -
Java 内存泄露
首先我们来了解下,什么是内存泄露? 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。更通俗一点的讲:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着看代码 public static void main(String[] args){ Vector v = new Vector(); for (int i = 1; i<1原创 2017-11-15 14:17:18 · 245 阅读 · 0 评论 -
java 值传递和引用传递
值传递和引用传递8种基本数据类型,和其扩展的引用类型,都是值传递,也就是说是将值拷贝了一份,传递下去。除了8种基本类型和其扩展的类型之外,都是引用传递,即传递的是引用的内存地址。对于基本类型,赋值运算符会直接改变变量的值,原来的值被覆盖掉。 对于引用类型,赋值运算符会改变引用种所保存的地址,原来的地址被覆盖。但是原来的对象不会改变(非常重要)。 java中没有被任何引用所指向的对象是垃圾,会被垃原创 2017-09-14 11:05:57 · 464 阅读 · 0 评论 -
JVM 微解2
JVM Trace跟踪参数-verbose:gc 打印GC日志信息-XX:+PrintGCDetails 打印GC日志信息-Xloggc:d:/gc.log GC日志目录-XX:+PrintHeapAtGC 每次一次GC后,都打印堆信息-XX:+TraceClassLoading 类加载信息JVM 内存分配参数详解-Xmx 最大堆–X原创 2017-11-20 00:13:04 · 415 阅读 · 0 评论 -
java session的监听微解
1.项目中需要用到单点登陆即只能单个设备或者单个浏览器登陆 本来的方案,是将session取到后,放入redis;但是发现redis在序列化session对象的出现了问题, 原来是因为session对象中有属性的值为null。 后来试着用request获取: HttpSessionContext SessCon= request.getSession(false).getSess原创 2017-11-14 16:04:00 · 490 阅读 · 0 评论 -
JAVA8 lambda 微解
JAVA Lambda表达是随着Java8的诞生而出现的。 Java SE 8中新引入的lambda语言特性以及这些特性背后的设计思想。这些特性包括:lambda表达式(又被成为“闭包”或“匿名方法”)方法引用和构造方法引用扩展的目标类型和类型推导接口中的默认方法和静态方法主要语法: 1.用() -> {} 代码块替代了整个匿名类; 2.1.集合筛选,遍历List原创 2017-11-13 16:20:37 · 423 阅读 · 0 评论 -
spring boot 手动获取实现类
spring boot 手动获取实现类import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;WebApplicationContext cxt = WebApplicationCont原创 2017-12-06 16:32:33 · 1424 阅读 · 0 评论 -
JAVA 并发编程
JMM JAVA MEMRY MODLE JAVA内存模型可见性士大夫 原子性原子性顺序性顺序性 Happens-before原则程序次序法则监视器法则volatie变量法则线程启动法则线程终结法则中断法则终结法则传递性 线程生命周期Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于原创 2017-11-27 16:01:28 · 358 阅读 · 0 评论 -
并发编程 atomic collections
并发编程 atomic原创 2017-12-06 22:30:39 · 564 阅读 · 0 评论 -
kafka安装和测试
1.下载:http://kafka.apache.org/downloads2.解压tar zxvf kafka_2.12-1.0.0.tgzmv kafka_2.12-1.0.0 kafka //重命名为kafka3.修改配置进入kafka/config目录vim server.properties由于我的zookeeper在另外一台服务器上所以,只需改动zooke...原创 2018-03-01 14:52:40 · 906 阅读 · 0 评论 -
mycat 读写分离配置
mycat简单介绍(部分摘自官网)支持1000亿大数据中国第一开源分布式数据库中间件Mycat之前世今生2013年阿里的Cobar在某大型项目中使用过程中发现存在一些比较严重的问题,于是第一代改良版——Mycat诞生Mycat开源以后,一些Cobar的用户参与了Mycat的开发,最终Mycat发展成为一个由众多软件公司的实力派架构师和资深开发人员维护的社区型开源软件。...原创 2018-02-08 16:37:28 · 6291 阅读 · 4 评论 -
linux 安装JAVA运行环境和apache-tomcat
yum 安装JAVA环境 1.下载jdk http://www.oracle.com/technetwork/java/index.html 选择适合自己的jdk下载 我download的版本是 http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-l原创 2017-06-06 09:57:30 · 1388 阅读 · 0 评论 -
consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data
console警告缓存不够。 根据apache官方文档:http://tomcat.apache.org/tomcat-8.0-doc/config/resources.html The maximum size of the static resource cache in kilobytes. If not specified, the default value is 10240 (10转载 2018-01-15 21:28:41 · 4670 阅读 · 0 评论 -
maven 打包时的web.xml问题
maven web项目在打包时,报如下的错误:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project com.shihou.session.manager.service: Error assembling WAR: webxml attri原创 2017-11-22 11:15:40 · 1070 阅读 · 0 评论 -
mybatis generator 配置文件微解
mybatis 代码生成器mybatis/generatorgithub地址 : https://github.com/mybatis/generator github文档地址:https://github.com/mybatis/generator/releases<?xml version="1.0" encoding="UTF-8"?><!DOCTY...原创 2017-12-29 17:00:58 · 277 阅读 · 0 评论 -
JAVA 集合
Java集合框架是指导java的集合类。Collection 接口是一组允许重复的对象。Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。 List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。原创 2018-01-04 14:38:38 · 272 阅读 · 0 评论 -
分布式服务架构
分布式服务架构的发展历程1. JEE架构 2. SSH强调内容架构 3. Web service 架构 4. ESB架构 5. 微服务架构 6. 微服务的团队管理 7. 微服务服务架构的精髓 8. 微服务架构的痛点 保证分布式服务一致性的最佳实战 保证分布式服务架构高性能的方法论保证分布式服务高可用的最佳实践资料来自图灵学院。想来的同学请联系我:QQ:1097704842转载 2017-12-26 23:26:15 · 537 阅读 · 0 评论 -
从0到1认知分布式系统
从0到1整体认知分布式系统概要: 1. 分布式架构的发展历史与背景 2. 如何着手架构一套分布示式系统 3. 分布式架构所带来的成本与风险分布式架构的发展历史与背景场景一: 一家做政务OA系统的公司老板发现跟竞争对手比发现自己的系统的架构不是分布示的,找到技术负责人问,把系统架构升级成分布示架构要多长时间?技术负责人网上查了查 dubbo官网看了看 Demo 这不很简单吗,拍着胸脯一翻译 2017-12-25 21:11:51 · 501 阅读 · 0 评论 -
java虚拟机之-内存区域
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。程序计数器(Program Counter Register) 运行时数据区域-程序计数器 一块较小的内存空间,它是当前线程所原创 2017-10-09 23:41:52 · 351 阅读 · 0 评论 -
java 中变量存储位置的区别
转载:http://blog.youkuaiyun.com/yuan22003/article/details/6822221 java中的变量主要存储在以下几个地方 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)转载 2017-10-09 22:28:20 · 335 阅读 · 0 评论 -
java集合之 Map
Map是java中常用的接口。 Map所有的子接口:Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMessageContext, MessageContext, NavigableMap<K,V>, SOAPMessageContext, SortedMap<K,V>所有实现该接口的实现类AbstractMap,原创 2017-09-12 22:57:37 · 458 阅读 · 0 评论 -
微信支付 package info not match special pay url
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 微信官方 统一支付接口文档,有下面的一句话, 所以将统一下单的trade_type的参数值修改为NATIVE,就解决问题了如果觉得文章真心好, 请打赏下我吧http://blog.youkuaiyun.com/assassinsshadow/article/details/7608原创 2017-08-30 03:55:02 · 1780 阅读 · 3 评论 -
获取客户端的真实IP地址
转自:http://blog.youkuaiyun.com/zelda002/article/details/45967421获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是 有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用 了反向代理软件,用request.getRemoteAddr()方法获取的转载 2017-08-30 10:38:05 · 1523 阅读 · 0 评论 -
微信支付上线遇到的nss问题 (openjdk引起的祸)
前段时间在做微信支付服务,和微信相关的app id,商户信息都用的是我自己的,没什么问题。 要切到公司的生产环境,遇到的首个问题就是,打的war包启动不起来了, 后来发现公司的服务器安装的是jdk1.7的版本。而我本地的开发环境是1.8。(/擦汗) 果断的把<plugin> <groupId>org.apache.maven.plugins</groupId> <artifact原创 2017-09-15 17:47:48 · 3171 阅读 · 0 评论 -
java 获取服务器端ip
public static String getLocalhostIP(){ InetAddress address = null;//获取的是本地的IP地址 try { address = InetAddress.getLocalHost(); return address.getHostAddress();//192原创 2017-09-14 11:38:48 · 1411 阅读 · 0 评论 -
java 运算符
^ 异或:异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。int a=4;int b=6;int c = a^b;//c的值是a和b的异或。值为2.运算过程:a转换为二进制:0100b转换为二进制:01100100^01原创 2017-09-12 15:42:54 · 338 阅读 · 0 评论 -
maven 跳过单元测试
1.使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码的编译。 mvn package -Dmaven.test.skip=true 2.使用 mvn package -DskipTests 跳过单元测试,但是会继续编译; mvn package -DskipTests原创 2017-08-08 11:20:00 · 723 阅读 · 0 评论 -
线程笔记
线程的5中状态线程的常用方法线程优先级线程礼让原创 2017-08-17 11:09:52 · 347 阅读 · 0 评论 -
java 等待线程/线程池执行完毕
1.单线程开始并执行完毕 当线程开始后,需要用到join的方法 不废话直接贴代码 public static void main(String args[]) { long begin = System.currentTimeMillis(); System.out.println(begin); Thread thread = new Thr原创 2017-08-07 15:43:54 · 8047 阅读 · 0 评论 -
servlet 3.0 版本特性
转自:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/index.htmlServlet 3.0 新特性概述重点内容Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署。其中有几项转载 2017-08-16 11:19:28 · 458 阅读 · 0 评论 -
java 多线程 乐观锁悲观锁
乐观锁原理: 有一种方式就是CAS(Compare And Swap),即修改数据之前先比较与之前读取到的值是否一致,如果一致,则进行修改,如果不一致则重新执行,这也是乐观锁的实现原理。不过CAS在某些场景下不一定有效,比如另一线程先修改了某个值,然后再改回原来值,这种情况下,CAS是无法判断的。悲观锁:大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大转载 2017-09-09 09:07:35 · 525 阅读 · 0 评论 -
java volatile关键字
volatile关键字是java用来解决可见性和有序性问题的。好多人认为volatilehe和synchronized一样,皆是使修饰的对象在操作的时候具有原子性。其实不然,volatile修饰的变量的单次读/写可以保证原子性。如long,double类型的变量,但是并不能保证i++和++i这种操作的原子性,为什么呢?因为本质上i++/++i是读写两次操作。要想保证操作的原子性可以通过Atomi转载 2017-09-09 10:40:17 · 269 阅读 · 0 评论 -
log4j2 出现 Could not load [org.apache.logging.log4j.core.impl.Log4jLogEvent$Builder]
最近看日志忽然发现,log4j报如下错误。31-Aug-2017 11:00:00.012 INFO [Log4j2-Log4j2Scheduled-1] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance原创 2017-08-31 14:24:21 · 8887 阅读 · 1 评论 -
java 守护线程
守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。(以上是针对正常退出,调用System.exit则必定会退出):poop:转载 2017-09-12 11:47:38 · 357 阅读 · 0 评论 -
java 不常用关键字
transienttransient:临时的; 主要作用是使修饰的变量不被序列化; java序列化有两种方式: 1.实现 Serializable 2.实现Externalizablenativenative:即 JNI,Java Native Interface; 该关键字修饰的方法表示,java并不提供具体的实现,因为其实现体是由非java语言在外面实现的 具体流程 参考资料转载 2017-09-12 16:13:26 · 647 阅读 · 0 评论 -
JAVA 栈内存和堆内存
java中栈内存指的是虚拟机栈,堆内存指的是java堆。栈内存 栈内存,虚拟机栈。每个方法被执行的时候都会创建一个栈帧,用来存储局部变量,操作栈,动态链接,方法出口等信息。局部变量包括各种基本类型的变量和对象的引用变量都是在方法的栈内存中分配。其中8字节(64位)长度的double和long类型的数据占用2个局部变量的空间,其他数据类型只占用一个。局部变量所需要的空间是在编译期间完成的,当进入一转载 2017-09-19 22:35:27 · 641 阅读 · 0 评论