
java相关
文章平均质量分 84
dustinqi
蜘蛛可怕却有用,猫虽可爱但废物
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实况:老菜鸟自力更生从零开始重学spring目标是画出一张唬人大图(三、spring启动的入口&搭建源码阅读环境)
有个关键问题需要想明白:spring是怎么“启动”的。回想一下,我平时工作时对spring的使用都是“无痕”的:在idea里写完业务代码,然后直接在idea内部启动tomcat后就可以本地调试了——这说明spring是被tomcat启动的。而spring本质上就是一段java代码,因此入口也无非是一个main方法。原创 2024-07-18 17:45:33 · 709 阅读 · 0 评论 -
实况:老菜鸟自力更生从零开始重学spring目标是画出一张唬人大图(二、源码下载&编译)
学习spring的源码,其实就是学习spring framework,常常耳闻的一些东西例如“spring-context”、“spring-webmvc”、“spring-aspects”等都是spring framework的组件。至于为什么排除这个模块,在官方的导入说明中写的很清楚(前文有图),因为spring-aspects会依赖外部模块Aspects,从而可能引起IDEA的编译异常。下载之后看到一个spring-framework的目录,里面就是spring的java源码了。原创 2024-06-15 19:25:53 · 987 阅读 · 0 评论 -
实况:老菜鸟自力更生从零开始重学spring目标是画出一张唬人大图(一、起步阶段)
不过这种调试也有缺点:调试的是spring编译之后的*.class文件(即通过pom引入的jar包),因此无法编辑,不能加注释或者修改某段代码。原创 2024-06-09 11:17:58 · 686 阅读 · 2 评论 -
关于java并发你需要了解的基础
java多线程入门干货!持续更新...性能问题上下文频繁切换:切换时需要记住当前线程运行到哪,要保存当前线程所有变量活跃性问题饥饿:优先级低的线程永远抢不到资源死锁:A等B,B等A活锁:A让B,B让A线程安全加锁解决: 进程内的用JVM内部的锁,跨JVM的用分布式锁。难点在于如何判断是否存在线程安全问题。...............原创 2022-10-11 16:56:31 · 592 阅读 · 0 评论 -
ReenTrantLock简介和源码导读
ReenTrantLock简介和源码导读,入门干货,初学者耐心读一读必有收获原创 2022-10-11 16:54:34 · 585 阅读 · 0 评论 -
war包部署记录(centOS7+tomcat7)
Java应用的自动集成和部署,现在有很多成熟的框架了。人工部署的方式非常原始和低效,但是极端情况下无法避免。这里简单记录一次人工部署的过程。java的安装&环境配置确认是否已有java环境:java -version搜索可用的java安装包:yum search java-1.7搜出来很多:直接用yum安装devel版本:yum install java-1.7.0-openjdk-devel.x86_64装完后可以确认下版本:yum安装java的默认路径:/usr/lib/原创 2021-11-03 15:47:07 · 761 阅读 · 0 评论 -
JAVA线程池学习小结和源码初探
目录1、创建一个线程池的基本方法1.1、参数解释1.2、方法说明2、几种常见线程池总结2.1、CachedThreadPool2.1.1、参数2.1.2、特点2.2、FixedThreadPool2.2.1、参数2.2.2、特点2.3、SingleThreadExecutor2.3.1、参数2.3.2、特点1、创建一个线程池的基本方法public ThreadPoolExecutor(int corePoolSize, int maximumP原创 2021-08-02 14:19:35 · 172 阅读 · 0 评论 -
JVM类加载机制
引导类加载器:加载JVM运行所需的,位于JRE的lib目录下的核心类库,比如rt.jar(jdk内置方法)、charsets.jar(字符集)扩展类加载器:加载JVM运行所需的,位于JRE的lib目录下的ext扩展目录中的jar应用程序类加载器:加载ClassPath路径下的类包(一般就是我们自己写的java类)自定义加载器:加载用户自定义路径下的类包...原创 2021-07-29 11:17:26 · 113 阅读 · 0 评论 -
java刷题之常见数据结构算法整理(updating...)
理解常见数据结构算法链表1.理解链表反转的过程链表1.理解链表反转的过程public ListNode reverse(ListNode listNode){ // pre可以理解成一个新链表 ListNode pre = null; // 整个反转的过程可以理解为:将原链表cur拆开,组成新链表pre ListNode cur = listNode; // 新链表cur拆完,反转后的链表pre也就生成了原创 2021-03-22 09:50:53 · 177 阅读 · 0 评论 -
mybatis源码初探(二) 整合spring详细原理+源码
文章导航一、mybatis和spring的整合二、mybatis二级缓存1. 二级缓存简介&简单使用2.二级缓存配置和原理一、mybatis和spring的整合首先回顾一下mybatis的启动过程(详情可以参考上一篇文章):String resource = "resources/mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 读取配置文件获取sqlSessio原创 2021-01-19 22:21:23 · 220 阅读 · 0 评论 -
mybatis源码编译的一些坑
讲道理,如果mybatis和mybatis-parent的版本号一致的话,大概率是不会遇到坑的。但是不排除某些人的自残倾向,非要用不同版本的mybatis和mybatis-parent,这样的话可能会遇到以下这些坑:“cannot resolve plugins xxx”的问题:导致这个问题的原因是没有指定插件的版本号,在pom文件中为相应插件指定version即可,例如:或者干脆注释掉:“Cannot resolve plugin org.apache.maven.plugins:mav原创 2020-12-28 17:01:36 · 992 阅读 · 3 评论 -
mybatis源码初探(一) 源码编译&db配置加载和sql执行过程
jdbc -> dbUtils -> myBatis代码示例mybatis三大核心流程初始化阶段。代理阶段。回想一下mybatis使用,在进行CRUD的时候,为什么可以直接使用Mapper接口,而不需要实现类?答案就是jdk的动态代理:我们将Mapper接口传给jdk的动态代理,然后动态代理会返回一个实例。...原创 2020-12-22 14:55:07 · 419 阅读 · 0 评论 -
java算法题刷题常用工具(updating...)
java算法题刷题常用工具ComparatorPriorityQueueComparatorPriorityQueue原创 2020-11-11 14:20:41 · 1713 阅读 · 2 评论 -
直接上手:Java多线程入门的第一篇笔记
小白很着急,多线程的原理可以以后慢慢探索,但是工作要先完成,希望这篇文章有所帮助。原创 2020-09-05 01:15:25 · 272 阅读 · 0 评论 -
redis中set()方法参数
* EX seconds − 设置指定的到期时间(以秒为单位)。* PX milliseconds - 设置指定的到期时间(以毫秒为单位)。* NX - 仅在键不存在时设置键。* XX - 只有在键已存在时才设置。举例:SET mykey "1" EX 60 NX或RedisHandle.getInstance().set(mykey, "1", "NX", "EX", 60);使用举例:for(IptTrafficRecord itr : itrList){ if(Redi原创 2020-05-12 14:01:33 · 6003 阅读 · 0 评论 -
利用redis实现时间锁
在定时任务中添加时间锁,可以防止集群中不同机器重复执行此定时任务:@Scheduled(cron = "*/5 * * * * ? ")void missedCallsPush() {/*** 时间锁*/if(!getLock(IM_TIME_LOCK, false)){ return;}时间锁代码实现:/*** lock* @param key key* @return boolean true分钟维度/false 秒钟维度*/private boolean getL原创 2020-05-12 13:56:50 · 793 阅读 · 0 评论