
java高级
菜鸟腾飞
一个正在努力奋斗的95后程序员 , 记录我学习成长的点滴
展开
-
聊一聊fastjson
文章目录一.新手引导1.什么是fastjson?2.fastjson的优点2.1 速度快2.2 使用广泛2.3 测试完备2.4 使用简单2.5 功能完备三.源码分析3.1JSON.toJSONString3.1.1调用JSON.toJSONString(Object object)3.1.2初始化SerializeConfig3.1.3initSerializers()3.1.4执行重载方法toJ...原创 2020-02-02 18:51:11 · 3157 阅读 · 0 评论 -
java存储表情
一.前言当我们mysql数据库需要存储表情时,如果不做任何配置则会出现以下错误Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x80' for column 'content' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLEr...原创 2019-09-01 14:48:31 · 874 阅读 · 0 评论 -
Java自定义注解
@Target:@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。取值(ElementType)有: 1...原创 2019-06-11 23:53:27 · 231 阅读 · 0 评论 -
Java BitSet的理解与使用
一,概括BitSet是位操作的对象,值只有0或1即false和true,内部维护了一个long数组,初始只有一个long,所以BitSet最小的size是64,当随着存储的元素越来越多,BitSet内部会动态扩充,一次扩充64位,最终内部是由N个long来存储。默认情况下,BitSet的所有位都是false即0。在没有外部同步的情况下,多个线程操作一个BitSet是不安全的。一个1GB的空...原创 2019-06-02 16:48:51 · 2676 阅读 · 0 评论 -
String intern方法的思考
由于jdk1.7中将字符串常量池改为存放在堆中,因此intern()方法的实现原理相对以前的版本也有所改变。我们根据jdk的版本来进行一些分析: jdk1.6中字符串常量池存放在永久代中: 当使用intern()方法时,查询字符串常量池是否存在当前字符串,若不存在则将当前字符串复制到字符串常量池中,并返回字符串常量池中的引用。 jdk1.7中字符串常量池存放在堆中: ...原创 2019-06-02 14:32:24 · 1325 阅读 · 0 评论 -
dozer使用教程
1.什么是dozerDozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。Dozer支持简单属性映射,复杂类型映射,双向映射,隐式显式映射以及递归映射。这包括映射还需要在元素级别进行映射的集合属性。注意:dozer 目前不支持集合之间的转换 ,需要自己进行处理,稍后我会提供一个简单的工具类....原创 2019-02-11 22:21:09 · 21460 阅读 · 1 评论 -
分布式锁RedLock的java实现Redisson
1. 概述Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphor...原创 2019-02-08 11:55:55 · 5113 阅读 · 0 评论 -
java四种引用类型
一.了解 强引用、软引用、弱引用、虚引用的概念 1.强引用(StrongReference)强引用就是指在程序代码之中普遍存在的,比如下面这段代码中的object和str都是强引用:Object object = new Object();String str = "hello";只要某个对象有强引用与之关联,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOf...原创 2019-02-07 16:03:52 · 513 阅读 · 0 评论 -
@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
零、前言对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚。如此一来,我们的 Controller 层就不得不进行 try-catch Service 层的异常,否则会返...原创 2019-01-05 13:27:31 · 229 阅读 · 0 评论 -
[Swagger]swagger构建你的api文档
Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。Swagger 文件可以在许多不同的平台上从代码注释中自动生成。Swagger 有一个强大的社区,里面有许多强悍的贡献者。下面开始配置教程1.swa...原创 2018-12-02 12:57:42 · 614 阅读 · 0 评论 -
[java]spring三大核心组件
Spring三大组件Bean组件组件作用Bean的创建Bean的定义Bean的解析Context组件组件作用ApplicationContext子类Core组件访问资源Core资源的加载Bean组件组件作用 Bean组件在Spring中的Beans包下,为了解决三件事。Bean的创建,Bean的定义,Bean的解析。最关心的就是Bean的...转载 2018-11-18 20:12:00 · 3766 阅读 · 0 评论 -
[java]Sleep(0)的作用
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。...转载 2018-11-18 19:35:31 · 5001 阅读 · 0 评论 -
[java]java8 Stream 基本使用
List<IdNameEntity> lists = new ArrayList<>(); lists.add(new IdNameEntity(8, "王一")); lists.add(new IdNameEntity(5, "李二")); lists.add(new IdNameEntity(7, "张三")); ...原创 2018-11-13 16:13:25 · 262 阅读 · 0 评论 -
[java]spring集成quartz定时任务
quartz适合单系统定时任务,分布式不适合,废话少说开始 使用1. <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version>原创 2018-10-17 20:46:20 · 1213 阅读 · 0 评论 -
[java]quartz开源任务调度框架
1.什么是quartz? quartz百度百科 quartz是一种较为成熟的开源任务调度框架,大致有四部分组成Job,JobDetail,Triagger(触发),Schedule(调度) 思路就是 触发事件—>调度(核心)—>执行任务2.java样例 导入pom依赖 <!-- https://mvnrepository.com/artifact/org.qua...原创 2018-07-29 11:57:35 · 755 阅读 · 0 评论 -
[Java]Spring事务失效的几种原因
5种大的原因 1.如使用mysql且引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB假如有兴趣了解 MySQL中 ” engine=innodb ” 以及 ” engine=innodb 和engine=myisam的区别 “,可以读读这篇文章:http:...转载 2018-06-22 11:29:23 · 13971 阅读 · 5 评论