java
文章平均质量分 68
开发小头目
目前将Java基础回顾一番(按照下面的顺序):https://jingyan.baidu.com/article/c1a3101e110864de656deb83.html
展开
-
如何快速识别图片类型与图片尺寸大小<JAVA版>
如何快速识别图片类型与图片尺寸大小原创 2022-08-16 19:28:13 · 583 阅读 · 0 评论 -
内存优化--LOGBACK导致内存告警
一.故事背景由于开辟新市场需要,开发了新的项部署在海外平台,其中最消耗内存的功能是消费kafka消息(最开始预计一天有1千万的量),部署完之后运行一段时间发现出现内存告警问题。二.分析问题出现内存告警,(新项目是低配置机器 2C4G * 2台)第一个念头是去查看堆空间设置的情况,看到jvm启动命令中堆空间都是直接指定大小,说明问题不是出在堆空间-Xmx3g -Xms3g先不管这些,去查看总的内存使用情况,发现总的内存空间使用将近有92% = 3.68G,那么这多出来使用的0.6原创 2022-02-10 17:59:08 · 5003 阅读 · 0 评论 -
JVM - 基础命令
JVM命令介绍 命令 介绍 例子 jps -l 查看java线程 图1-1 jstat -gc <pid> <time> 查看<pid>对应的 GC日志信息,每<time>ms 打印一次记录 图1-2 jstack[option]pid 检查栈信息,可以查看java stack 和native stack jmap[option]pid ...原创 2021-05-19 13:50:14 · 121 阅读 · 0 评论 -
Spring-AOP事务怎么开启?什么时候失效?为什么失效?
1.事务怎么开启spring事务有固定的几步:初始化DataSource --- 创建DataSource类IOC注入spring 将DataSource交给Spring --- 创建DataSourceTranscationManager 类注入到spring 开启spring事务 --- @EnableTranscationManager接下来就是关于 connection 怎么 开启和提交事务了 (核心点:事务是从connection上开启)大多数同学使用 mybatis + ..原创 2020-07-17 18:48:29 · 1197 阅读 · 0 评论 -
2020-06-05 日常问题: alipay 证书支付回调证书验签cert
头大,支付宝回调一直提示验证签名失败,这换了证书验签的方式怎么就不行了呢??排查问题签名方式是否正确 sign = RSA or RSA2 证书地址是否正确 使用那种验签方式 rsaCheckV1 orrsaCheckV2 or rsaCertCheckV1 orrsaCertCheckV2 我实际处理问题的方式,将支付宝返回给我们的数据拿出来直接跑main方法校验: public static void main(String[] args) { ...原创 2020-06-08 16:30:48 · 1434 阅读 · 0 评论 -
2020-06-02 日常问题: 对接 alipay 证书支付 (创建订单&支付订单)
2020-06-02 天气:晴转小雨 , 最近在整装修,事情一件接一件,坑也是一个接一个(有时间整个装修踩坑日记)ps.对接支付宝说比对接微信简单,其实都差不多现在来讲讲我支付宝(alipay-sdk-4.5.0-all 版本)对接的过程吧!!!!!一.创建账号 入门第一步,这里要说明的点是需要注意保存信息使用实名认真的支付宝进行登陆 创建应用(需要选择是给哪端使用:app / 网页or移动应用 / ... ) 使用什么支付方式需要开通对应功能(例:App支付宝登陆 / ...原创 2020-06-08 15:48:13 · 3994 阅读 · 0 评论 -
2020-05-13 问题记录: mysql事务-可重复读:导致的一次血案
2020-05-13: 天气晴今天在工作中碰到个有趣的问题:spring 事务管理 mysql更新操作,出现数据幻读,非法更新步骤 A事务 B事务 1 开启事务 开启事务 2 更新A表.name 数据 = 2,name来源B表.name 3 检查B表.name=2字段是否有被A表.name引用,如果有就直接结束本次操作 4 检查name数据=2 是否存在,不存在就抛异常 5 更新B表...原创 2020-05-14 19:17:19 · 155 阅读 · 0 评论 -
java-加载配置资源的姿势!
目录1.SPI使用JDK自带方法:ServiceLoader2.关键点是:load 接口,接口需要配置到 指定目录3.执行结果4.原理分析: 待补充SPI 加载配置文件,一种很常见,但以前我却不知道的方式1.SPI使用JDK自带方法:ServiceLoaderpublic class SpiTest { @Test public vo...原创 2020-04-14 10:27:53 · 170 阅读 · 0 评论 -
java设计模式,我该怎么记住你?
2020/4/13:晴-今天的风,有些萧瑟啊 在了解Spring源码的时候,发现这其中穿插了大量的设计模式,大量的复用代码,非常灵活的扩展性。的确是一件艺术品~,好记性不如烂笔头,这是老师多年一直唠叨的,依旧这么重要。话不多说,开整目录模版模式模版模式1.我自己设置了个记录点:模版包含 步骤public abstract template{ void ...原创 2020-04-13 16:28:53 · 257 阅读 · 2 评论 -
2020-03-21:问题记录:mybatis中foreach循环set ,array ,list...
日常工作中,手写sql一般没什么问题,就是在mybatis中一些小细节要是印象不深刻,那会花费一些时间,影响我们书写的流畅性,就比如最近碰到的mybatis中写foreach 循环 set 的时候1.最开始版本Long countByIds(@Param("adTaskIds") Set<Long> adTaskIds, @Param("userId") Long use...原创 2020-04-01 17:10:46 · 2566 阅读 · 0 评论 -
2020-03-21:问题记录:防伪码生成
背景:公司自主产品,想在系统内嵌套防伪码导出和验证功能,防止产品被假冒 阶段--目前还处于起步阶段,自主品牌名气也还不太大,所以对于防伪码量级上要求不大,在10万级别上1.产品内容 产品的需求可以分成2部分:防伪码的批量导出 单次导出防伪码数量预估在万级左右 导出的防伪码必须是全系统唯一 防伪码校验 防伪码格式校验前端做,减少http请求消耗 单...原创 2020-03-27 20:59:20 · 584 阅读 · 0 评论 -
2020 - 面试刷题 ING(java基础知识点巩固)
养成每年都去面试市场看看的好习惯很重要,看清形势,也认清自己 zzz ...知识点都要见识过,至少有印象:喔唷~~~ 不给性感面试官,在线发offer的机会喽目录1.Java基础知识点分析1.Java入门知识点分析什么是面向对象 * java有哪几种基本数据类型 java语言基本格式 普通类/ 接口类 / 抽象类 / 枚举类 的共性 普通类/ 接口类 区别? 普通...原创 2020-03-14 17:03:56 · 601 阅读 · 2 评论 -
2020-01-10 问题记录::mybatis类型localDateTime报错- No typehandler found
2020-01-10 下雨记录一次mybatis出现的问题:java.lang.IllegalStateException: No typehandler found for property startTime新项目:我是用工具生成mapper 和 xml ,内部都是使用的localDateTime,在配置的时候出现这个问题 typeHandler 类型处理器缺失,必然是没...原创 2020-01-10 20:02:49 · 962 阅读 · 1 评论 -
2020-01-03 问题记录: :一次 await 导致的问题
日期:2020年1月3日 天气 :阴转小雨 1.在技术对接群中有人喊话:导入供应商合同功能一直没有反应?心想,又是个瞎操作的,我先去测试账号上试一把 ???打脸,赶紧找问题:导入操作是有开始/结束日志的,先看看日志打印到哪儿了 ----------grep XXXX common-info.log ,只有开始的日志没有结束的???现在我手上掌握的信息:...原创 2020-01-06 18:56:07 · 187 阅读 · 0 评论 -
spring - 事务,是你吗?
问题:日志中出现这个东西,原来是方法是不带事务的呢,喔唷了解了[2019-12-05 16:11:18,917],[DEBUG],{},org.mybatis.spring.SqlSessionUtils,Creating a new SqlSession[2019-12-05 16:11:18,917],[DEBUG],{},org.mybatis.spring.SqlSession...原创 2019-12-05 21:56:51 · 118 阅读 · 3 评论 -
支付流程 - 支付宝
原创 2019-11-20 17:56:27 · 136 阅读 · 0 评论 -
java基础- 番外 - retry:放在循环之前的它
retry:for (;;) { ... for (;;) { if (A) break retry; if (B) continue retry; }}第一次看到这个retry:东西一脸懵 什么东西??然后自己的理解了一下,发现是为了解决多层循环嵌套 搞出来的一个东西要是在...原创 2019-02-17 21:54:37 · 339 阅读 · 0 评论 -
Mybatis专题- Mapper.xml的解析
学习mybatis之后主要的操作工作就是在mapper.xml上了,所以我要详细的将xml的标签库分析一遍一个mapper.xml文件的抬头:不能少的呢,加入这个之后在编写xml的时候能够自动提示许多标签<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DT...原创 2019-03-18 22:10:47 · 305 阅读 · 0 评论 -
Mybatis专题-关于动态标签
XMl 文件涉及到那些标签<mapper namespace=""><resultMap resultType ><constuctor><result typeHandler<sql><insert> delete update selectpa...原创 2019-04-22 21:52:55 · 211 阅读 · 0 评论 -
java-String的源码解析
想要将String这个java基础的类吃透,在2019/03/12晚上10点:没有头绪,不知道怎么开头,简单粗暴一点吧,我要将里面的每个方法吃透--------然后再取java-api 上面翻看一遍哪里有偏差http://www.runoob.com/manual/jdk1.6/java/lang/String.html#format(java.util.Locale,%20java.lang....原创 2019-03-14 00:27:16 · 160 阅读 · 0 评论 -
java-基础-jsr-303-valid参数校验
1.使用场景2.引用的jar包 javax.validation.constraints 讨论的内容主要是这个包目录下的注解使用⚠️参数校验注解解释 Name 解释 范围 NotBlank(mesage=) 注解的字符串不能为 “” / 空 只能为String类型 NotNull(mesage=) 注解的参数...原创 2019-07-19 13:56:19 · 208 阅读 · 0 评论 -
java-基础- 分页的一些工具方法
1.List类型进行分段分页private static List<Object> pageList(List<Object> list, int page, int size){ int listSize = list.size(); int fromIndex = (page * size); int endIndex = (fromInd...原创 2019-08-14 11:16:08 · 90 阅读 · 0 评论 -
mybatis - 日常工作踩坑
问题11.8 新映入时间类使用出现的问题 :LocalDateTimehttps://blog.csdn.net/hustzw07/article/details/82824358关于不同jar 配置的关联性问题2:Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: E...原创 2019-08-23 09:25:24 · 643 阅读 · 2 评论 -
java - 随机生成人名/指定位数字符串/手机号 --工具方法
我是一个B话不多的人1.随机生成人名/指定位数字符串package ls.example.test.util;import java.io.*;import java.util.Random;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Copyright © 2017年 Al...原创 2019-09-07 09:32:59 · 1618 阅读 · 0 评论 -
java - log日志的配置
参考 :https://blog.csdn.net/RyanDon/article/details/82589989在配置好日志框架 log4j2.xml之后运行一直报错:Logging system failed to initialize using configuration from 'classpath:log4j2.xml'java.lang.IllegalStateE...原创 2020-01-10 18:13:03 · 532 阅读 · 0 评论 -
Nosql - redis 的学习
redis: 是非关系型数据库--- 性能优秀,吞吐量 能达到 10万条/s 为什么性能这么好的: redis是直接操作内存的,底层是C语言实现,更加贴近系统内核 redis是单线程执行的,减少线程竞争与资源的占用 redis命令简单: set key value,语法规则考究,存储的数据结构合理 使用nio的方式---设置固定槽点,每一个槽点针对某...原创 2019-09-25 14:10:54 · 112 阅读 · 1 评论 -
Mybatis专题--我为什么学习mybatis?
以下是一些我自己了解到,和总结的内容,哪里有问题,看到的friend 底下留言,共同进步,不胜感激1.最原始的jdbc连接-(针对mysql,其他类似)我们最开始学习肯定都是从JDBC的底层实现开始入门的,但是在过了一年或者更久之后,慢慢的已经对底层的实现生疏了,用惯了那些半自动,或者全自动的框架,让我们变成了一个傻瓜,呵呵想要使用数据库我们当然需要安装好数据库啦--------这...原创 2019-03-17 22:19:25 · 265 阅读 · 0 评论 -
java进阶-7-D -多线程-Lock专题- ReentrantReadWriteLock
相比起ReentrantLock ,ReentrantReadWriteLock 更像是将2个ReentrantLock包装到了一起,一个ReentrantLock是独占锁-writeLock,另外一个是共享锁-readLock ,当然这个内部还有一些润滑剂:比如写锁可以降级成读锁,但是读锁无法升级成写锁...1.ReentrantReadWriteLock 实现了那些接口?1....原创 2019-02-27 16:08:47 · 131 阅读 · 0 评论 -
java进阶-7-D -多线程-Lock专题- ReentrantLock类
开篇一张,故事全靠~~~:根据AQS来自己实现一个Lock吧import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.con...原创 2019-02-27 16:03:42 · 149 阅读 · 0 评论 -
java进阶-7-D -多线程-Lock专题- AQS 之 获取锁:acquire / acquireQueued
1.这个AQS里面最基础也是使用频率最高的一个方法 : acquire - 独占式获取锁 public final void acquire(int arg) { if (!tryAcquire(arg) && acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) ...原创 2019-02-27 16:00:21 · 1697 阅读 · 13 评论 -
java进阶-7-D -多线程-Lock专题- AQS源码剖析
AQS-AbstractQueuedSynchronizer 介绍1.开篇第一件事情,就是先将 Node 这个内部静态类搞清楚了Node{SHARED Node 共享锁的标志 (默认值 new Node()) EXCLUSIVE Node 独占锁标志 (默认 为 null) CANCELLED int 1 该节点的线程已经...原创 2019-02-27 15:59:21 · 145 阅读 · 0 评论 -
java进阶-7-D -多线程-Lock专题- Lock接口
Lock接口1.从关系图来看,这个Lock算是一个核心接口,非常多的地方实现了它就这一眼看过去这几个方法已经把一个锁应该做的事情都列举出来了,可以通过声明Lock实例化对应的接口实现类,来达到面向对象的封装性。 不错Lock的锁与Synchronized的相比 有几个特性 ---实现层面上不同 / Lock可以重入,synchronized是独占 / 只有Lock会造成活锁...原创 2019-02-22 22:21:34 · 163 阅读 · 0 评论 -
java基础-7-C -多线程-锁~锁~锁 (不含分布式锁)
JDK给我们提供了很多种不同的锁,每种锁也会有一些独特的性质写这篇文章的目的是为了我自己记录,所以有些我很熟悉的知识点我可能就点一下不会深挖。1. synchronized 关键字在JDK1.5之前的主流锁,强占锁针对的目标是对象,只能对引用类型,也就是继承了超类Object的类创建的对象 (注:在使用Integer对象 a 的值 在 -128~127 之间,能够锁住对象,在...原创 2019-02-22 22:16:01 · 101 阅读 · 0 评论 -
java进阶-线程池 - C - 2 - ThreadPoolExecutor类的变量解释
ThreadPoolExecutor 类变量 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static final int COUNT_BITS = Integer.SIZE - 3; private static final int CAPACITY ...原创 2019-02-17 19:19:25 · 614 阅读 · 0 评论 -
java进阶-线程池 - C - 1 - ThreadPoolExecutor类
先把图拿出来这个类想看懂要花点时间:1.基础知识:位运算,automicInteger概念,volatile意义,基本设计模式2.里面有几个内部类 CallerRunsPolicy AbortPolicy DiscardPolicy DiscardOldestPolicy ,这几个类呢叫做线程池的饱和策略3.还有一个worker内部私有类,这个类就厉害了...原创 2019-02-17 18:39:24 · 271 阅读 · 0 评论 -
java基础-1-数据类型
1.基本数据类型数据类型有哪些整形 大小(byte) 浮点型 大小(byte) 布尔类型 大小(byte) 字符 大小(byte) byte 1 float 4 boolean 1 char 2 short 2 double 8 int...原创 2019-02-11 12:12:32 · 134 阅读 · 0 评论 -
java进阶-线程池 - B - 1 -作为所有线程池的父类,AbstractExecutorService抽象类有话要说
标题的 B-1 相对于A 所属层级已经不同,相同层级用数字1、2...表示继续看图说话先大胆的发表自己的理解:这里用抽象类封装核心功能点,可以选择性实现接口中的方法,又能保证扩展性与维护性不被破坏下面来看看这里面到底有些什么鬼东西?1. submit invokeAny invokeAll 方法是对ExecutorService接口中方法的实现,newTaskFor d...原创 2019-02-15 16:42:37 · 548 阅读 · 0 评论 -
java进阶-线程池-番外-CompletionService,到底是什么完成了的服务
这个类--JDK源码上没有标明出处,有故事,抱着学习的态度,某度了下 No Found (:这个方法的主要目的是可以获取到完成的任务,从而避免因为任务队列顺序的原因导致:前面的线程任务阻塞后面已经完成的任务被获取。1.接口 CompletionService//两个作用:提交任务、获取已完成任务的Futurepublic interface CompletionServi...原创 2019-02-15 15:18:08 · 407 阅读 · 0 评论 -
java进阶-线程池-番外-Future,我要你有何用
Future清清白白的接口,出现它是源于,1.5之前的线程运行完之后是没有返回值的 runnable -void ,有些场景不是很方便,出现callable,有了返回值,返回一个Future<T>O~~NO,这个不是很难,我就引用网上的小伙伴的总结了 在Future接口中声明了5个方法,下面依次解释每个方法的作用:cancel 方法用来取消任务,取消任务成功返回tr...原创 2019-02-14 18:25:49 · 221 阅读 · 0 评论 -
java进阶 - 线程池 - A - ExecutorService
标注:这是一条不归路,想看的请按照 XXX-OOO-英文字母-ZZZ 英文字母的顺序不要命的走下去Doug Lea 牛逼!!!好,开始了,画了张小图1.先要说一下线程池 垫在最屁股底下的东西Executor:这个接口就一个方法目前就我不成熟的看法:这个方法是为了 用一下接口特性: 维护性, 扩展性2.然后再看一下上面一层薄膜哦哟,也是个接口,经过我吃了...原创 2019-02-14 17:48:18 · 481 阅读 · 0 评论