java
文章平均质量分 51
iiYcyk
我会有一种很想让自己努力的感觉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AQS原理
AQS提供了一套通用的模板用于构建同步器。原创 2025-09-07 10:12:56 · 753 阅读 · 0 评论 -
ConcurrentHashMap解析
(简称 CHM)是 Java 并发包中高性能的线程安全哈希表实现。其设计目标是在高并发场景下提供高效的读写操作。以下是其核心原理和扩容机制(基于 。,实现了高效的无阻塞扩容。其设计在高并发场景下显著优于。,是 Java 并发编程的核心工具之一。:锁粒度细化到单个桶,大幅降低竞争。线程协作分摊迁移开销,避免单线程阻塞。快速将链表均匀分散到新数组的两个位置。迁移完成后,旧桶位置放入 **遍历旧桶,对每个桶的头节点加。标识迁移状态,避免重复迁移。**(标记该桶已迁移)。原创 2025-09-07 09:46:35 · 889 阅读 · 0 评论 -
Java之线程池
安全首选: 通常优先使用 shutdown() + awaitTermination() 组合实现优雅关闭。强制手段: 当需要快速关闭或优雅关闭超时时,使用 shutdownNow()。任务中断: shutdownNow() 的有效性依赖于你的任务代码能正确响应中断(即周期性地检查中断状态或在可能阻塞的操作中捕获 InterruptedException)。资源释放: 无论使用哪种关闭方法,关闭后都应避免再次使用该线程池实例(提交新任务将触发异常)。原创 2025-09-07 09:30:49 · 709 阅读 · 0 评论 -
类的加载和对象的创建
Parent() { System.out.println(“Parent构造函数”);static { System.out.println(“Parent静态代码块”);有继承则先递归调用父类构造器)。静态初始化:执行静态变量赋值和静态代码块(仅首次加载时一次)。Parent构造代码块 // 父类实例化(代码块)Child构造代码块 // 子类实例化(代码块)Parent静态代码块 // 父类初始化(静态)Child静态代码块 // 子类初始化(静态)原创 2025-09-07 09:29:05 · 695 阅读 · 0 评论 -
深入理解Java内存
深入理解Java内存JVM内存首先要知道的是Java程序运行在JVM(Java VirtualMachine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性。一个完整的Java程序运行过程会涉及以下内存区域:寄存器寄存器: JVM内部虚拟寄存器,存取速度非常快,程序不可控制。栈栈:保存局部变量的值: 1.基本数据类型的值。 2.保存类的实例,即堆区对象的引用(指针)。 3.保存加载方法时的帧。堆堆:用来存放动态产生的原创 2025-09-07 09:27:29 · 186 阅读 · 0 评论 -
AQS原理
1. 核心设计思想状态管理:维护一个volatile int state状态变量,代表共享资源的状态。在ReentrantLock中:state = 0表示锁空闲,state > 0表示被线程持有(可重入时>1)。在Semaphore中:state表示可用许可证的数量。在CountDownLatch中:state表示需要等待的事件(计数器)数量。线程排队等待:。原创 2025-09-06 17:57:33 · 369 阅读 · 0 评论 -
JUC之并发编程
原理:如 AtomicInteger,其内部使用 volatile int value保证可见性,所有修改操作(如 incrementAndGet)都基于 CAS 实现,保证了原子性而无须加锁,性能极高。它维护了一个 volatile int state(代表共享资源的状态)和一个 FIFO 线程等待队列(CLH 队列的变体,用于管理获取资源失败的线程)。原理:将 AQS 的 state变量拆解使用:高 16 位表示读锁状态(共享计数),低 16 位表示写锁状态(独占重入计数)。原创 2025-09-06 17:56:30 · 493 阅读 · 0 评论 -
Java并发锁相关
2.偏向锁:锁被同一线程多次访问时,记录线程 ID(避免 CAS 操作)。3.轻量级锁:当多线程竞争时,通过 CAS 自旋尝试获取锁(减少阻塞)。synchronized(this) { // 锁对象可以是任意对象。锁升级过程中什么是偏向锁→轻量级锁→重量级锁?原创 2025-09-06 17:54:40 · 1040 阅读 · 0 评论 -
获取当周和上周的周一、周日时间
【代码】获取当周和上周的周一、周日时间。原创 2022-09-09 15:01:38 · 1770 阅读 · 0 评论 -
ArrayList解析
ArrayList解析ArrayList就是数组列表,主要用来装载数据,当我们装载的是基本类型的数据int,long,boolean,short,byte…的时候我们只能存储他们对应的包装类,它的主要底层实现是数组Object[] elementData。与它类似的是LinkedList,和LinkedList相比,它的查找和访问元素的速度较快,但新增,删除的速度较慢。小结:ArrayList底层是用数组实现的存储。特点:查询效率高,增删效率低,线程不安全。使用频率很高。正常使用的场景中,都是用来原创 2022-05-12 22:24:15 · 308 阅读 · 0 评论 -
经典程序解析
经典程序解析一输出结果?public class Demo01 { public static void main(String[] args) { boolean isNull = true; System.out.println(isNull ? getValue(isNull) : 0); } private static Integer getValue (boolean isNull) { return isNull原创 2022-05-12 21:58:30 · 223 阅读 · 0 评论 -
自定义拦截器
拦截器自定义拦截器,实现WebMvcConfigurer@Configurationpublic class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(authInterceptor()) .addPathPat原创 2022-05-12 21:39:47 · 211 阅读 · 0 评论 -
字段加密注解
自定义字段加密注解该注解实现,在接口返回时,对指定字段值进行加密操作。定义注解@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})public @interface DataEncrypt {}自定义ObjectMapper@Configurationpublic class ObjectMapperConfig {原创 2022-05-12 14:17:35 · 983 阅读 · 0 评论 -
Spring工具类
SpringBeanUtil工具类Spring的工具类,根据名称获取bean@Componentpublic class SpringBeanUtil implements ApplicationContextAware { private static ApplicationContext context = null; @Override public void setApplicationContext(ApplicationContext applicationContext )原创 2022-05-10 15:31:04 · 242 阅读 · 0 评论 -
Spring源码笔记
Spring源码BeanDefinitionBeanFactoryBeanDefinition、BeanFactory、Bean对象之间的关系BeanFactory的核心子接口DefaultListableBeanFactory 功能Bean生命周期@Autowired是什么@Resource是什么@Value是什么FactoryBean是什么ApplicationContext是什么BeanDefinitionBeanDefinition表示Bean定义,Spring根据BeanDefinition来原创 2022-05-09 22:07:45 · 319 阅读 · 0 评论 -
JDK1.8
JDK1.8笔记streamstream根据type分组List<VO> vosMap<String, List<VO>> map = vos.stream().collect( Collectors.groupingBy(item -> item.getType))获取某字段求和double sum = list.stream().mapToDouble(VO::getNum).sum();mapToDouble() 可以根据需要替换相应的方法原创 2022-04-22 17:45:40 · 672 阅读 · 0 评论 -
Springboot+MybatisPlus基础搭建
springboot+MybatisPlus基础搭建搭建工具及环境:IDEA+Jdk1.8+mavenNew Project --> Maven --> Create from archetype --> maven-archetype-quickstartps:如果生成的项目工程没有resources目录main文件下生成resources目录 New Directory 选择 Mark Directory as --> Sources Root原创 2022-04-12 16:13:52 · 1387 阅读 · 0 评论 -
mybatis+oracle批量插入
mybatis+oracle批量插入记录mapperboolean saveBatch(List<Object> list)xml关键点:oracle的序列自增ID SEQ.XXXX.NEXTVAL ;定义 separator=“union all”;赋值的字段对应表中的列定义名。 #{item.xxx, jdbcType=VARCHAR} column2<insert id="saveBatch" parameterType="java.util.List">原创 2022-02-11 17:08:30 · 1159 阅读 · 0 评论 -
Swagger2配置
Swagger2 Api接口管理pom依赖<dependercy> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version></dependercy><dependercy> <groupId>io.springfox</原创 2022-01-14 14:07:10 · 383 阅读 · 0 评论 -
RestTemplate调用Webservice接口
RestTemplate调用Webservice接口restTemplate的方式主要就是拼接xml,利用soapUI打开webservice连接之后,可以看到界面话的xml的格式,通过代码层手动构建拼接xml,然后再去发起请求。***ps:不同的webservice对应的xml是不同的,看具体soapUI中服务的格式***开启restTemplate@Configurationpublic class RestTemplateConfig { @Bean public RestTemp原创 2022-01-14 10:36:30 · 3808 阅读 · 0 评论 -
MybatisPlus代码生成器
MybatisPlus代码生成器MP提供代码生成的支持pom依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.6</version></dependency><dependency> <groupId>原创 2022-01-14 09:41:58 · 554 阅读 · 0 评论 -
keytool操作证书
keytool操作证书笔记笔记查看cacerts中所含有的证书:(changeit是cacerts的默认通用密码)keytool -list -keystore cacerts -storepass changeit删除具体别名证书:(alias 后面带别名)keytool -delete -alias server -keystore cacerts -storepass changeit将证书导入cacerts:(别名建议唯一)keytool -import -trustcacerts -原创 2022-01-13 15:19:41 · 6400 阅读 · 0 评论 -
二维码生成--Springboot打包jar的方式
二维码生成带logo生成带logo的二维码pom依赖生成Base64二维码End生成带logo的二维码springboot打成jar之后,读取resources下的静态资源图片,然后根据读取的图片生成到logo的二维码。jar打包之后在linux下不能用一般的方式进行读取,需采用流的形式。获取姿态资源图片InputStream inputStream = GenerateQRCodeUtil.class.getClassLoader.getResourceAsStream(QRCODE_LOGO原创 2021-11-30 10:03:34 · 405 阅读 · 0 评论 -
单例模式
单例模式创建一个私有的构造方法创建一个单例对象获取单例的方法饿汉式/** * 饿汉式 * * @author YangChingyu-k * @date 2020/3/23 15:06 */public class ESingle { private static ESingle instance = new ESingle(); private ES...原创 2020-03-23 15:14:05 · 216 阅读 · 0 评论 -
JDK 1.8 新特性之Stream
jdk1.8Stream学习笔记注:每个stream生成的对象只能自己使用一次/** * @author YangChingyu-k * @date 2020/3/4 14:22 */public class Test04 { public static void main(String[] args) { List<String> list =...原创 2020-03-23 14:59:54 · 244 阅读 · 0 评论 -
冒泡排序优化版
冒泡排序冒泡排序优化版冒泡排序优化版记录一次优化版的冒泡排序算法实现,原理两两相比较,大的放后面,优化处为:如果已经有序了则不需要再次处理/** * 冒泡排序 * * @author YangChingyu-k * @date 2020/3/23 14:29 */public class BubbleSort { public static void main(Stri...原创 2020-03-23 14:48:11 · 319 阅读 · 0 评论 -
java发送email
利用java来发送email这是一个小的发送emai的案例这是一个小的发送emai的案例代码里面放了很多注解,这里多说无益。发送邮件实体类:package com.yqx.emaildemo.demo;import lombok.Data;import org.apache.commons.mail.EmailAttachment;import java.util.List;...原创 2019-10-24 17:49:15 · 1424 阅读 · 0 评论 -
关于Excel的相关操作
对Excel的读入写出两种方式操作JXL方式POI方式两种方式操作在工作中我们经常会用到对excel的读入和写出的一些操作,之前这个一直是我避免的,这次理解完之后写下demo,记录一下。注释放在代码里面,可以直接跑一次尝试(先看效果,再看逻辑代码实现),两种方式都是比较好理解的,会其一,其二自然好理解,先明白后尝试写代码。JXL方式这是之前的方式,但是对excel版本可能有存在报错,记得好...原创 2019-09-11 16:12:15 · 326 阅读 · 0 评论 -
ElasticSearch的多条件组合操作
ElasticSearch的基本使用介绍基本使用结论介绍官方概述:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。基本使用关于客户端创建方式,Index 请看官方API文档,方式都差...原创 2019-07-17 20:09:41 · 1233 阅读 · 0 评论 -
几道简单的算法编程题
面试遇到的一些简单算法程序一程序二程序三程序四程序五程序六程序七题外程序一package com.yqx.demo;/**素数算法问题@author YangChingyu-k*/public class Demo01 {public static void main(String[] args) {int count = 0;for(int i=101; i<=2...原创 2019-04-24 12:50:06 · 1262 阅读 · 1 评论
分享