- 继上篇手写spring后(点这里看原文),感觉有必要继续把mybatis框架也手写出来,供深入理解。 继上篇手写spring后(点这里看原文),感觉有必要继续把mybatis框架也手写出来,供深入理解。
- 最近详细阅读了spring的框架,从简单的配置到注解,从加载到运行,从返回简单string到返回视图,看的很慢。有不理解的地方就一次又一次debug流程,梳理运行过程和调用的方法。为了加深当前对spring的理解,也防止以后遗忘,又花了几天时间把写了一个迷你版的spring框架。迷你spring已经实现了注解和视图,支持tomcat运行和main方法直接调用。代码都上传到了github,请大家下载 最近详细阅读了spring的框架,从简单的配置到注解,从加载到运行,从返回简单string到返回视图,看的很慢。有不理解的地方就一次又一次debug流程,梳理运行过程和调用的方法。为了加深当前对spring的理解,也防止以后遗忘,又花了几天时间把写了一个迷你版的spring框架。迷你spring已经实现了注解和视图,支持tomcat运行和main方法直接调用。代码都上传到了github,请大家下载
- java环境变量配置 java环境变量配置
- 【Java核心技术解读】变量和魔鬼字符串字符串笔记 【Java核心技术解读】变量和魔鬼字符串字符串笔记
- 上个月的双十一,这月的双十二,打折不断,优惠不停。电商系统中发放优惠券,是一个比较常见的功能。今天讲一个优惠券开发实战。 上个月的双十一,这月的双十二,打折不断,优惠不停。电商系统中发放优惠券,是一个比较常见的功能。今天讲一个优惠券开发实战。
- 十一假期后第一天工作,当大家还沉浸在国庆长假的快乐的时候,我被业务部门急促的电话拉回到现实,生产环境上有页面数据都是空的,而节前还都是好好的。 这就奇了怪了,过了一个国庆,这个bug就闪现出来了? 十一假期后第一天工作,当大家还沉浸在国庆长假的快乐的时候,我被业务部门急促的电话拉回到现实,生产环境上有页面数据都是空的,而节前还都是好好的。 这就奇了怪了,过了一个国庆,这个bug就闪现出来了?
- Object 是 Java 中的基类,几乎所有的 Java 类都直接或间接地继承自 Object。因此,Object 类中的方法是 Java 中最常用的方法之一,本文将介绍 Object 类的常见方法及其作用。 1、equals()equals() 方法用于比较两个对象是否相等。在 Object 类中,equals() 方法实现的是对象的引用比较,即判断两个对象是否指向同一个内存地址。但在大... Object 是 Java 中的基类,几乎所有的 Java 类都直接或间接地继承自 Object。因此,Object 类中的方法是 Java 中最常用的方法之一,本文将介绍 Object 类的常见方法及其作用。 1、equals()equals() 方法用于比较两个对象是否相等。在 Object 类中,equals() 方法实现的是对象的引用比较,即判断两个对象是否指向同一个内存地址。但在大...
- 0x01 前言Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言、用于在运行时查询和操作对象图;语法上类似于Unified EL,但提供了更多的特性,特别是方法调用和基本字符串模板函数。SpEL 的诞生是为了给 Spring 社区提供一种能够与Spring 生态系统所有产品无缝对接,能提供一站式支持的表达式语言0x02 SpEL 语法SpEL使用... 0x01 前言Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言、用于在运行时查询和操作对象图;语法上类似于Unified EL,但提供了更多的特性,特别是方法调用和基本字符串模板函数。SpEL 的诞生是为了给 Spring 社区提供一种能够与Spring 生态系统所有产品无缝对接,能提供一站式支持的表达式语言0x02 SpEL 语法SpEL使用...
- 昨天粉丝在后台问了我一个问题,他写了一个TreeMap,但是通过key获取的值是null,百思不得其姐😔,也百思不得其寐,让我们来一看究竟。 昨天粉丝在后台问了我一个问题,他写了一个TreeMap,但是通过key获取的值是null,百思不得其姐😔,也百思不得其寐,让我们来一看究竟。
- 最近有个项目需要将后端数据以json方式传给前端。但是如果后端有字段为null,使用原始的new Gson()就排除为null的字段,不传给前端。缺少字段前端会报错。于是就按照网上方法使用了new GsonBuilder().serializeNulls()。好吧,现在每个字段都能传给前端了,但是有个潜在不足,就是为null的字段实际变成了"null"字符串给前端了。 最近有个项目需要将后端数据以json方式传给前端。但是如果后端有字段为null,使用原始的new Gson()就排除为null的字段,不传给前端。缺少字段前端会报错。于是就按照网上方法使用了new GsonBuilder().serializeNulls()。好吧,现在每个字段都能传给前端了,但是有个潜在不足,就是为null的字段实际变成了"null"字符串给前端了。
- 0x01 前言在Java中可用于执行系统命令常见的方式有两种,API为:java.lang.Runtime、java.lang.ProcessBuilder0x02 java.lang.Runtime@GetMapping("/runtime/exec") public String CommandExec(String cmd) { Runtime run = Runt... 0x01 前言在Java中可用于执行系统命令常见的方式有两种,API为:java.lang.Runtime、java.lang.ProcessBuilder0x02 java.lang.Runtime@GetMapping("/runtime/exec") public String CommandExec(String cmd) { Runtime run = Runt...
- 首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运。所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。其次,在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的协商机制―—中断,也即中断标识协商机制。 可以通过一个标... 首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运。所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。其次,在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的协商机制―—中断,也即中断标识协商机制。 可以通过一个标...
- 乐观锁和悲观锁乐观锁悲观锁(synchronized关键字和Lock的实现类都是悲观锁) 什么是悲观锁?认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改 适合写操作多的场景,先加锁可以保证写操作时数据正确(写操作包括增删改)、显式的锁定之后再操作同步资源 synchronized关键字和Lock的实现类都是悲观锁... 乐观锁和悲观锁乐观锁悲观锁(synchronized关键字和Lock的实现类都是悲观锁) 什么是悲观锁?认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改 适合写操作多的场景,先加锁可以保证写操作时数据正确(写操作包括增删改)、显式的锁定之后再操作同步资源 synchronized关键字和Lock的实现类都是悲观锁...
- 插值查找1.原理介绍插值查找算法类似于二分查找,不同的是插值查找每次从自适应id处开始查找。将折半查找中的求mid索引的公式,low表示左边索引,high表示右边索引.key就是前面我们讲的findValint midindex = low +(high -low)*(key -arr[low])/(arr[high]-arr[low])2.代码实现public class InsertVa... 插值查找1.原理介绍插值查找算法类似于二分查找,不同的是插值查找每次从自适应id处开始查找。将折半查找中的求mid索引的公式,low表示左边索引,high表示右边索引.key就是前面我们讲的findValint midindex = low +(high -low)*(key -arr[low])/(arr[high]-arr[low])2.代码实现public class InsertVa...
- 查找算法介绍在Java中,常用的查找算法有四种1)顺序(线性)查找2)二分查找/折半查找3)插值查找4)斐波那契查找1.线性查找算法1.需求引入有一个数列:{1,8,10,89,1000,1234},判断数列中是否包含此名称 【顺序查找】要求:如果找到了,就提示找到,并给出下标值。2.代码实现public class SeqSearch { public static void mai... 查找算法介绍在Java中,常用的查找算法有四种1)顺序(线性)查找2)二分查找/折半查找3)插值查找4)斐波那契查找1.线性查找算法1.需求引入有一个数列:{1,8,10,89,1000,1234},判断数列中是否包含此名称 【顺序查找】要求:如果找到了,就提示找到,并给出下标值。2.代码实现public class SeqSearch { public static void mai...
上滑加载中
推荐直播
-
华为云IoT开源专家实践分享:开源让物联网平台更开放、易用
2024/05/14 周二 16:30-18:00
张俭 华为云IoT DTSE技术布道师
作为开发者的你是否也想加入开源社区?本期物联网平台资深“程序猿”,开源专家张俭,为你揭秘华为云IoT如何借助开源构建可靠、开放、易用的物联网平台,并手把手教你玩转开源社区!
去报名
热门标签