- 博客(43)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Idea插件-EasyCode实现CURD三层代码生成-告别CURD
1.简介首先声明这是基于Java后端开发的SSM框架,在开发过程中,编码阶段第一步就是实现对各表的增删改查操作,也就是俗称的CURD,一大半的时间都是把以前的代码拿来抄抄改改,即使是使用了Mybatis的逆向工程,service、controller的代码量依然很大,而且还要实现的诸如分页查询、多参数查询等功能,Mybatis逆向工程提供的模板并不能完全适用。在这里,我依据我的编码习惯,基于EasyCode插件,修改完成了我的一套完全生成dao、service、controller代码的宏定义模板,我想
2020-06-14 21:47:15
1518
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JAVA JDK8新特性之Lambda表达式
JAVA JDK8新特性之Lambda表达式1.1 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情.函数式编程思想:...
2020-03-12 11:14:01
527
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 MySql按天统计用户增加数,没有则置0
MySql按天统计用户增加数,没有则置0实现目标及最初的想法发现问题解决办法如何改变文本的样式结语实现目标及最初的想法主要是项目中要使用到统计每天的用户增加总数,想用echarts图标展现出来,最初的sql是这样写的// me_user 用户表 create_date 用户创建日期 day 传入的时间间隔(表示查询从现在起往前多少天) SELECT COUNT(*) AS num,c...
2019-10-12 20:29:10
1598
原创 MyBatis基础
1.基础入门1.2 概述框架——软件开发中的一套解决方案,框架封装了很多细节,使开发者可以使用极简的方式实现功能,大大提高开发效率。MyBatis属于三层架构中的持久层框架,用java编写的。它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程。它使用了ORM思想实现了结果集的封装。ORM:Object Relational Mappging 对象关系映射, 是一种为了解决关系型数据库数据与简单Java对象(POJO)的映射关系的技术 。1.3
2020-05-25 17:12:40
223
原创 SpringAOP基础
0. 案例准备创建名为study的数据库,执行以下sqlcreate table account( id int primary key auto_increment, name varchar(40), money float)character set utf8 collate utf8_general_ci;insert into account(name,money) values('aaa',1000);insert into account(name,money) values
2020-05-20 16:55:08
179
原创 Java实现动态代理——基于子类cglib、基于接口proxy
动态代理特点字节码随用随创建,随用随加载。作用不修改源码的基础上对方法增强。分类基于接口的动态代理基于子类的动态代理1.基于接口的动态代理涉及的类:Proxy提供者:JDK官方要求:被代理对象最少实现一个接口,如果没有则不能使用创建代理对象:使用Proxy类中的newProxyInstance方法newProxyInstance方法的参数ClassLoader:类加载器用于加载代理对象字节码的,和被代理对象使用相同的类加载器 固定写法Class[]:字节码数组
2020-05-20 14:16:38
329
原创 Spring IOC基础 xml配置、注解配置
依赖注入:Dependency InjectionIOC的作用:降低程序间的耦合(依赖关系)依赖关系的管理:交给spring管理1.使用xml配置1.1 ApplicationContext与BeanFactory对两个文件:AccountServiceImpl、AccountDaoImpl进行注入<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/
2020-05-14 19:32:28
208
原创 JAVA线程并发工具类笔记整理Fork-Join、CountDownLatch、CyclicBarrier、Semaphore、Exchange、Callable、FutureTask
1. Fork-Join什么是分而治之?规模为N的问题,N<阈值,直接解决,N>阈值,将N分解为K个小规模子问题,子问题互相对立,与原问题形式相同,将子问题的解合并得到原问题的解。分而治之思想应用:在快速排序、归并排序、动态规划等等。工作密取(workStealing):线程A完成了工作之后可以被调度去帮线程B完成task,为了避免竞争获取任务,从相反的方向获取任务。For...
2020-04-23 00:45:04
289
原创 Java Hash表实现案例及jdk哈希表实现常见面试题
1. 简介散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表的实现:数组+链表、数组+二叉树…图例:2. 案例实现有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,名字,住...
2020-04-22 00:34:17
344
原创 JAVA常见排序算法整理-速记
常见排序算法对比:相关术语解释:(1)内排序:所有排序操作都在内存中完成;(2)外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;(3)n: 数据规模(4)k: “桶”的个数(5)In-place: 不占用额外内存(6)Out-place: 占用额外内存1.冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序...
2020-04-21 16:16:31
154
原创 SpringBoot2.X集成Activiti7实现工作流任务创建、执行(附源码)
代码亲测有效,demo源码已给出。GitHub代码地址:acitviti-demo1. 环境准备Idea安装actiBPM插件因为某些原因,现在在market_place里面搜不到这个插件,大家可以去官网下载(https://plugins.jetbrains.com/),搜索actiBPM。应该没什么严格的版本要求,我下载的是2.E-8,然后得到actibpm.jar,然后File -...
2020-04-20 18:08:37
7771
6
原创 2020/4/12java面试刷题
每日练习计算机组成原理多道程序的执行一定不具备再现性。正确答案: A 你的答案: B (错误)错对多道程序执行(分为顺序执行 和 并发执行)。如果是顺序执行: 可在现如果是并发执行(伪并行):不可在现。CPU 的指令系统又称为()。正确答案: B 你的答案: A (错误)汇编语言机器语言程序设计语言符号语言机器语言是一种 CPU 的指令系统,是由二进制代...
2020-04-12 22:49:17
735
2
原创 Atomic原子操作及CAS原理
我们都知道Volatile保证了可见性、有序性和单次操作的原子性,那么像i++这种的非单次操作应该怎么保证原子性呢?在java.util.concurrent.atomic包里面,有许多提供原子操作的类:在这里面我们最常用的是AtomicInteger、AtomicBoolean,重点要会的应该是AtomicInteger,因为AtomicBoolean内部也是通过AtomicInteger...
2020-04-09 13:39:09
541
原创 2020/4/8java面试刷题
每日练习算法最坏情况下,合并两个大小为n的已排序数组所需要的比较次数_____。正确答案: B 你的答案: B (正确)2n2n-12n+12n-2最坏情况为: 每比较一次,只确定一个元素的位置(最后一次比较确定两个元素的位置,即倒数第一个和倒数第2个),所以总的最坏比较次数为2n-1.有关希尔排序算法叙述正确的是( )正确答案: A B 你的答案: B ...
2020-04-08 23:29:40
383
原创 2020/4/7java面试刷题
每日练习计算机网络对于用交换机互连的没有划分VLAN的交换式以太网,哪种描述是错误的?()正确答案: B 你的答案: C (错误)交换机将信息帧只发送给目的端口。交换机中所有端口属于一个冲突域。交换机中所有端口属于一个广播域。交换机各端口可以并发工作。下列关于曼彻斯特编码正确的描述是()。正确答案: B 你的答案: C (错误)曼彻斯特编码是自含时钟编码的模拟数据编码...
2020-04-07 22:49:16
1178
原创 2020/4/6java面试刷题
每日练习算法对同一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是 ()。正确答案: D 你的答案: D (正确)A. 排序的总趟数B. 元素的移动次数C. 使用辅助空间的数量D. 元素之间的比较次数解析: 折半插入排序,是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不...
2020-04-06 23:14:02
476
原创 JVM学习笔记(一)
笔记速记:运行时数据区域栈 缺省为1M:-Xss堆:-Xms:堆的最小值;-Xmx:堆的最大值;-Xmn:新生代的大小;-XX:NewSize:新生代最小值-XX:MaxNewSize:新生代最大值永久代:Jdk1.7及以前:-XX:PermSize;-XX:MaxPermSize;Jdk1.7以后:-XX:MetaspaceSize;-XXMaxMetaspaceSize;...
2020-04-03 23:12:35
147
原创 JMM内存模型 Volatile 缓存一致性协议
1. 计算机多核并发缓存架构在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存(MainMemory):2. JMM内存模型JMM数据原子操作:read (读取) :从主内存读取数据load (载入) :将主内存读取到的数据写入工作内存use(使用) :从工作内存读取数据来计算assign (赋值) :将计算好的值重新赋值到工作内存中store (存储) :...
2020-04-01 18:53:29
495
原创 Jvm内存模型与GC垃圾回收
1. 总览程序计数器:当前线程执行的字节码的行号指示器,通过改变此指示器来选取下一个需要执行的字节码指令。特征:在线程创建时创建、每个线程拥有一个、指向下一条指令的地址方法区:jdk1.8之后叫元空间,1.8之前叫永久代。是线程共享的存储:类信息、常量、静态变量、方法字节码栈(线程)是线程私有的,方法在执行时会创建一个栈帧(Stack Frame)用于存储局部变量表、操...
2020-03-31 22:39:27
128
原创 MySql命令及Navicat实现数据库备份与还原
1. 命令行:备份: mysqldump -u用户名 -p密码 数据库名称 > 保存的路径(直接在命令行下,不要登录进mysql)还原:1. 登录数据库2. 创建数据库3. 使用数据库4. 执行文件——source 文件路径示例:#将db4数据库备份至D盘生成文件a.sqlC:\Users\878>mysqldump -uroot -p db4 > d://a....
2020-03-27 23:10:13
1540
原创 数据库设计及范式
数据库的设计1. 多表之间的关系 1. 分类: 1. 一对一(了解): * 如:人和身份证 * 分析:一个人只有一个身份证,一个身份证只能对应一个人 2. 一对多(多对一): * 如:部门和员工 * 分析:一个部门有多个员工,一个员工只能对应一个部门 3. 多对多: * 如:学生和课程 * 分析:一个学生可以选择很多门课程,一个课程也可以被很多学...
2020-03-27 19:24:12
82
原创 SQL约束 pk unique foreign key
约束* 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 * 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key* 非空约束:not null,某一列的值不能为null 1. 创建表时添加约束 CREATE TABLE stu( id INT, NA...
2020-03-27 19:22:39
550
原创 SQL 条件查询DQL
DQL:查询语句1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的。 * DESC:降序。 * 注意: * 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。2. 聚合函数:将一列数据作为一个整体,进行纵向的计算。 1. coun...
2020-03-27 19:19:00
96
原创 SQL基础 DDL、DML、DQL
SQL1.什么是SQL? Structured Query Language:结构化查询语言 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。 2.SQL通用语法 1. SQL 语句可以单行或多行书写,以分号结尾。 2. 可使用空格和缩进来增强语句的可读性。 3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。...
2020-03-27 19:13:39
91
原创 IDEA使用SpringCloud构建微服务项目
概览:父工程:Blog子工程:register-server 注册中心,服务的提供方和消费方都要进行注册producer 服务的提供方consumer 服务的消费方1.建立父工程:新建一个Maven项目这个项目中只需要对依赖进行配置,pom文件做一些修改:<?xml version="1.0" encoding="UTF-8"?><project xml...
2020-03-26 21:06:19
281
原创 JAVA反射
反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制反射的作用:1. 可以在程序运行过程中,操作这些对象。2. 可以解耦,提高程序的可扩展性。获取Class对象的方式:1.Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象多用于配置文件,将类名定义在配置文件中。读取文...
2020-03-22 21:16:32
85
原创 Centos7配置MySql5.6 rpm方式
提前准备:MySQL-5.6 rpm包 可以在sohu的镜像网站去下载。将下载好的包上传至服务器,如果不知道怎样上传可以参考这篇博客 CentOs7 配置sftp及sftp常用命令1.卸载centos自带的MariaDB(后面的版本因为mysql有闭源的趋势,开始预装MariaDB了)#检测系统是否安装了mariadbrpm -qa | grep -i mariadb结果:mariad...
2020-03-21 16:05:23
457
1
原创 Linux配置Java环境
1.首先下载jdk,这里推荐使用国内的镜像,下载得比较快,比如:华为开源镜像JDK下载(https://repo.huaweicloud.com/java/jdk)2.下载后使用ftp工具上传至服务器。然后新建放置java的文件夹:mkdir /usr/java3.将压缩包移至该文件夹下,进行解压:tar -zxvf jdk-8u191-linux-x64.tar.gz解压后可...
2020-03-20 18:58:57
124
1
原创 CentOs7 配置sftp及sftp常用命令
配置sftp1.创建sftp服务用户组,创建sftp服务根目录:groupadd sftp2.创建sftp服务用户:useradd -g sftp -s /sbin/nologin -d /ftpuser1 ftpuser-s /sbin/nologin 禁止用户通过命令行登录dsy 用户名-d 指定用户的登入目录 此处指定为/ftpuser1是因为第六步中我们限制sftp登录用...
2020-03-20 14:07:56
3144
1
原创 Linux目录结构及常用命令学习笔记-开发
1. Linux目录结构bin(binaries)存放二进制可执行文件sbin(super user binaries)存放二进制可执行文件,只有root才能访问etc(etcetera)存放系统配置文件usr(unix shared resources)存放共享的系统资源home 存放用户文件的根目录root 超级用户目录dev(devices)存放设备文件lib(libra...
2020-03-20 00:19:50
297
1
原创 JAVA Lambda表达式使用方法引用优化
Lambda表达式是对参数为函数式接口(接口中只有一个抽象方法)的一种简写实现方式。例子:实现Consumer接口重写accept()方法:public static void main(String[]args){ Stream<String> stream = Stream.of("aaa","bbb","ccc"); stream.forEach(new C...
2020-03-19 00:31:58
303
1
原创 JAVA JDK8新概念Stream流及操作集合案例
在Jdk1.8中引入了stream流的概念,这个“流”并不同于IO中的输入和输出流,它是Jdk中的一个类:java.util.stream.Stream,使用流进行处理可以帮助我们提升代码的性能。1. 常见应用使用Stream流对集合进行过滤和遍历操作:import java.util.ArrayList;import java.util.List;public class Demo{...
2020-03-19 00:21:00
549
原创 JAVA TCP通信 Socket-ServerSocket类
1. UDP、TCP协议java.net 包中包含提供了一些类和接口完成低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。java.net 包中提供了两种常见的网络协议的支持:UDP:用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向...
2020-03-18 00:10:15
623
1
原创 JAVA 转换流 InputStreamReader-OutputStreamWriter
1. 字符编码和字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。编码:字符–>字节解码:字节–>字符字符编码Character Encoding : 就是一套自然语言的字符...
2020-03-16 17:27:30
452
原创 JAVA 缓冲流 BufferedInputStream-BufferedOutputStream-BufferedReader-BufferedWriter
1. 概述缓冲流,也叫高效流,缓冲流是相比字节流、字符流具有更高读写性能的操作流,其中包括:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。2....
2020-03-16 16:55:38
394
原创 JAVA Properties属性集使用——实现持久化文本类配置文件
使用场景在项目里面,一些设置、量很少的数据字典等持久化起来可以选择更轻量级的实现方式,即使用文本文件来存储键值对,更改起来方便、实现当然比数据库加表简单得多。代码实现public static void main(String[] args) { //存储properties文件 saveSettings(); //获取properties文件 getSet...
2020-03-13 21:20:47
723
原创 JAVA IO之字符流-Reader-FileReader-Writer-FileWriter
JAVA 字符流-Reader-FileReader-Writer-FileWriter当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。在GBK编码中,一个中文字符占2个字节。在UTF-8编码中,一个中文字符占3个字节。1. 字符输...
2020-03-13 20:35:31
378
原创 JAVA IO之字节流-OutputStream-InputStream-FileOutputStream-FileInputStream
JAVA IO之字节流-OutputStream-InputStream-FileOutputStream-FileInputStream1. 一切皆为字节所有文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都是一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。2. 字...
2020-03-13 14:59:20
375
原创 JAVA之File常用操作、递归遍历文件、文件过滤
JAVA之File常用操作、递归遍历文件、文件过滤1. 构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。public File(File parent, ...
2020-03-12 23:05:00
498
原创 JAVA 线程池到底是什么
JAVA 线程池到底是什么线程池思想概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来...
2020-03-10 19:54:14
382
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人