随笔分类 -  Java

摘要:一、生成java客户端 公司内部服务使用webservice进行交互,而且对方提供了wsdl文件。我的目标是就是通过wsdl文件,完成双方对接。 wsdl文件->java文件 wsimport -encoding utf-8 -keep -p com.wsdl.common sendImMessag 阅读全文 »
posted @ 2024-05-14 15:41 之士咖啡 阅读(356) 评论(0) 推荐(0) 编辑
摘要:强引用、软引用、弱引用、虚引用 强引用,使用根可达法未找到的对象,被认为是强引用。GC会定期随机删除 软引用,通过SoftReference类创建的对象,被认为是软引用。在GC异常前必然回收。 // Worker实例 Worker a = new Worker 0 ; // a 为强引用 // 使用 阅读全文 »
posted @ 2024-02-06 11:38 之士咖啡 阅读(16) 评论(0) 推荐(0) 编辑
摘要:面试题:初始化创建的对象有多大? 答案: 16字节 Object a = new Object(); 16字节 String[] b = new String[2](); 16字节 / 24字节 对象的内存布局 主体内容包括: 对象头: MarkWord、指针、数字长度(数组对象才有) 数据体: 对 阅读全文 »
posted @ 2024-02-05 18:40 之士咖啡 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Warpper 条件构造器定级接口 我们在使用过程,就是去new QueryWarpper<T>()与new UpdateWarpper<T>(),完成相对复杂的sql拼接。 使用方式 1. 使用Mapper Warpper接口的作用是提供一定逻辑去拼接sql语句。通过Dao层去执行sql语句。 代 阅读全文 »
posted @ 2023-12-18 17:09 之士咖啡 阅读(161) 评论(0) 推荐(0) 编辑
摘要:谈谈 AQS AQS(AbstractQueuedSynchronizer)是JUC包下的一个抽象类。虽然是抽象类,但没有抽象方法,即便子类集成,也无法直接使用锁功能。AQS中关于锁的判断TryAcquire与TryRelease方法,默认都是报错,需要子类集成后进行重写,才能使用锁功能。 JUC包 阅读全文 »
posted @ 2023-11-18 14:54 之士咖啡 阅读(332) 评论(0) 推荐(1) 编辑
摘要:日常所说的“核心线程”、“非核心线程”是一个虚拟的概念,是为了方便描述而虚拟出来的概念 在代码中并没有标记哪些线程为“核心线程”或者“非核心线程”。所有线程都是一样的。 为什么使用线程池 减少线程的创建与销毁 减少cpu的资源切换。如果线程很多的情况下,cpu切换会很大消耗资源。线程池的存在可以有效 阅读全文 »
posted @ 2023-10-24 17:51 之士咖啡 阅读(9) 评论(0) 推荐(0) 编辑
摘要:系统运行中,对象创建过程 依据逃逸分析,判断是否能栈上分配? 如果不存在逃逸,该对象就可以通过标量替换分解成成员标量分配在栈内存中,和方法的生命周期一致,随着栈帧出栈时销毁,减少了 GC 压力,提高了应用程序性能。 否则,继续下一步。 判断是否大对象? 如果是,直接分配到堆上 Old Generat 阅读全文 »
posted @ 2023-10-13 17:01 之士咖啡 阅读(7) 评论(0) 推荐(0) 编辑
摘要:Java运行时数据区域 众所周知,Java 虚拟机有自动内存管理机制,如果出现内存泄漏和溢出方面的问题,排查错误就必须要了解虚拟机是怎样使用内存的。 包含:程序计数器(PC)、堆、本地方法栈、虚拟机栈、元空间 下图是 JDK8 之后的 JVM 内存布局。 程序计数器(PC) 内存中一块较小的空间,每 阅读全文 »
posted @ 2023-10-13 14:59 之士咖啡 阅读(13) 评论(0) 推荐(0) 编辑
摘要:内存模型与内存区域 很多时候,二者会混淆,所以咱们先做区分:内存模型与内存区域 内存区域是指JVM运行时将数据分区域存储,强调的是对空间的分配 内存模型(JMM)是定义了线程和主内存之间的抽象关系。即定义了 JVM 在计算机内存中的工作方式 内存模型 抽象关系定义 线程之间的共享区间为主内存,也就是 阅读全文 »
posted @ 2023-10-13 11:48 之士咖啡 阅读(16) 评论(0) 推荐(0) 编辑
摘要:举例说明 以 AtomicInteger 原子整型类为例,一起来分析下 CAS 底层实现机制。 atomicData.incrementAndGet() 源码如下所示: // 自增方法 public final int getAndIncrement() { for (;;) { int curre 阅读全文 »
posted @ 2023-10-10 17:35 之士咖啡 阅读(11) 评论(0) 推荐(0) 编辑
摘要:锁升级 锁升级,是JDK1.6版本中对于synchronized的优化。调查发现一般情况下锁的使用都是为了处理一些极端情况,但多时间,并不会出现并发争强的情况,直接是有synchronized比较重,会影响系统性能。 升级步骤: 无锁/匿名偏向锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 升级特 阅读全文 »
posted @ 2023-10-10 11:12 之士咖啡 阅读(126) 评论(0) 推荐(0) 编辑
摘要:1. 项目启动报错:Failed to start bean 'documentationPluginsBootstrapper' 度娘解释:swagger 的匹配模式进行调整导致,导致默认的匹配默认在spring boot中不会使用,导致报错。 处理方式:(不建议降低spring boot 版本, 阅读全文 »
posted @ 2023-06-28 14:39 之士咖啡 阅读(19) 评论(0) 推荐(0) 编辑
摘要:今天进行开发时,需要将集合进行排序。 走代码时,看到的 TimeSort 类型。 通过 ArrayList的 sort() 方法进入到 TimSort的Sort() 方法,记录部分逻辑。 a – 数组 lo – 数组第一个元素下角标 hi – 数组最后一个元素下角标 (值+1) static <T> 阅读全文 »
posted @ 2023-05-14 16:31 之士咖啡 阅读(61) 评论(0) 推荐(0) 编辑
摘要:报错 今天配置nacos+gateway作为项目的基础,想通过gateway的过滤器进行token的校验。百度后,发送请求,进行网关找到对应的服务,但是没有进行token校验。每次请求都能够进入到方法体中。 自定义过滤器: @Component public class TokenFilter im 阅读全文 »
posted @ 2023-05-07 19:10 之士咖啡 阅读(86) 评论(0) 推荐(0) 编辑
摘要:EasyCaptche 功能有 5个验证码类型,分别为 png类型 jpg类型 中文类型 中文jpg类型 算数类型 这5个对象中都会有graphicsImage() 方法,其功能是将内容画出来。 效果展示: **绘画方法:**在画板上一点一点画 // 以下方法,为 SpecCaptcha 中的 ou 阅读全文 »
posted @ 2023-04-25 17:42 之士咖啡 阅读(70) 评论(0) 推荐(0) 编辑
摘要:为什么用分布式架构 处理,高并发,高可用,大数据 高并发事前: 添加硬件资源 高并发事中: 故障转移、熔断、限流 大数据特点: 读多写少 关键的瓶颈是数据库,处理方案:按读写拆分数据库、按业务拆分数据库、按节点增加数据库 生产库进行设计:数据进行增删改的操作,和少量的试试操作 查询库进行设计: 存放 阅读全文 »
posted @ 2023-04-06 15:08 之士咖啡 阅读(41) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/baidu_35523558/article/details/125255684 1、右键git->Respository-->Stash Changes ![image](https://img2023.cnblogs.com/blog/155 阅读全文 »
posted @ 2023-03-31 16:40 之士咖啡 阅读(181) 评论(0) 推荐(0) 编辑
摘要:Lambda表达式 本质上是一段匿名内部类 ,功效:减少无用的代码,以最简单的方式呈现。()、-、>、{ } 以上为 表达式 函数式接口 @FunctionInterface,要求,接口中只有一个抽象方法,且加上此注解。 Consumer 《T》:消费型接口,有参无返回值 @Test public 阅读全文 »
posted @ 2023-03-27 15:07 之士咖啡 阅读(79) 评论(0) 推荐(0) 编辑
摘要:场景 公司进行发版时,会提供诸多脚本文件。每次都是重复的“打开文件->复制脚本->执行脚本->关闭文件”操作,而且动辄二三十、四五十很费时间。写个小程序,将多个文件合并成一个脚本文件,减少重复操作。 问题 二三十个文件写到同一个文件时,使用GBK编码发现部分中文乱码,部分中文正常。使用UTF-8编码 阅读全文 »
posted @ 2022-11-10 10:51 之士咖啡 阅读(51) 评论(0) 推荐(0) 编辑
摘要:七个设计原则 面向对象编程有七大原则,即经常提到的Design Pattern,提倡它的根本原因是为了代码复用,增加可维护性。设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。 因为设计模式就是基于这些原则的实现,所以很有必要了解这些原则,下面主要对面向对象编程的几个原则进行简单介 阅读全文 »
posted @ 2022-11-07 15:15 之士咖啡 阅读(73) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示