- 博客(55)
- 资源 (5)
- 收藏
- 关注
原创 【Java】一文读懂逃逸分析
逃逸分析(Escape Analysis)是一种编译器优化技术,它分析程序中的对象分配,以确定对象的作用域和生命周期。具体来说,逃逸分析要确定一个对象是否会逃逸出它被创建的方法或者作用域,换句话说,就是判断对象的引用是否会被传递到当前方法或作用域之外。**栈上分配:**如果逃逸分析确定某个对象不会逃逸出方法,那么这个对象可以在栈上分配内存,而不是在堆上。栈上分配的好处是当方法执行完毕后,对象的内存可以立即被释放,这样可以避免垃圾收集器的介入,减少垃圾回收的开销。不进行逃逸分析的情况下,每次调用。
2024-01-23 20:01:22 958
原创 mac好用的软件整理
本人后端开发,mac好用的一些软件,分享给大家。会不定期更新。软件没有排名先后。1.SwitchResX这个插件可以调整各个屏幕的分辨率设置Hidpi等等,比内置的功能强很多。如果你想要外接显示器,但是又要用mac的触摸板,这时候你需要关掉mac自带的显示器。该怎么操作呢?这个软件就可以解决。2.Scroll Reveser当你外接鼠标的时候,你会发现鼠标的滚轮与默认方向相反,这是mac的触摸板需要所决定的。这个软件可以帮助你实现触摸板和鼠标的反向滚动,让你同时方便地使用触摸板和鼠标。To .
2021-10-19 21:54:36 452
原创 公平锁和非公平锁
我们知道,公平锁是在抢锁过程中排队,而非公平锁是在抢锁过程中不排队。但其实不好理解,不排队,就是插队放到队伍的头位置吗?? 肯定不是,为了进一步理解,下面有一段代码。 //非公平锁 final boolean nonfairTryAcquire(int acquires) { final Thread current = Thread.currentThread(); int c = getState(); if (c == 0) { //区别重.
2021-08-10 17:00:49 348
原创 线程池keepAliveTime参数的进一步解读
在读线程池源码,对keepAliveTime有了进一步的理解,这里记录一下。从源码一步步往下走吧。ThreadPoolExecutor中Worker子类 // 循环查看并运行thread的一个核心方法 final void runWorker(Worker w) { Thread wt = Thread.currentThread(); Runnable task = w.firstTask; w.firstTask = null; .
2021-08-10 16:45:53 935
原创 SpringBoot 自动写Starter
springboot自动装配原理第一次使用springboot的时候,都感觉很神奇。只要加入一个maven的依赖,写几行配置,就能注入redisTemple,rabbitmqTemple等对象。这一切要从spring的的@bean和@Configuration注解说起如果spring扫描到一个类加了@Configuration注解,那么这个类下面的@bean注解的返回对象就会注册到spring的容器里面然后就能通过@Autowired注解获取beanspring容器以springboot里面的
2021-08-10 13:48:18 160
原创 彻底理解三级缓存和循环依赖(二)
又读了一遍源码现在对三级缓存有了新的理解,才发现网上很多写的三级缓存相关的东西都是错的,包括我自己之前的第一篇,也有理解不准确的地方,这里我简单描述一下正确的理解过程。但是还是建议在阅读上一篇彻底理解三级缓存和循环依赖文章之后,再对此文进行阅读。三级缓存singletonObjects 保存了所有完整的bean对象。earlySingletonObjects 保存了调用过三级缓存中getEarlyBeanReference()的,且还未完全创建的bean对象。singletonFactorie.
2021-08-08 23:24:01 249
原创 Spring源码阅读(一)
Spring源码阅读,我们直接用idea,maven,然后通过Spring最基本的xmlApplicationContext进行xml加载获取bean的形式进行处理,通过断点执行,进行源码的阅读。本文需要一定的Spring编程经验,内容都是博主理解和整理的,如有问题请指出。0、准备阶段首先构建项目,用最原始的方法使用Spring。目录Userpackage com.yin.demo.bean;import lombok.AllArgsConstructor;import lombo.
2021-08-07 15:00:20 1298
原创 Mybatis如何执行一个SQL命令
平时我们在spring中用Mybatis的时候,都是用一个Mapper接口,然后通过xml或者注解进行配置。ServiceImpl @Override public List<Map<String, Object>> getSignImgs(Map<String, Object> params) { return modulesMapper.getSignImgs(params); }ModulesMapper @.
2021-08-06 10:11:24 414
原创 sql中的explain
idid列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。select_typeA:simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary。且只有一个C:union:union连接的两个select查询,第一个查询是.
2021-08-04 17:04:30 232
原创 springboot事件机制
因为ApplicationContest实现了ApplicationEventPublisher,所以实现了spring的事件通知机制ApplicationEvent ApplicationListener::onApplicationEvent// 定义一个事件public class EventDemo extends ApplicationEvent { private String message; public EventDemo(Object source, Stri
2021-08-04 16:25:31 566
原创 完全弄懂spring中的事务传播机制(required,require_new,nested)
Spring中的事务传播机制spring中的事务传播机制之前一直不是很懂,这次整理了一下,对于难理解的三种传播机制做了比较分析,这三个在项目中还是比较常用的,建议理解消化,对比记忆。下面先把整理好的表格放上来。主要应对的三种情况的异常:外层正常try-catch内层,内层出错;外层正常,内层出错,外层不try-catch;外层出错,内层正常。下面我把测试代码块放上来目录结构数据库表结构TestMapperpackage com.example.demo.mapper;import
2021-08-04 15:48:16 821
原创 CSDN文章复制
有时候看到一篇好文章,可能希望把其md格式复制下来,并做一些修改。但是CSDN做了限制,不能长篇复制,这里提供一个技巧。因为这种限制都是js进行控制的,chome浏览器提供了禁用js的功能(不知道其他浏览器引擎有没有提供),禁用js,然后可以复制了。Step1 F12Step 2 打开设置Step 3 勾选disable js完成,然后你可以试试复制md了注意需要先跳转到博客页面,再进行复制。因为禁用js之后,许多页面跳转也都不管用了...
2021-07-02 10:13:23 411
原创 彻底讲懂Spring singletonBean循环依赖与三级缓存
这里指的是单例的、非构造依赖的循环引用。很多人都知道Spring用了三层缓存来解决循环依赖,但是不知道其原因,为什么是三级缓存?二级缓存不行吗?一级缓存不可以 ?如果是构造函数中存在循环依赖,则报错。bean的流程:beanDefinition->bean实例化->填充属性->aware->beanPostprocessor.before->init->beanPostProcessor.after->单例池+三级缓存Spring 解决循环依赖的核心就是.
2021-06-21 15:59:38 560
原创 华为笔试-Java岗-2021-6-16
笔试2021-6-16一共是3道编程题,考得还算比较基础吧,就是华为的编辑器用着不太舒服,快捷键也都不能用,涉及到输入输出的时候也比较麻烦,总的来说对Java不是很友好,思路一下子出来了,代码和调试搞了半天。看有些大牛已经写了博客,我借用一下他们的题目描述,然后写一下分析吧。代码我就不敲了(想想还是敲一下吧,不然真看不懂改了)。思路:直接想到的是用树做,然后把路径遍历出来。写着写着发现其实可以不用树来做。每一行给出的两个节点,左边的节点可能作为根节点,而右边的节点肯定不会是根节点。所以用一个S
2021-06-17 18:49:38 941 6
原创 JMeter使用
JMeterJava后端测试软件安装官网插件下载更改语言测试Http请求添加线程组添加HTTP请求添加监听:这里我们添加’查看结果树’,其他的监控效果自行添加转成application/json发送如果后端spring使用了@RequetBody配置,则需要将请求头的Content-Type改成application/json.不然会出现报错@RestControllerpublic class TestController { @RequestMap
2021-06-16 15:38:40 178
原创 logback配置文件,搭配springboot使用,显示好看
XML文件logback-prod.xml<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true --><!-- scanPerio
2021-06-15 15:57:06 516
原创 科研基础:Latex环境配置教学+Zotero教学
有些学生做科研,导师又从来不教我们怎么做,有些工具又是做科研必不可少的,但自己摸索又很费时间,所以我做了一期做科研的工具汇总,教教大家怎么用。包括:sic-hub , latex , zoteroLatexlatex是一个编辑器,用于期刊的撰写。复杂的就不讲了,直接配置环境。这里用vscode + miktex实现。Step1 安装VSCode官网下载miktex官网下载百度网盘下载链接:https://pan.baidu.com/s/1bfsUGEGzWPchhyRkJb19iQ.
2021-06-08 16:19:56 2128 2
原创 Latex中引用文献的排序
在使用latex写期刊时,会遇到引用文献的排序问题。一般来说期刊需要我们引用期刊自带的引用格式,也就是会使用期刊自带的.bst文件\bibliographystyle{css.bst}如果引期刊自带的引用格式,其参考文献的引用排序就会按照它的要求来,并不会按照引用顺序假如我们要按照引用顺序来编号引用,该怎么办?很多帖子说可以加入\bibliographystyle{unsrt} 让其按照引用顺序排序,但是试了一下不管用。因为会.bst文件中的引用顺序冲突。所以我们要去修改.bst文件中的引用排
2021-06-08 15:19:58 3750
原创 LeetCode刷题——树
124.二叉树中的最大路径和二叉树的后续遍历package LeetCode;/** * @Classname LC124 * @Description [Tree]// https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/ * @Date 2021/4/19 10:27 * @Created by yin */public class LC124 { private int ans = 0;
2021-05-31 20:03:42 107
原创 招商银行一面记录——Java岗
面经-招商银行面试时长 28分钟 。 面试官不凶,也不是很和蔼,就基本没有表情。有一些内容没记起来,大致是如下几块主要内容如下自我介绍项目介绍分布式多线程JVM一道编程题自我介绍学校,项目,研究方向。。。项目介绍首先我在项目介绍的时候,项目介绍的并不流畅。只是简单地介绍了一下,这一块还需要重新整理,比如面试官让你简单介绍一下项目。可以从项目是什么,架构为什么这么设计,过程中遇到什么问题,怎么解决的。讲怎么解决的时候只需要讲用了什么工具解决就可以了,不需要深入讲,这样之后面试官
2021-05-27 19:02:15 1990
原创 各种排序算法总结-Java版
这里showDetails标志表示是否输出算法排序的过程import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * @Classname SortMethodStudy * @Description TODO * @Date 2021/5/19 15:22 * @Created by yin */public class SortMethodStudy { static boo.
2021-05-21 14:33:16 111
原创 Java基础
文章目录Java基础1.面向对象的特征封装继承多态2.基本数据类型3.int&Integer4.Math.round(-11.5)5.参数传递6.StringBuilder,StringBuffer7. JVM 加载 class 文件的原理机制8.接口与抽象类9.final10.try..finally11.线程通信图12.面向对象六原则一法则13.设计模式14.为什么要用单例模式而不是直接使用类方法15.重写16.重载17.Java中的基本数据类型占几个字节18.Integer自动拆装箱的问题19
2021-05-18 21:24:07 756
原创 【数据结构】一句话理解红黑树
红黑树 看了很多帖子,感觉都没有把红黑树讲透,或者说把红黑树讲的很复杂。其实理解红黑树,就一个点:红黑树就是一个多插树多插树:红黑树的特性:(1)二叉树(BST)性质。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点](4)如果一个节点是红色的,则它的子节点必须是黑色的(不能两个红的连在一起)。(5)该树是完美黑色平衡的,即任意空链接到根结点的路径上的黑链接数量相同。其实红黑树就是一个平衡多插树把红色节点与其
2021-04-30 15:03:27 168 1
原创 Spring-learning2
Spring-2二、Spring容器单例bean与单例模式不同,单例bean表示根据Class引申的BeanDefinition是单例的,但是他依旧可以创建多个实例。单例、原型:这两个是相对的概念,而且把他们放在一起就可以更好的理解单例bean。首先讲一下原型bean,表示把原本的class作为一个原型,每次的BeanDefinition都是根据原型创造的。1.单例池ConcurrentHashMap singletonObject beanName Object2.BeanFact
2021-04-09 16:08:21 121
原创 Spring-learning-1
Spring-1一、定义Bean的几种方式Bean是什么:JavaBean、SpringBean,Bean是一种对象,Bean的对象具有set,get,toString等方法@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class User { private String name;}xmlApplicationContext applicationContext = new ClassPathXml
2021-04-09 16:05:51 128
原创 RabbitMQ 简单汇总
RabbitMQ这是一份RabbitMQ复习资料,长时间没有用消息队列会忘记其机制,用于简单回顾其基本用法。了解之后,其具体用法可以查看源码,也可以查看中文文档:http://rabbitmq.mr-ping.com/ClientDocumentation/java-api-guide.html控制台地址 http://localhost:15672/〇、初始连接ConnectionFactory factory = new ConnectionFactory();# 更改参数factory
2021-04-06 22:10:43 156
原创 【吐血推荐】win键使用技巧
win键使用技巧整理了一些比较实用的win快捷键, 希望对大家有所帮助win+d 切回桌面win+e 打开explorerwin+tab 切换/新建桌面win+L 锁屏win+g 打开VBox,可以录屏win+数字 打开添加到任务栏的快捷方式win+v 通过剪切板,粘贴历史复制的信息以上就是整理的比较好用的几个功能。例如锁屏,在家里养宠物的时候很好用。切换桌面,在工作中如果突发紧急任务,可以打开新的桌面工作,不影响你原有的工作进程。欢迎留言实用的win键使用技巧...
2021-03-02 20:44:24 327
原创 推荐一个科研党的翻译神器
知云文献翻译免费、高效、多引擎。可以选择不同的翻译引擎下载地址:https://www.yuque.com/xtranslator/zy/gga6xa
2021-02-27 14:59:45 517
原创 idea字体放大
百度一查,很多帖都写的不对啊,idea字体放大缩小在idea中本身就支持的,勾选一下就好了setting>Editor>General>勾选上右边的Change font size with ctrl+Mouse Wheel 就可以了,跟大部分软件一样,ctrl+滚轮放大缩小...
2021-02-01 16:50:27 992
原创 mysql索引优化精简版
mysql索引优化精简版在mysql数据库查询优化过程中,记录了一些关于索引的要点。1.【索引】那些类型比较少的字段(例如性别,订单状态)等不需要建立索引。索引的选择性较低。所谓索引的选择性(Selectivity),是指不重复的索引值(也叫基数,Cardinality)与表记录数(#T)的比值。2.【索引】尽量使用in,between而不使用(<,>等),between实际上是多值匹配(in),正常走索引。如果用范围查询,只能使用单边范围,则只有单个索引会起效果,联合索引后续所命中
2021-01-13 10:12:03 139 2
原创 Spring Aop 的配置与运用
Spring Aop 切面编程通俗的来说就是,可以实现:对于选中的一部分方法,对其进行批量的处理。下面我在springboot中配置aop,然后讲一个最简单的使用。配置1.添加maven依赖(修改pom.xml)<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId>
2020-10-17 10:04:20 109
原创 jasper生成动态报表
jasper生成动态报表业务:客户点击链接(get请求),在页面显示报表。根据请求信息动态获取报表。环境/工具:springboot ,IDEA编译器, TIBCO JasperSoftTIBCO JasperSoft 下载地址(百度云)链接:https://pan.baidu.com/s/12AE1be2NW_2zpGFtoN52_A提取码:yin8#mermaid-svg-NaMLrgMoWElcQzBE .label{font-family:'trebuchet ms', v
2020-08-20 12:59:01 961
原创 Pytorch中格式的转化
Python中 list, numpy, torch格式相互转化1、list 转 numpyndarray = np.array(list)2、numpy 转 listlist = ndarray.tolist()3、list 转 torch.Tensortensor=torch.Tensor(list)4、torch.Tensor 转 list先转numpy,后转list...
2020-04-24 18:36:39 349
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人