next

SpringBoot + mybatis-plus搭建过程

旧巷老猫 提交于 2020-10-04 11:53:47
一、创建项目 1.File->new->project; 2.选择“Spring Initializr”,点击next;(jdk1.8默认即可) 3.完善项目信息 组名可不做修改,项目名可做修改;最终建的项目名为:test,src->main->java下包名会是:com->example->test;点击next; 4.Web下勾选Spring Web Start ,(网上创建springboot项目多是勾选Web选项,而较高版本的Springboot没有此选项,勾选Spring Web Start即可,2.1.8版本是Spring Web);Template Englines勾选Thymeleaf;SQL勾选:MySQL Driver,JDBC API 和 MyBatis Framework三项;点击next; 5.选择项目路径,点击finish;打开新的窗口; 6.刚创建好的项目目录结构 7.点击右侧的Maven,点击设置(扳手图标)进行项目Maven仓库的配置; 8.配置maven (1)选择本地Maven路径;(2)勾选配置文件后边的选项,然后修改为本地Maven的配置文件,它会根据配置文件直接找到本地仓库位置; 9.配置完后,如果没有自动导包,可以点击左上角重新导包按钮,或者呢个下载按钮,选择下载所有源文件和文档 10.在templates文件下新建index

7000 字说清楚 HashMap,面试点都在里面了

五迷三道 提交于 2020-10-04 09:44:12
我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。 这是上篇文章 有趣的条漫版 HashMap,25岁大爷都能看懂 的文字版。有不少同学说条漫版的比较有意思,简单易懂,但是毕竟图片画不了那么详细,只能从大面而上理解。 真正的了解细节,还得看这一篇。其实是这篇先写完,然后画了不少图片,所以就写了一篇图片版的。本篇 7000 多字,建议三连呦。 在 Java 中,最常用的数据类型是 8 中基本类型以及他们的包装类型以及字符串类型,其次应该就是 ArrayList 和 HashMap 了吧。 HashMap 存的是键值对类型的数据,其存储和获取的速度快、性能高,是非常好用的一个数据结构,每一个 Java 开发者都肯定用过它。 而且 HashMap 的设计巧妙,其结构和原理也经常被拿去当做面试题。其中有很多巧妙的算法和设计,比如 Hash 算法、拉链法、红黑树设计等,值得每一个开发者借鉴学习。 想了老半天,怎么才能简单易懂的把 HashMap 说明白呢,那就从我理解它的思路和过程去说吧。要理解一个事物最好的方式就是先了解整体结构,再去追究细节。所以,我们先从结构谈起。 先从结构说起 拿我自身的一个体会来说吧,风筝我作为一个专业路痴

throws和throw的区别

