
Java
文章平均质量分 81
飞飞好奇
Fly For Fun
深入分布式、中间件、系统架构技术研究;
专注互联网金融、互联网文化娱乐行业。
展开
-
自定义异常调用fastjson序列化问题
一、描述程序中发现,空指针异常(java.lang.NullPointerException),调用fastjson反序列化,不会报错自定义的异常(*.ServiceMethodNotFoundException),调用fastjson反序列化,会报错二、Debug了一下代码发现:1、调用了toJSONString(),在序列化后的字符串中加入了“@type”属性"@type":"*.NullPointerException""@type":"*.ServiceMethodNotFoundE原创 2020-07-28 11:43:22 · 584 阅读 · 0 评论 -
mybatis jdbcTyp和javaType的类型处理
前一个版本,要变更活动的一个表字段,从int型改为varchar。有点疑问如果先执行数据库脚本,后发版,会不会有问题?本地debug 了一下mybatis执行流程确认了一下。发现不是mybatis做了判断,而是JDBC做了这些脏活累活儿。下面的图片是mysql执行sql的调用栈信息:mybatis通过TypeHandlerRegistry,因为java类是Integer,所...原创 2019-12-22 08:11:07 · 321 阅读 · 0 评论 -
Spring mvc 源码学习
一、基本概念SpringMVC中,满足条件的请求进入到负责请求分发的DispatcherServlet,DispatcherServlet根据请求url到控制器的映射(HandlerMapping中保存),HandlerMapping最终返回HandlerExecutionChain,其中包含了具体的处理对象handler(也即我们编程时写的controller)以及一系列的拦截器inte原创 2017-04-25 13:33:27 · 389 阅读 · 0 评论 -
java序列化和反序列化总结学习
1、序列化和反序列化序列化的意义在于信息的交换和存储序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。普遍应用在网络传输、RMI、RPC等场景中。这个相反的过程又称为反序列化。2、java的序列化和反序列化Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。JDK为了方便开发人员将Java对象进行序原创 2018-01-16 17:16:53 · 348 阅读 · 0 评论 -
Spring4.X学习(一):JavaConfig module相关注解
1、@Configuration@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的,作用为:配置spring容器(应用上下文),这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器2、@原创 2018-01-29 15:03:07 · 760 阅读 · 0 评论 -
Spring4.X学习(二):常用@Enable*相关注解
1、EnableWebMvc包路径(spring-webmvc:package org.springframework.web.servlet.config.annotation)开启Web MVC的配置支持。2、EnableWebSocket包路径(spring-websocket:package org.springframework.web.socket.config.ann原创 2018-01-29 18:17:21 · 597 阅读 · 0 评论 -
Java 非阻塞 IO 和异步 IO
本文将介绍非阻塞 IO 和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。本文会先介绍并演示阻塞模式,然后引入非阻塞模式来对阻塞模式进行优化,最后再介绍 JDK7 引入的异步 IO,由于网上关于异步 IO 的介绍相对较少,所以这部分内容我会介绍得具体一些。希望看完本文,读者可以对非阻塞 IO 和异步 IO 的迷雾...转载 2018-02-23 15:15:46 · 426 阅读 · 0 评论 -
系统突然运行慢,线上CPU100%,频繁FullGC排查
当然,这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出 jstack 和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种: 代码中某个位置读取数...转载 2019-06-22 12:40:40 · 1655 阅读 · 0 评论 -
JAVA8学习(一)List、Map的循环迭代
学习怎样用java8去循环迭代1、MapMap items = new HashMap<>();items.put(1, "wangwu");items.put(2, "zhangsan");items.put(3, "lisi");items.put(4, maliu);items.forEach((k,v)->System.out.println("Item : " + k原创 2016-12-29 18:17:52 · 5516 阅读 · 0 评论 -
commons math用户手册翻译(一)
翻译源址:http://commons.apache.org/proper/commons-math/userguide/index.html1、math包版本3.62、commons-math包解决哪些问题math包由一组数据和统计的包组成,用于解决列表中列出的问题。列表虽不能覆盖math包全部的功能,但可以基本说明math包所能提供的方法。计算一组数据的均值、方差,还有翻译 2017-01-03 12:43:51 · 6839 阅读 · 4 评论 -
RPC框架几行代码就够了
虽然以前也大概知道rpc的实现原理,也看过部分msgpack的实现,但是对于反射不是很了解。现在看到一个简单完整的实现,也解决我的以前的另一个疑惑:http://topic.youkuaiyun.com/u/20111028/14/092f98d0-ecdc-48b2-bf8b-317d5071ab6f.html?seed=361547001&r=77648361#r_77648361转载 2016-03-24 14:46:25 · 599 阅读 · 0 评论 -
JAVA內存布局
from:https://www.ibm.com/developerworks/cn/java/j-codetoheap/从 Java 代码到 Java 堆理解和优化您的应用程序的内存使用Chris Bailey, Java 支持架构师, IBM简介: 本文将为您提供 Java™ 代码内存使用情况的深入见解,包括将 int 值置入转载 2016-03-24 15:10:09 · 682 阅读 · 0 评论 -
JAVA 集合之MAP
一、HashMap,即java.util.HashMap标准链地址法实现。这个不用多解析,下图十分明了。(图片来自网络)二、Collections.synchronizedMap() 函数返回的线程安全的HashMap这个的实现比较简单。代码中有:[java] view plain copyprivate final Map转载 2016-03-24 15:18:51 · 424 阅读 · 0 评论 -
Java注解(一)Annotation的概述和语
Annotation 提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。 annotation类型是一种接口,能够通过java反射API的方式提供对其信息的访问。1.@Targ原创 2016-05-10 16:23:04 · 605 阅读 · 0 评论 -
java注解(二)Annotation使用案例
Annotations仅仅是元数据,和业务逻辑无关。如果Annotations不包含业务逻辑,那么必须有人来实现这些逻辑。元数据的用户来做这个事情。Annotations仅仅提供它定义的属性(类/方法/包/域)的信息。Annotations的用户(同样是一些代码)来读取这些信息并实现必要的逻辑以Rest请求为例1、 建立一个注解:请求必须先登录@Target({ ElementType原创 2016-05-11 11:53:42 · 2290 阅读 · 0 评论 -
学习ThreadLocal源码心得
一、概念JDK给出的ThreadLocal定义:This class provides thread-local variables. These variables differ from their normalcounterparts in that each thread that accesses one (via itsget orset method) hasits原创 2016-05-13 16:06:32 · 424 阅读 · 0 评论 -
深入Spring事务(一)Spring事务概述
Spring事务概述一、事务概述事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;一致性(Consistency):在事务执行前数据库的数据处于原创 2016-05-06 17:39:44 · 742 阅读 · 0 评论 -
定制化高效使用Map的一些经验技巧
文章出处http://wenshao.iteye.com/blog/886621Map是一种非常用的数据结构,在一些底层框架或者效率十分关键的地方也是十分常用的。我写这篇文章的意图就是把我关于高效使用map的一些经验技巧写下来,当然其中我的一些观点可能不对,如果有朋友发现有错误的地方,欢迎指正。 在Java中Map是什么呢?先说HashMap,java.util.HashMap转载 2016-07-10 17:07:19 · 1482 阅读 · 0 评论 -
Maven学习
原文地址:https://my.oschina.net/sunchp/blog/1006341 Repository(仓库)1.1 Maven仓库主要有2种:remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问local repository:存放在本地磁盘的一个文件夹,例如,windows上默认是C:\Users\{用户转载 2017-01-02 09:04:23 · 316 阅读 · 0 评论 -
Jetty + Jersey简单RESTful例子
工程pom文件<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://maven.apache.org/maven-v原创 2016-06-14 10:39:49 · 5757 阅读 · 0 评论 -
使用LinkedHashMap构建LRU的Cache
这段时间好好整理了一下基础,发现很多对我来说新的东西,里面博大精深的东西真的很多,经常使用HashMap,对HashMap的结构和原理非常了解,但是忽略了还有LinkedHashMap这个好东西。 先转一篇blog: LinkedHashMap的特性:Linked内部含有一个private transient Entry header;来记录元素插入的顺序或者是转载 2015-10-15 15:50:00 · 404 阅读 · 0 评论