- 博客(70)
- 资源 (9)
- 收藏
- 关注
原创 Java单元测试实战
在开发过程中,发现很多人并不理解什么是单元测试,所以专门写一章来讲解关于研发人员单元测试相关知识,同时讲一下如何进行代码覆盖率测试。我们通常可以将测试分为两大类,一种是集成测试,一种是单元测试。
2024-03-07 19:41:40
1098
原创 Vue+Vue Router+TailwindCss+Daisyui部署
开始使用 Tailwind 的实用程序类来设计您的内容。将Tailwind 每个层的指令添加到您的文件中。将 Tailwind 指令添加到您的 CSS 中。开始在您的项目中使用 Tailwind。三、安装Tailwindcss。在文件中添加所有模板文件的路径。二、设置IDEA JS版本。使用 运行您的构建过程。四、daisyUI安装。
2023-08-09 19:27:08
704
原创 编程资料汇总
Hadoop、Hive、Spark、Storm、Flink、Hbase、Kafka、Zookeeper、Flume、Sqoop、Azkaban大数据资料汇总
2023-03-09 11:30:27
145
原创 Java并发—Join使用及原理
一、理解阅读JDK Join方法注释如下:Waits for this thread to die.//等待该线程死亡所以其作用是 等待该线程死亡。简单理解就是,调用该方法的线程阻塞,直到被调用Join的线程死亡。我们回忆一下,线程的5种状态,如下:NEW:新建 RUNNABLE:运行中 BLOCKED:阻塞。等待锁,通常是通过synchronize WAITING:等待。通常是调用Object.wait(),Thread.join() TIMED_WAITING:时..
2021-08-01 21:49:06
365
1
原创 每日一学设计模式-模板方法
一、概念在方法中定义算法的骨架,同时将一些步骤的实现推迟到子类。模板方法允许子类重新定义算法的某些步骤,而无需更改算法的结构。二、解释真实世界理解:人的一生都要经过幼年、少年、老年(具体方法),但每个人的一生又各不相同(抽象方法),虽然青年时期都要工作,但你可以选择对工作的态度(钩子方法)。模板方法中三类角色:具体方法(Concrete Method):算法骨架,不想被修改应使用final修饰 抽象方法(Abstract Method):子类必须重写的方法 钩子方法(Hook M
2021-07-22 02:10:23
360
原创 Mybatis快速入门
一、Mybatis快速1.1 Mybatis是什么MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。1.2为什么使用Mybatis通俗的理解,一个接口映射一个数据库SQL。调用传参时,需要将Ja.
2021-07-05 00:09:16
362
原创 RESTful API设计
一、RESTful API简介1.1 RESTfulAPI是什么RESTful API全称是Resource Representational State Transfer(资源表述性状态转移)。R:Resource 资源。例如:user、role、gist、issue、service、routeE:Representational 表述性。数据的表现形式,例如:JSON、XML、CSV、IMG等S:State 状态。资源的状态,例如:创建、更新等状态T:Transfer 转移.
2021-07-02 18:12:39
739
2
原创 阿里p3c
一、说明阿里p3c含义是先进、检测、发现潜在问题的意思。阿里p3c是代码规范检查插件,是根据《阿里巴巴Java开发手册》转化而成的自动化插件。二、引言
2021-04-13 21:08:00
3276
原创 汇编语言-实验7解答
一、题目二、分析首先可以可以看到data中有三个数组,data中数组1起始固定值是0,数组2起始固定值是84(21*4计算得到),数组3起始固定值是168(42*4计算得到)。分别可以表示为0[bp]、84[bp]、168[bx]。table可以看做是一个包含结构体的数组,我们可以叫它数组4,其中年份是es:[si].0,长度为4字节;收入是[si].5,长度为4字节;雇员数是es:[si].10,长度为2字节;人均收入是es:[si].13,长度为2字节。对于数组1、数组2
2021-02-23 01:44:39
2391
1
原创 slog-spring-boot1.1.0文档—第一章 快速开始
一、简介起因我们在日常的后端Java开发中,你是否碰到过以下这些场景:(1)产品经理急匆匆过来,来帮我找下这个页面的XXX数据(2)测试开发在测试环境,测试时,需要和后端频繁交流使用那些表,用来构造测试数据(3)数据开发处理数据写入表中,页面访问与预期不符时,数据开发需要知道执行了那些SQL(4)正式环境运行,接口发生SQL异常、访问缓慢,需要定位SQL通常的做法是从前端页面获得接口地址,搜索接口地址对应后端项目的执行方法,找到对应Mybatis的Mapper.xml中SQL,如
2020-09-24 11:06:51
165
原创 slog-spring-boot1.1.0文档—第二章 开发者文档
一、概述场景示例 图1.1 数据系统架构设计系统主要分为4部分:网站:提供给用户交互界面 业务系统:用户服务、报表服务、财务服务,用于业务处理和查询 数据服务:大数据定时任务加工处理平台,执行结果回写入数据库 数据库:提供数据存储、检索,业务系统和数据系统的存储区系统主要角色分为3个:用户:系统使用者。不了解业务系统、数据服务 数据开发:操作数据平台的开发人员。不了解业务系统、只熟悉SQL、HIVE...
2020-09-24 11:05:33
214
原创 maven-发布到中央仓库
一、前言一般在Java开发中都会使用maven从中央仓库、阿里镜像仓库中获得类库,这些类库都是由世界各地开发者或组织上传,那么如何将自己的开源作品上传至maven中央仓库呢?下面我来实现这个操作。二、创建工单2.1 注册maven注册地址:https://issues.sonatype.org/secure/Signup!default.jspa2.2 登录maven工单系...
2020-04-15 20:14:45
1536
原创 stackoverflow 访问非常慢的解决办法
一、概述stackoverflow是开发常用的提问和解决代码问题网站,但自己访问总是非常的慢,几十秒甚至几分钟网站:https://stackoverflow.com/二、原因分析我们可以对2.1 被墙了stackoverflow只是访问速度很慢,但终归可以打开,如果被墙不可能最后打开的,所以排除。2.2 请求阻塞我们都知道一个网站一般是由多个请求组成的,打开F12...
2018-12-17 20:52:01
10629
15
转载 优秀的代码都是如何分层的
1、背景说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常...
2018-11-08 14:22:07
539
原创 vue.js实现数据驱动视图原理
vuejs实现数据驱动视图原理什么是数据驱动数据驱动是vuejs最大的特点。在vuejs中,所谓的数据驱动就是当数据发生变化的时候,用户界面发生相应的变化,开发者不需要手动的去修改dom。比如说我们点击一个button,需要元素的文本进行是和否的切换。在jquery刀耕火种的年代中,对于页面的修改我们一般是这样的一个流程,我们对button绑定事件,然后获取文案对应的元素dom对象,然...
2018-10-19 15:04:00
554
翻译 Quartz2.2.x官方文档2.2.X—第三章 10.配置,资源使用和SchedulerFactory
Quartz 教程Table of Contents | ‹ Lesson 9 | Lesson 11 ›Lesson 10: 配置, 资源使用和SchedulerFactoryQuartz架构是模块化的,因此要运行需要几个组件组合起来。幸运的是,有一些帮手存在。在Quartz能够工作之前有些重要的组件需要配置:ThreadPool JobStore DataSources...
2018-10-16 19:49:21
274
翻译 Quartz2.2.x官方文档2.2.X—第三章 9.Job存储
Quartz 教程Table of Contents | ‹ Lesson 8 | Lesson 10 ›课程 9: Job 存储JobStore的责任是保存和追踪你给予调度程序的所有"工作数据": jobs, triggers, calendars, 等等. 为你的Quartz调度程序实例选择合适的JobStore是一个重要的步骤。幸运的是, 一旦你了解了它们的区别选择起来是很简单的...
2018-10-16 19:48:11
397
翻译 Quartz2.2.x官方文档2.2.X—第三章 8.SchedulerLiseners
Quartz教程Table of Contents | ‹ Lesson 7 | Lesson 9 ›Lesson 8: SchedulerListenersSchedulerListeners 就像一开始的TriggerListeners和JobListeners,除非他们要接收到调度程序自身的事件通知-不一定要与特定的触发器或者任务相关联。Scheduler-related事件...
2018-10-09 20:27:07
149
翻译 Quartz2.2.x官方文档2.2.X—第三章 7.TriggerListeners和JobListeners
Table of Contents | ‹Lesson 6 | Lesson 8›课程 7: TriggerListeners 和 JobListeners监听器是你创建的对象,基于调度程序的时间来执行相应的行为。你可能猜到了, TriggerListeners 接收与触发器相关的事件,JobListeners 接收与任务相关的事件。Trigger-related事件包含: 事件触...
2018-10-09 20:25:49
215
翻译 Quartz2.2.x官方文档2.2.X—第三章 6.CronTrigger
Table of Contents | ‹ Lesson 5 | Lesson 7 ›课程 6: CronTriggerCronTrigger比SimpleTrigger更经常被使用,如果你需要任务触发调度基于日历周期来循环触发,而不是简单的的指定SimpleTrigger的触发时间。关于CronTrigger, 你可以指定触发调度,例如"每周五的中午"或者"每个工作日的9:30am"...
2018-10-09 20:23:44
317
翻译 Quartz2.2.x官方文档2.2.X—第三章 5.SimpleTrigger
Quartz 教程Table of Contents | ‹ Lesson 4 | Lesson 6 ›课程 5: SimpleTriggerSimpleTrigger 应该可以满足你的调度需求,如果你需要在一个特定时间完成一个工作,或者在一个指定的时间内重复执行。例如,你想要触发器在2015年1月13日11:23:54秒AM触发,或者你想它在这个时间点每10秒再触发5次。有了这些...
2018-09-21 23:56:49
262
翻译 Quartz2.2.x官方文档2.2.X—第三章 4.关于更多Triggers
Quartz 教程Table of Contents | ‹ Lesson 3 | Lesson 5 ›课程 4: 关于更多Triggers就像jobs一样,triggers可以快速、容易的使用,但是多种多样的自定义参数,在你完全使用Quartz之前,你需要去了解和知道。 另外,正如前面所说,你可以选择不同类型的触发器来满足不同的调度需求。在 Lesson 5: Simple Tr...
2018-09-20 20:47:32
177
翻译 Quartz2.2.x官方文档2.2.X—第三章 3.关于Jobs和Job Details
Quartz 教程Table of Contents | ‹ Lesson 2 | Lesson 4 ›课程3: 关于 Jobs 和 Job Details正如你课程2看到的,Jobs十分容易实现,只需要实现接口中的‘execute’ 方法。你还需要了解更多关于jobs的性质,Job接口的execute(..)方法,关于JobDetails。当你实现job类通过代码知道怎么实现不同...
2018-09-18 20:01:54
626
翻译 Quartz2.2.x官方文档2.2.X—第三章 2.Quartz API,Jobs和Triggers
Quartz教程内容表 | ‹ Lesson 1 | ‹ Lesson 3 |课程 2: Quartz API, Jobs And TriggersQuartz APIQuartz API的关键接口:Scheduler - 调度操作的主API. Job - 一个你实现即可执行调度任务的接口. JobDetail - 使用定义的Jobs实例. Trigger - 一个指定了...
2018-09-12 23:58:46
317
翻译 Quartz2.2.x官方文档2.2.X—第三章 1.使用Quartz
Quartz 教程内容表 | 课程 2 ›课程 1: 使用 Quartz在你使用scheduler之前,它需要被实例化(谁猜到了?). 要做到这一点, 你需要使用SchedulerFactory. 有些人可能使用JNDI存储保持一个工厂实例,其他人可能发现实例化很容易,直接使用工厂实例。(例如下面的例子).一旦scheduler实例化,它可以开始,设置为备用模式,关闭。注意一旦sc...
2018-09-12 23:58:32
396
翻译 Quartz2.2.x官方文档2.2.X—第三章 Quartz教程
Quartz 教程Quartz 任务调度教程在你开始教程之前,你首先应该先阅读 Quick Start Guide, 它包含了如何下载、安装、非常基础的Quartz配置。选择一个教程:课程 1: 使用 Quartz课程 2: 使用Quartz API, 介绍Jobs 和 Triggers课程 3: 更多关于 Jobs & JobDetails课程 4: 更多关于...
2018-09-12 23:58:21
602
翻译 Quartz2.2.x官方文档2.2.X—第二章 Quartz新特性
Quartz新特性是什么在Quartz调度2.2中有哪些新特性 2.2在Quartz调度2.2中有哪些新特性 2.2.0 API变化(包含一些不重要的向后兼容性断层) 2.2.0中的新特征 2.2.0中的杂项 我们想感谢社区贡献者,他们为这个版本做了大量的工作,提供想法和补丁。2.2.0 API变化(包含一些不重要的向后兼容...
2018-09-11 23:50:45
344
翻译 Quartz2.2.x官方文档2.2.X—第一章 快速开始
Quartz快速开始指导Quartz快速开始指导 Quartz快速开始指导 下载和安装 配置Configuration 从一个简单应用开始 (主要作者是 Dafydd James)欢迎来到关于Quartz的快速开始向导. 当你阅读这份指导时,希望你能理解这些:如何下载 Quartz 如何安装 Quartz 配置Qua...
2018-09-11 19:10:38
703
原创 JAVA—API和SPI概念
目录概念JDBC实例自己实现一个SPI总结概念英文:What is the difference between Service Provider Interface (SPI) and Application Programming Interface (API)?More specifically, for Java libraries, what makes them an API and/...
2018-05-02 15:30:57
8075
1
原创 Java—Integer缓存机制分析
引言之前看代码的时候,发生一个BUG,因为Integer使用==比较,自己模拟了一个随机数据模拟测试接口,发现没有问题,之后发现是==比较的问题。那Integer为什么不能用==比较,而应该使用equals?为什么大多数测试时发现这样比较并没有问题?今天就以这两个两个问题为引,对Integer缓存机制进行一下分析。测试Integer的缓存机制IntegerCache类实例://Integer缓存成功
2018-04-16 13:29:47
536
原创 Java—String.valueof()和Integer.toString()的不同
引言平常经常使用这两个方法进行int类型转String,一般情况也不区分,今天就深究一下,它们的区别,平常应该使用那个方法更好一些。Integer.toString()方法作用:该方法返回指定整数的有符号位的String对象,以10进制字符串形式返回。内部实现:public static String toString(int i) { if (i == Integer.MIN_VALUE)
2018-04-13 21:50:55
22290
1
原创 Java—String字符串运算符"+"重载分析
引言本章主要是分析字符串重载“+”背后做了些什么;深度分析为什么循环拼接字符串时应使用StringBuilder,而不应使用“+”。重载运算符“+”背后做了什么?首先我们都需要明确字符串对象是不可改变的,所有字符串对象的拼接和修改,实际上都是创建了一个新的字符串对象。在运行时,编译器会将所有的以“a”形式声明的字符串加载到字符串常量池中,之后再次使用时都会从常量池中获取。我们看下面的例子: (1)
2018-04-12 21:57:00
4013
3
原创 Java—Jvm字节码实例解析
本文不对字节码中的每一个指令进行解析,只对几个实例进行解析,以此来了解java文件编译后生产的class字节码。实例中所有所有代码均可直接使用,建议自己重新实验一下。JVM字节码在通常开发情况下没有用处,但是是一种无侵入监控方法(动态字节码技术)、匪夷所思的BUG调试的重要技术手段。一、环境(1)JDK1.7(2)javac Test.java 生产Test.class(3)javap -c Te...
2018-04-12 20:43:49
205
原创 Mysql教程—二进制分发版安装
环境服务器:阿里云服务器 操作系统:CentOs6.8 mysql版本:5.5 内存:2G下载地址:https://dev.mysql.com/downloads/mysql/5.5.html部署下载并解压mysql1> cd /usr/local/2> mkdir mysql5.53> rz [选择本地mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz]
2018-04-10 21:37:30
686
原创 Zookeeper教程—单机和集群安装
下载推荐下载最新稳定版本:Zookeeper-3.4.11下载地址:http://www-eu.apache.org/dist/zookeeper/Zookeeper三种工作方式(1)单点模式:在单台机器上部署,存在单点故障模式,适合开发和测试环境部署。(2)集群模式:在多台机器上部署,适合线上正式环境部署。(3)伪集群部署:在单台环境上部署多个实例,仍然存在单点故障问题,适合开发和测试集群环境。...
2018-04-06 18:25:19
185
原创 Liunx—Jdk安装
Linux安装JDK完整步骤1、检查一下系统中的jdk版本[root@localhost software]# java -version显示如下,说明系统中已有Jdk,需要先对其进行卸载:openjdk version "1.8.0_102"OpenJDK Runtime Environment (build 1.8.0_102-b14)OpenJDK 64-Bit Server VM (b...
2018-04-06 16:53:48
132
原创 Liunx—最常用的服务后台运行命令
使用Liunx运行Web服务器,最常用的命令如下:nohup java -jar command >/dev/null 2>&1 &不需要应用输出信息,但需要异常信息时,可以使用如下命令:nohup java -jar command >/dev/null 2>err.out &Liunx重定向:0、1、2分别表示标准输入、标准输出、标准错误输出。使...
2018-04-06 15:38:23
981
原创 Java核心—第一章 集合
Java中集合类相关的操作被经常的使用,在这一章我们主要描述对集合类的概念、使用、实现和区别。一、概述Java集合主要包括两个部分:Collection和Map(1) Collection概念:表示一组对象,这些对象也成为Cllection的元素。它主要包含两个部分:Set和List。类关系图:Set:元素无放入顺序,元素不可重复(其位置由HashCode决定,也是固定的)。Set之下主要有三种实...
2018-03-29 22:20:56
292
原创 Java—Sort排序
Java中Sort排序是非常常用的方法,这一章我们主要来认识一下Sort的用法和相关的实现。一、数组Sort排序升序排序,直接使用Arrays.Sort方法,例如:int[] array = {10, 3, 6, 1, 4, 5, 9};//正序排序Arrays.sort(array);//会检查数组个数大于286且连续性好就使用归并排序,若小于47使用插入排序,其余情况使用双轴快速排序Sy...
2018-03-25 16:44:34
150979
10
Mybatis帮助文档(中文的哦!)
2016-03-28
QRcode.jar生成二维码的Jar
2016-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人