夙愿已清 提交于 2020-10-04 06:06:16
throws和throw: throws :用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。 用在方法声明后面,跟的是异常类名 可以跟多个异常类名,用逗号隔开 表示抛出异常,由该方法的调用者来处理 throws表示出现异常的一种可能性,并不一定会发生这些异常 throw :则是用来抛出一个具体的异常类型。 用在方法体内,跟的是异常对象名 只能抛出一个异常对象名 表示抛出异常,由方法体内的语句处理 throw则是抛出了异常,执行throw则一定抛出了某种异常 分别介绍: throws 在方法后边声明异常,其实就是自己不想对异常做出任何的处理,告诉别人自己可能出现的异常,交给别人处理; 注意 :方法名后面跟上 throws Exception 证明这个方法里的语句可能会发生异常,注意是可能!在别处如果调用这个方法时,就必须也抛出异常或者用try catch 处理。 throws是可以单独使用的。 eg:(代码示例01) public class Test { public static void main(String[] args) throws Exception { Test test = new Test(); /** * 调用的方法里抛出了异常,依然要调用的2种方式 * 1、继续声明异常(此代码块儿为本方式) * 2、用try catch

多出口BGP网络流量割接案例

北战南征 提交于 2020-10-04 04:31:00
BGP路由的收敛速度是大家有目共睹的事实,但也不能怪它,毕竟算法流程复杂。 今天我要跟大家分享的是依靠IGP的快速收敛来弥补BGP路由收敛时间的问题,同时又保障在流量路径切换时达到零丢包, 很多前辈可能形象的将这一解决方案称为BGP的虚拟下一跳技术。 如图所示,网络中的IGP及BGP已经预先配置完毕。此时 10.1.1.1 与 1.2.3.4 之间的IP连通性已经部署完毕。 R6#ping 1.2.3.4 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.2.3.4, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms OK,验证了连通性之后,我们来部署BGP的虚拟下一跳方案。 步骤一: 在AS 200 的ASBR上添加独立环回口通告进IGP,并在R6上验证效果; R4#enable R4#configure terminal R4(config)#interface loopback 1 R4(config-if)#ip address

新格元方南:自动化的细胞分离和测序前完整解决方案是我们最核心的壁垒 | 专访

故事扮演 提交于 2020-10-04 03:14:58
     对单细胞的 DNA 和 RNA 进行深度测序就能够以更高的分辨率、更全面地掌握细胞的功能,尤其解决复杂系统如肿瘤、神经系统和免疫系统的异质性问题。   传统的基因芯片或者二代测序技术(next-generation sequencing,NGS)需要从超过混合数万个细胞中提取的 DNA 或者 RNA 进行测序,得出平均值,这对于理解人体细胞的多样性有明显的局限性。而单细胞测序可以在单个细胞层面解析基因组及其表达调控特征,可更好的解释细胞的多样性及功能。2009 年,北京大学汤富酬发表了世界第一篇单细胞 mRNA 测序的文章,标志着单细胞测序开始起步。2013 年,单细胞测序技术(single-cell sequencing)荣膺《Nature Methods》年度技术。在 2018 年,高通量单细胞测序技术被 Science 和 Nature Methods 分别提名为年度突破技术之首。   去年,美国单细胞测序公司 10x Genomics 纳斯达克上市成功领跑。从科研到商业化,单细胞测序正在飞速发展。十余年的时间里,诞生了多种不同的测序技术。 可以说,单细胞是目前测序领域中最火热、技术迭代最快的技术。   该领域在国内也颇受资本追逐,去年有四家相关公司宣布获得早期融资。其中,新格元生物科技拿到近亿元的 pre-A 轮融资,由夏尔巴投资领投,华创资本

HDU6805 Deliver the Cake(拆点+最短路)

为君一笑 提交于 2020-10-04 00:41:27
题意 给出一个nm的无向图,有边权。 张三在起点s,目标是t。 点分成左点右点和中间点,到左点的时候必须用左手,到右点的时候必须用右手,中间点没有特殊要求。 张三每次切换左右手都要花费额外的时间,询问起点到终点的最短路。 题解 把每个点拆成两个点,左点拆成两个左点,右点拆成两个右点,中间点拆成一左一右两个点,然后跑dijsktra。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=4e5+ 10 ; const ll inf= 1e18; int n,m,s,t,cost; string ss; struct node { int u; int v; int w; int next; }edge[maxn * 8 ]; int head[maxn* 3 ]; int tol= 0 ; void addedge ( int u, int v, int w) { edge[tol].u = u; edge[tol].v = v; edge[tol].w = w; edge[tol].next = head[u]; head[u] =tol++ ; edge[tol].u = v; edge[tol].v = u; edge[tol].w = w; edge[tol]

初识Java Java基础知识

点点圈 提交于 2020-10-03 21:40:14
   今天给大家带来的是初级Java基础部分的知识:包括 初识Java 、 变量 、 常量 、 数据类型、运算符 、 各种选择结构 、 循环结构 、 数组 等Java的基础语法部分!!!内容、步骤超详细,附有各种案例的源代码(可以直接用O(∩_∩)O~)!!!仔细看完它,扎实的基础不再是空谈,万丈高楼平地起,当有了扎实的基础知识,后面学习面向对象以及项目的开发时,压力就减少了很多,所以基础知识不能被轻易的忽略。 一、初识Java 使用记事本开发程序的步骤(注意:整个操作过程都是英文): 1 编写源程序 首先新建一个文本文件,修改其后缀名为 “ .java" ----> 然后再里面编写我们需要的代码 public class HelloWorld{ public static void main(string[] args){ system.out.println("Hello kh87"); } } public: 公共的公开的,处处可以访问。 class :类,类别,类似狗狗类,电脑类等。 HelloWorld: 类名称,有一个要求,必须和文件名称 保持一致 public static void main(String[] args){} ---->>> 入口方法,所有需要运行的代码都需要放到这里来,固定写法 static :关键字(计算机中已经使用的名字,我们就不能再使用)

啊,这可恶的圆方树

你离开我真会死。 提交于 2020-10-03 20:43:14
嗯 开新坑了—— 圆方树 圆方树 先来讲讲圆方树是个啥。 相对于tarjan对于有向有环图进行的缩点,圆方树在tarjan的基础上进行了进一步的拓展. 他能在无向图上进行,而对于有向图的强联通分量,则变为了无向图中的边双或点双。 而功能也是更加的强大,无向图->树。 但是也是对应能解决一部分的问题。 比如圆方树的板子题:求任意两点之间 一定要经过的点 的个数。 一定要经过的点,即为割点。 对于一个无向图,一个没有割点部分是点双(但是这并不严谨,点双的定义为,点双所涵盖的图中,任意两点之间有两条以上的简单路径相连(个人的理解)) 点(边)双:若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图;(来自度娘) 其实对于上面的圆方树板子题, 一定要经过的点就是割点 ,因为除了这个点,我们是不能再找到另一个路径前往下一个边双的,不然他就不是割点了(删除它以后,对图的连通性没有影响)。 其实圆方树原本是来解决仙人掌的问题的。因为对于仙人掌的每一个环,都是一个点双。。。 所以圆方树如何实现呢? 看这样的图 对于第一个无向图,可以发现它有4个点双。 在第二个图中,有4个方点,每一个对应了一个点双。 如图,我们把每一个点双中的点连接到在新图中对应的方点上。 这就变成了一个树。 一个方点有且只有一个点双对应。但是一个点可能连接很多个方点

在图像旁边垂直对齐文字?

北城余情 提交于 2020-10-03 19:41:55
问题: Why won't vertical-align: middle work? 为什么不 vertical-align: middle 工作? And yet, vertical-align: top does work. 但是, vertical-align: top 确实 有效。 span{ vertical-align: middle; } <div> <img src="http://lorempixel.com/30/30/" alt="small img" /> <span>Doesn't work.</span> </div> 解决方案: 参考一: https://stackoom.com/question/23Ia/在图像旁边垂直对齐文字 参考二: https://oldbug.net/q/23Ia/Vertically-align-text-next-to-an-image 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4468905

数据结构笔记(一):数组、链表

跟風遠走 提交于 2020-10-03 12:20:11
(一)数组 数组( Array )是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 1、 数组支持随机访问,根据下标随机访问的时间复杂度为 O(1) 。 通过 a[i]_address = a[0]_address + i* 元素的大小(字节) ,得到 a[i] 所在的位置。 2、插入: 数组长度为 n ,在索引 k 插入一个元素, k~n 的元素都需要向后搬移。时间复杂度为 O(n) 。(在末尾插入时间复杂度 O(1) ,首位插入则为 O ( n ) , 平均时间复杂度为 O ( n )) 如果数组是无序的,可以在末尾插入,再和第 k 个元素互换,实现 O ( 1 )时间复杂度复杂度的插入。 3、删除 和插入类似。数组长度为 n, 删除第 k 个元素,则 k+1~n 的元素都需要向前搬移一位,时间复杂度为 o(n) 。 如果数组是无序的,可以将末尾的元素和第 k 个元素互换位置,然后再删除,实现 O(1) 时间复杂度的删除。 (二)链表 1、数组与链表在底层存储结构上的区别 (1)数组需要一段连续的内存空间,链表则不需要 (2) 链表通过 “指针”,将一组零散的内存空间串联在一起。 2、常用的链表结构 (1)单链表 (2)双向链表 (3)循环链表 3、单链表 (1) 把内存块 (data) 称为链表的“结点” , 用于存储数据。 next