技术
笨菜先飞
菜鸟的路上越走越远
展开
-
Swagger2的配置及使用
Swagger2的配置及使用官网文档:https://swagger.io/docs/Swagger是什么1、是一款让你更好的书写API文档的规范且完整框架。2、提供描述、生产、消费和可视化RESTful Web Service。3、是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。swagger的基础注解介绍swagger通过注解生成接口文档,包括接口名、请求方法、参数、返回信息的等等。@Api:修饰整个类,描述Controller的作原创 2020-10-08 18:44:02 · 963 阅读 · 1 评论 -
redis学习笔记
redis学习笔记redis学习笔记安装基础知识redis的数据类型redis的五大数据类型常见数据类型操作命令redis的配置文件持久化RDB(Redis DataBase)AOF(Append only File)AOF启动/修复/恢复Rewriteredis学习笔记安装下载方式一1. 获取安装源wget http://download.redis.io/releases/redis-5.0.3.tar.gz2. 解压tar zxvf redis-4.0.8.tar.gz方原创 2020-11-30 15:52:36 · 652 阅读 · 0 评论 -
JUC详解8
JUC详解8四大函数式接口functionPredicateConsumersupplierStream流式计算ForkJoin异步回调四大函数式接口lambda表达式、链式编程、函数式接口、Stream流式计算函数式接口:只有一个方法的接口:@FunctionalInterfacepublic interface Runnable { public abstract void run();}//可以简化编程,在新版框架含有大量应用函数式接口functionpublic原创 2020-10-24 21:07:49 · 238 阅读 · 0 评论 -
JUC详解7——线程池
JUC详解7——线程池线程池三大方法七大参数四种拒绝策略最大线程该如何定义线程池线程池:三大方法,七大参数,四种拒绝策略池化技术程序运行的本质:占用系统资源!优化资源的使用===>池化技术线程池、连接池、对象池、内存池。。。。。创建、销毁十分浪费资源池化技术:先创建好一些资源,有人要用,就来我这里拿。用完之后还给我线程池的好处:降低资源消耗提高响应速度方便管理线程复用、控制最大并发数、管理线程三大方法import java.util.concurrent.Execut原创 2020-10-24 19:07:27 · 317 阅读 · 0 评论 -
JUC详解6——读写锁
JUC详解6ReadWriteLock(读写锁)阻塞队列:BlockingQueue四组apiSynchronousQueueReadWriteLock(读写锁)多读一写/** * 读-读:可共存;读锁:共享锁:一次可以被多个线程占有 * 读-写:不可共存 * 写-写:不可共存;写锁:独占锁:一次只能被一个线程占有 */public class ReadWriteLockTest { public static void main(String[] args) {原创 2020-10-24 16:59:29 · 360 阅读 · 0 评论 -
JUC详解5
JUC详解5Callable常用的辅助类CountDownLatch(减法计数器)CyclicBarrier(加法计数器)Semaphore(信号量)Callable可以有返回值可以抛出异常方法不同:run/call怎么让Callable能够启动线程呢?测试import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.Fu原创 2020-10-24 14:41:51 · 379 阅读 · 0 评论 -
JUC详解4——集合相关
JUC详解4集合CopyOnWriteArrayListList不安全set不安全Map不安全集合CopyOnWriteArrayList集合类不安全List不安全先看一段代码:public class ListTest { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); for (int i=0;i<=1原创 2020-10-24 11:41:00 · 190 阅读 · 0 评论 -
JUC详解3——8锁问题
JUC详解38锁问题1、标准情况,两个线程是先发消息还是,先打电话? 先发消息再打电话3、添加一个普通方法,两个线程是先发消息,还是先发hello?4、两个qq(对象),两个同步方法,两个线程是先发消息还是,先打电话?5、增加2个静态同步方法,一个对象,两个线程是先发消息还是,先打电话?7如果此时再增加一个普通的synchronized方法,是哪个先执行?总结:8锁问题1、标准情况,两个线程是先发消息还是,先打电话? 先发消息再打电话import java.util.concurrent.TimeUn原创 2020-10-24 10:09:36 · 322 阅读 · 0 评论 -
JUC详解2——生产者消费者
JUC详解2生产者消费者使用synchronized方法解决使用lock解决生产者消费者问题高频面试题:一个主线程三个子线程,如何让三个子线程执行结束再执行主线程生产者消费者线程间的通信问题——生产者消费者问题一个简单的生产者消费者模型(使用synchronized)使用synchronized方法解决package com.fly.juc.pc;/** * @Description 生产者、消费者 * 线程间通信问题————生产者、消费者问题:等待唤醒;通知唤醒 * 线程交替执行:P:原创 2020-10-24 09:03:11 · 337 阅读 · 0 评论 -
MySQL将查询到的多条语句插入表中
MySQL将查询到的多条语句插入表中插入单行数据时:#insert into 表名 (字段名1 ,字段名2,....,字段名) values(值1,值2,....,值); insert into myschool.`result` (studentNo ,subjectNo ,examDate ,studentResult ) values(1,2,2020-09-08 00:00:00.0,56 );当插入多条数据#insert into 表名 (字段名1 ,字段名2,....,字段名原创 2020-08-29 10:38:09 · 1741 阅读 · 0 评论 -
Lambda表达式
Lambda表达式语法//() -> {}(String first, String second)->{first.length()-second.length()};注: ():参数;->:指向; {}:代码体函数式接口对于只有一个抽象方法的接口,就可以提供一个lambda表达式。这种接口称为函数式接口@FunctionalInterface //一个接口只能有一个lambda的函数接口public interface lambdaInter { void原创 2020-08-26 16:01:24 · 130 阅读 · 0 评论 -
Springboot 进行分页操作(通过原生sql语句进行)
为什么进行分页操作因为列表内容太多了,所以使用分页进行显示。分页的核心就是计算每页多少记录和总页数以及第几页。操作mysql的分页语句:select * from student limit 页数*页面大小,页面大小1、首先先写如何计算每页多少记录和第几页, 每页展示数据需要先进行设置:pageSize=4; 获取总条数:sql语句在持久层(Dao)编写获取总条数方法public int getCount() { //获取总的条数 String原创 2020-07-31 11:00:53 · 2114 阅读 · 0 评论