Java
文章平均质量分 70
pandamig
子曰:“参呼!吾道以一贯之”
展开
-
asList使用注意事项
asList使用注意事项原创 2022-08-28 10:33:12 · 344 阅读 · 0 评论 -
Gradle
gradle常用命令原创 2022-08-27 13:01:18 · 810 阅读 · 0 评论 -
Swagger学习
文章目录一、前言二、Swagger常用注解2.1 @Api2.2 @ApiOperation2.3 @ApiImplicitParams、@ApiImplicitParam2.4 @ApiResponses、@ApiResponse2.5 @ApiModel2.6 @ApiModelProperty三、SpringBoot整合Swagger3.1 引入依赖3.2 配置类3.3 使用注解标注接口信息3.4 查看接口文档一、前言Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web原创 2021-07-28 23:05:04 · 179 阅读 · 0 评论 -
synchronized底层实现原理及锁升级过程
文章目录一 前言二 底层实现原理三 锁升级过程3.1 对象内存结构3.2 锁升级过程四 总结一 前言synchronized是JDK自带的一个关键字,用于在多线程的情况下,保证线程安全;在JDK1.5之前是一个重量级锁,1.6之后进行了优化,性能有很大提升。synchronized可以用来同步方法、同步代码块、同步静态方法,具体用法可参见《Java多线程(三)——synchronized》,本文主要研究synchronized底层实现原理及锁升级过程。二 底层实现原理public class Sy原创 2021-07-13 16:54:16 · 1073 阅读 · 9 评论 -
Redis6安装入门教程
文章目录1.概述1.1 NoSQL简介1.2 非关系型数据库1.3 Redis简介2.Redis安装(mac)2.1 安装brew2.2 安装Redis2.3 启动Redis2.4 访问客户端3.五大常用数据类型3.1 Redis键操作(key)3.2 String3.2.1 Stirng操纵常用命令3.2.2 String数据结构3.3 List3.3.1 List常用命令3.3.2 List数据结构3.4 Set3.4.1 常用命令3.4.2 Set数据结构3.5 Hash3.5.1 常用命令3.5.2原创 2021-06-13 23:25:45 · 1132 阅读 · 16 评论 -
Spring不同版本Aop执行顺序差异
Spring不同版本Aop差异前言Spring4和Spring5版本之间的AOP差异是比较大的,Spring4的执行顺序是:正常情况: @Around前环绕通知–>@Before–>@Around后环绕通知–>@After–>@AfterReturning异常情况:@Around前环绕通知–>@Before–>@After–>@AfterThrowingSpring5的执行顺序是:正常情况:@Around前环绕通知–>@Before–&g原创 2021-05-09 21:35:03 · 565 阅读 · 0 评论 -
Java多线程——LockSupport
Java多线程——LockSupport概述java提供了三种线程的等待通知方式:wait/notify机制await/single机制park/unpart机制1.LockSupport核心方法LockSupport类的核心方法其实就两个:park()和unpark(),其中park()方法用来阻塞当前调用线程,unpark()方法用于唤醒指定线程。这其实和Object类的wait()和signal()方法有些类似,但是LockSupport的这两种方法从语意上讲比Object类的方原创 2021-05-05 17:29:15 · 124 阅读 · 0 评论 -
jvm常用参数
jvm常用参数参数 含义 默认值 备注 -Xms 初始堆大小 物理内存的1/64(<1GB) 等价于-XX:InitialHeapSize -Xmx 最大堆大小 物理内存的1/4(<1GB) -XX:MaxHeapSize -Xss 置单个线程栈的大小 一般默认为512~1024K 等价于-XX:ThreadStackSize,0代表默认出厂值 -Xmn 年轻代大小 默认为堆内存的1/3原创 2021-04-22 22:32:15 · 78 阅读 · 0 评论 -
java多线程(六)—— 线程池
java多线程(六)—— 线程池文章目录java多线程(六)—— 线程池1 概述2.三种常用线程池3.线程池7大参数4.线程池核心工作原理5.拒绝策略6.如何合理配置线程池参数1 概述线程池的主要特点为:线程复用,控制最大并发数,管理线程。线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立即执行。方便管理线程。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统过得稳定性,使用线程池可以原创 2021-04-17 21:34:07 · 270 阅读 · 1 评论 -
Java多线程(五)--- volatile
文章目录Java多线程(五)--- volatilevolatile保证内存变量的可见性volatile不保证原子性如何保证原子性?volatile禁止指令重排Java多线程(五)— volatilevolatile的作用主要有两点:1.保证内存变量的可见性;2.禁止指令重排关键字volatile作为线程同步的轻量级实现,能保证数据的可见性,但不能保证原子性,使用场合是在多个线程中可以感知实例变量被更改了,并且可以获得最新的值使用,也就是用多线程读取共享变量时可以获得最新值使用。volatile保证原创 2021-04-17 11:30:26 · 183 阅读 · 0 评论 -
Fastjson首字母大小写问题
Fastjson首字母大小写问题最近由于项目里用到了多个json类库,fastjson,org.json,jackson都有用到,最终把json类库统一成了API最为简单的Fastjson。Fastjson替换org.json之后导致部分功能不可用,最终确定为fastjson的默认首字母小写机制造成的。maven依赖 <dependency> <groupId>com.alibaba</groupId> &l原创 2021-04-06 21:55:20 · 5792 阅读 · 0 评论 -
Java8函数式编程
Java8函数式编程1.引言Java 8的最大变化是引入了Lambda表达式,——一种紧凑的,传递行为的方式。它使开发者在写回调函数和事件处理程序时,不必纠缠于匿名内部类的冗繁和可读性,函数式编程让事件处理系统变得更加简。Lambda表达式是一个匿名方法,将行为像数据一样传递。Lambda表达式需要"函数式接口"的支持,函数式接口:接口中只有一个抽象方法的接口称为函数式接口,可以使用注解@FunctionalInterace修饰。2.Lambda表达式2.1 Lambda表达式基本形式//原创 2021-03-16 20:45:35 · 186 阅读 · 0 评论 -
Java多线程(四)——线程间通信
Java多线程(四)——线程间通信等待通知机制wait和notify:wait使线程停止运行,notify使停止的线程继续运行。在调用wait之前,线程必须获得该对象的对象级别锁,即只能在同步方法或同步代码块中调用wait()方法,如果调用wait()时没有持有适当的锁,则抛出IllegalMonitorStateException;方法notify()也要在同步方法或同步代码块中调用。public class MyThread1 extends Thread{ private Obj原创 2021-03-08 22:00:01 · 117 阅读 · 0 评论 -
Java IO学习笔记(一) —— IO基础
Java IO学习笔记(一) —— IO基础Java IO 流学习笔记1 什么是流内存与存储设备之间传输数据的通道。2 流的分类2.1 按方向输入流:将存储设备中的内容读取到内存中;输出流:将内存中的内容写入到存储设备中。2.2 按单位字节流:以字节为单位,可以读取所有数据;字符流:以字符为单位,只能读取文本数据。字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。字符(Character)计算机中使用的字母原创 2021-03-07 20:09:01 · 89 阅读 · 1 评论 -
JAVA基础-集合
JAVA基础-集合1.概述JAVA容器分为两大类:Collection接口的子接口包括:List接口和Set接口;List接口实现类主要有ArrayList、LienkedList、Vector等;Set接口的主要实现类有HashSet、TreeSet、LinkedHashSet等;Map接口的实现类主要有HashMap、TreeMap、Hashtable、ConcurrentHashMap等;CollectionList|------- ArrayList|------- LinkedL原创 2021-02-09 15:50:18 · 152 阅读 · 1 评论 -
Java多线程(三)——synchronized
Java多线程(三)本章主要讨论synchronized。1.概述“非线程安全”问题会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是“脏读”,也就是取到的数据其实是被更改过的。而“线程安全”就是以获得的实例变量的值是经过同步处理的,不会出现脏读的现象。synchronzied用来保证线程安全。2.synchronized的用法synchronized的用法共有如下四种:(1)synchronized同步方法(2)synchronized(this)同步代码块(3)s原创 2021-01-31 23:46:29 · 200 阅读 · 0 评论 -
Java多线程(二)—— 停止线程
Java多线程(二)上一篇“Java多线程(一)”主要讨论的是线程的创建,本章主要讨论停止线程。1.概述停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前的操作。虽然这看起来很简单,但是必须做好防范措施,以便达到预期的效果。在java中有以下3中方法可以终止正在运行的线程:(1)使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。(2)使用stop方法强行终止线程,但是不推荐使用这个方法,因为此方法已经过时。(3)使用interrupt方法中断线程。2.使原创 2021-01-24 16:03:06 · 83 阅读 · 0 评论 -
Java多线程(一)—— 线程的创建
Java多线程(一)1.进程和线程进程是操作系统结构的基础,是一次程序的执行;是一个程序及其数据在处理机上顺序执行所发生的活动;是程序在一个数据集合上运行的过程,它是操作系统进行资源分配和调度的一个独立单位。线程是在进程中独立运行的子系统2.线程的创建方式2.1 继承Thread类/** * 线程的创建方式一:继承Thread类 */public class MyThread extends Thread { @Override public void run()原创 2021-01-24 10:16:11 · 140 阅读 · 0 评论 -
JAVA垃圾回收机制及垃圾回收器
1. 什么是垃圾回收机制垃圾回收(Garbage Collection,GC)就是将JVM内存中长期未使用的或者已经死亡的对象清除,释放占用的内存空间,防止内存泄露。2. 如何判断对象可回收即如何判断一个对象是否是垃圾对象,有两种方式:引用计数法和可达性分析算法。2.1 引用计数法引用计数算法(Reachability Counting)是通过在对象头分配一块内存区域存放对象被引用的次数;如果该对象被其他对象引用,则次数加1,如果删除该对象的引用,则次数减1,当该对象的引用次数为.原创 2021-01-19 21:16:17 · 490 阅读 · 0 评论 -
JVM知识整理
原创 2021-01-17 15:17:17 · 63 阅读 · 0 评论 -
Fastjson与Jackson序列化反序列化差异对比
Fastjson与Jackson序列化反序列化差异对比对基本数据类型boolean的处理当boolean类型字段以is开头,Fastjson与Jackson序列化结果一样,is被去掉。当使用的Jackson和Fastjson的字段转换注解(@JsonProperty(“isXXX”),@JSONFied(name=“isXXX”))时,Fastjson序列化后字段名为isXXX,Jackson序列化后生成两个字段isXXX和XXX。如果将字段isXXX映射为XXX(即使用注解@JsonPropert原创 2020-07-29 17:22:18 · 1792 阅读 · 0 评论