自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 SQL优化

1.大批量插入数据当使用load命令导入数据的时候,适当的设置可以提高导入的效率 主键顺序插入:因为InnoDB类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率。如果InnoDB表没有主键,那么系统会自动默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这点,来提高导入数据的效率。 关闭唯一性检验:在导入数据前执行 SET UNIQUE_CHECKS=0,关闭唯一性校验,在导入结束后执行SET UNIQUE_CHECKS=1,

2020-12-26 17:06:21 139

原创 java反射机制总结

反射

2020-12-22 15:50:28 178

原创 Mysql索引简单了解

索引是一种为了加速数据表中行记录检索的数据结构mysql:B+树特点:在根节点和支节点(中间节点)之上没有数据区 所有的数据内容保存在叶子节点之上 数据的组织和查找过程采用的是左闭合的比较方式基于B树的优势:B+树是B-树的Plus版本,IO的效率高于B-树 基于索引的表扫描性能高于B-树,排序能力更强于B-树 基于索引的查询B+更趋于稳定(固定的查询次数)创建索引需要注意的问题索引列的离散性,离散性越高越好,重复度越低越好。 索引项的比较规则 (隐式转换) 联合索引遵循

2020-12-22 13:53:34 134

原创 JDK14.0.1_HashSet源码总结

目录1.概述2.属性3.构造方法4.相关操作4.1添加元素4.2移除元素4.3遍历、判空、包含5.克隆机制(浅拷贝)6.序列化机制7.去重机制1.概述此类实现Set接口,该接口由哈希表(实际上是HashMap实例)支持。其依靠HashMap的key不可重复,来保证将来加入到HashSet中的元素也不重复,也保证元素最多只能有一个null值,由于HashMap的key是无序存放的,所以HashSet的元素同样也是无序的。 它不保证集合的迭代顺序。 特别是,它不能

2020-12-17 15:55:47 95

原创 JDK14.0.1_Vector&Stack源码总结

目录1.Vector1.1Vector概述1.2属性1.3构造方法1.4相关操作1.4.1添加元素1.4.2扩容1.4.3删除元素1.4.4获取元素1.5克隆机制1.6序列化机制2.Stack2.1概述2.2相关操作3.为什么Vector与Stack很少使用了?1.Vector1.1Vector概述Vector类实现可增长的对象数组。 像数组一样,它包含可以使用整数索引访问的组件。 但是, Vector的大小可以根据需要增大或缩小,以适

2020-12-16 17:09:24 64

原创 JDK14.0.1_LinkedList源码总结

1.概述List和Deque接口的双向链表实现。 实现所有可选的列表操作,并允许所有元素(包括null )。继承了AbstractSequentialList接口,实现了Cloneable接口,是可克隆的,实现了Serializable接口,是可序列化的,实现了Deque接口,List接口,具有Deque双向队列与list链表的特性。注意,虽然LinkedList实现了Deque接口,但是LinkedList大部分Deque不太一样: a) 一般Deque不允许null值,...

2020-12-16 11:28:55 98

原创 虚拟机类加载机制(深入理解java虚拟机)

1.概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接的工作的语言不通,在java中,类型的加载、连接和初始化都是在程序运行期间完成的。2.类加载的时机...

2020-12-15 19:29:57 116 1

原创 JDK14.0.1_Arraylist源码总结

1.简介它是一种基于动态数组的

2020-12-14 21:11:48 164 2

原创 JDK14.0.1_HashMap源码总结

目录1.HashMap1.1简介1.2数据结构1.3类结构与属性1.4.构造方法1.5操作1.5.1添加操作1.5.2获取操作1.5.3删除操作1.5.4扩容1.5.5遍历1.6解惑:1.6.1.为什么会使用红黑树?1.6.2.为什么设置链表树形化阙值为8?1.6.3.为什么设置树形化的最小数组长度为64?1.6.4.容量为什么是2的次幂?1.HashMap1.1简介HashMap基于哈希表的Map接口实现,是以key-value存

2020-12-11 10:36:45 110

原创 垃圾收集器(深入理解java虚拟机)

新生代:1.Serial收集器单线程收集器:只会使用一个CPU或一条手机线程去完成垃圾收集工作,必须暂停其他所有的工作线程,直到收集结束。优点:简单高效(与其他收集器的单线程比),没有线程交互的开销,收集效率高,一般运行在Client模式下的虚拟机中。2.ParNew收集器Serial收集器的多线程版本,使用多条线程垃圾回收,在单CPU表现不好(存在线程交互开销)。优点:多运行在Server模式下的虚拟机,只有它能与CMS收集器配合工作3.ParallelScaveng.

2020-12-08 14:49:09 67

原创 Nginx入门(安装+配置文件解析+反向代理)

本篇博文是在看尚硅谷中快速入门Nginx视频时所做的笔记,写的比较浅,而且可能会有错误或者不当的地方,请指正!1.windows下Nginx的安装下载地址:http://nginx.org/en/download.html下载解压就行,然后在cmd中到你解压的文件夹下,运行start nginx命令即可,运行tasklist /fi "imagename eq nginx.exe" 命令即可查看是否成功启,也可访问http://localhost:80查看是否出现以下界面,如能访问则启动.

2020-10-29 10:12:58 104

原创 java设计模式demo—观察者模式

目录介绍(选自菜鸟教程)实现编写被观察者接口编写观察者接口实例化被观察者实例化观察者测试代码介绍(选自菜鸟教程)意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决:使用面向对象技术,可以将这种依赖关系弱化

2020-10-14 14:59:48 106

原创 RabbitMq中queueDeclare()参数小结

通道绑定相应的消息队列函数:queueDeclare(String queue,boolean durable,boolean exclusive,boolean autoDelete,Map<String, Object>arguments)参数1(String queue):指定队列的名称,如果队列不存在,则会自动创建一个队列,名称为传入的queue;参数2(booleandruable):定义队列特性是否需要持久化,如果为false,即在下一次启动mq时,队列会被删除。如果为.

2020-09-16 11:00:50 860

原创 回溯算法(组合例)

最近几天力扣每日一题一直与回溯相关,因此想自己简单总结一下什么是回溯算法,如何解相关的回溯算法题。

2020-09-15 10:48:27 309

原创 中序遍历的三种方式(递归,非递归,非递归常数空间)

目录1.递归:思路与算法2.非递归(使用栈来模拟递归):思路与算法3.非递归的常数空间:思路与算法1.递归:思路与算法首先我们需要了解什么是二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。class Solution { public List<Integer> middleTraversa.

2020-09-14 09:34:55 3603

原创 java中Int与Integer的区别(缓存机制)

为什么java中“1000==1000”为false,“100==100”为true呢?如果你尝试运行以下代码public class test { public static void main(String[] args) { Integer a=100,b=100; System.out.println(a==b); Integer c=1000,d=1000; System.out.println(c==d);

2020-09-06 10:08:49 250

原创 解决一次springboot访问不到静态资源的问题

在编写个人博客框架时,启动项目后,html文件中静态资源访问不到,出错信息如下:org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatExce

2020-08-23 16:40:23 1407 1

原创 利用@ControllerAdvice和@ExceptionHandler自定义全局异常并打印日志到前端页面

@ExceptionHandler单独使用一般是用在控制器的内部某个方法上,表示捕捉控制器内部抛出的异常详细的使用方法请参考:lkforce的博客@ControllerAdvice+@ExceptionHandlerSpring 3.2之后加入了新的@ControllerAdvice注解,可以支持全局的异常处理。自定义全局异常并打印系统默认日志demo:第一步:修改pom配置文件设置日志级别和日志保存地址logging.level.root=infologging.lev

2020-08-20 10:54:28 1572

原创 基于Socket的萌新基础版—爬取网页url

最近想玩一玩数据处理和分析方面的东西,于是就想着先从爬虫入手,此教程应该是最简单的爬虫,简单爬取网页的url链接,此处以中国新闻网滚动网页为例,爬取其新闻的类型,地址,名称,和时间。因为不涉及其他的东西,所有这个demo应该是比较简单的。传入待爬取数据的网页的url 建立输入流InputStream 读取并处理数据。此步骤需要你自己去发掘你想要的数据的特征 给出一条包含我们所需要的完整的一行数据:<li><div class="dd_lm">[<...

2020-08-06 21:31:23 222

原创 基于TCP通信的简单客户端与服务端小demo—上传文件(二)

本篇文章主要讲解如何将文件上传到服务器一.服务器的编写 其过程与一中非常相似,不同点在于: 1.在此处,我选择了不将服务器关闭,让其一直处于accept的状态 2.选择了常用的uuid来对文件进行命名,防止重名导致文件被覆盖 3.开启多线程模式,每来一个上传文件的客户端,就为其开启一个线程,上传完毕后,自动关闭流和线程注意:因为run方法不能throws异常,因此,此处抛出异常的方式应使用try...catch。代码中,我使用了lombok注释自动抛出...

2020-08-06 16:04:39 119

原创 基于TCP通信的简单客户端与服务端小demo(一)

本篇文章旨在复习一下java网络编程的TCP协议的使用,通过构造一个简易的客户端和服务器端来实现信息的传输一.服务端的实现过程(读取客户端发送的信息,并给客户端回写请求):利用ServerSocket创建一个服务端对象serversocket,并申请指定的端口号 使用serversocket对象中的accept()方法来获取请求客户端的对象socket 调用socket对象的getInputStream()来获取网络字节输入流的InputStream对象 调用inputStream对象的rea

2020-08-04 13:38:05 366

原创 Springboot整合JMS(基于ActiveMQ和windows环境)

1.ActiveMQ的安装与使用官方网站下载:http://activemq.apache.org/activemq-5159-release.html点击下载,解压到任一地方。解压成功后,点击bin\win64\activemq.bat运行,出现此界面即为成功在浏览器输入http://localhost:8161/admin/,用户名和密码初始均为admin安装不成功的可能原因:1.电脑主机名不是英文 ...

2020-08-02 11:33:08 140

原创 读取文件内容到另一个文件小demo

废话不多说,直接上代码,注释很详细,这里不再赘述:package oauth.demo.Controller;import java.io.*;/** * 输入输出流小demo */public class Io { public static void main(String[] args) throws IOException { //读取文件 File f=new File("D:/修改说明.txt");//打开文件 InputS

2020-08-01 10:50:11 143

原创 Sprinboot基于数据库的认证踩的一些坑

1.建立权限表要注意,赋予权限的时候角色名前面一定要有一个默认的前缀“ROLE_”,如下所示:2.当创建user类,加入@Data注解并implementsUserDetails时,可能会报错,部分报错信息如下:Illegal overloaded getter method with ambiguous type for property enabled in class class safedb.safedb.Entity.Use 这是因为在继承UserDetails时,他实现...

2020-07-30 15:31:26 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除