自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-06-01 tomcat使用安装

一、安装Tomcat(mac)1、首先到官网下载Tomcat:https://tomcat.apache.org/download-90.cgi2、解压tomcat文件,最好把它文件名重命名为“Tomcat”,方便以后查找,最后把它放入/Library(资源库中)打开finder–>按快捷键:command+shift+G进入资源库,将Tomcat文件夹拷贝至此目录下二、用终端(Terminal)直接打开Tomcat1、进入Tomcat的bin目录下:终端输入cd /Users/用户名

2021-06-01 22:43:43 264

原创 2021-05-31 CountDownLatch学习

CountDownLatch概念是一个同步工具类,用来协调多个线程之间的同步(起到线程之间的通信)【允许一个或多个线程一直等待,直到其他线程运行完成后再执行。】CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务CountDownLatch的用

2021-05-31 16:13:24 110

转载 2021-05-13 如何结束服务

kill -9 pid 存在的问题kill -9 pid 彻底杀死进程kill -9 属于暴力删除,会给程序带来比较严重的后果优雅结束第一步:停止接收请求和内部线程。第二步:判断是否有线程正在执行。第三步:等待正在执行的线程执行完毕。第四步:停止容器。在Java中,tomcat可以使用 shutdown.bat/shutdown.sh进行优雅结束springboot 中结束服务方案【方案一】kill -15 pid@RestController@RequestMapping("/fi

2021-05-13 11:23:06 388

原创 linux查询日志

1、查询日志中含有某个关键字的信息cat app.log |grep 'error'lilithliu@lilith Desktop % cd /Users/lilithliu/Desktop/project/3pp-bff-wx/log lilithliu@lilith log % ls -ltotal 672-rw-r--r-- 1 lilithliu staff 55908 4 28 15:40 bff-wx.log-rw-r--r-- 1 lilithliu staff

2021-05-11 13:54:21 130

转载 2021-05-11 String转为枚举类型

String ====》》》》 枚举通过 枚举类型.valueOf(String str) 方法,转化,返回相应的枚举类型值。参考:String转枚举类型值 https://blog.csdn.net/BaiMaTanHuaL/article/details/92772072

2021-05-11 11:31:09 443

原创 Docker安装oracle

基于docker安装的oracle安装拉取镜像docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g下载完成后,查看镜像docker images创建容器docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现

2021-05-10 10:54:50 744

原创 2021-04-10 尚硅谷Java之 Java8

Java8主要内容Lambda 表达式函数式接口方法引用 / 构造器引用Stream API接口中的默认方法 / 静态方法新时间日期 API其他新特性新特性速度更快,效率增加(Hashmap 底层结构/原理。数组+链表—> 数组+链表+红黑树;1.8之后jv m没有永久区,方法区增加了metaspace元空间【使用物理内存】,垃圾回收机制运行效率提升)代码更少(增加了Lambda表达式)强大的 Stream API便于并行最大化减少空指针异常 Op

2021-04-10 23:26:59 527

原创 2021-04-03 狂神说Java之 rabbitmq学习

中间件及单体架构消息中间件在实际的项目中,大部分的企业项目开发中,在早期都采用的是单体的架构模式单体架构把所有的业务和模块、源代码、静态资源文件等都放在一个工程中,如果其中的一个模块升级或迭代发生一个很小的变动都会重新编译和重新部署项目。(耦合度高)这种的架构存在的问题就是:耦合度太高运维的成本过高不易维护服务器的成本高(服务器资源的浪费)以及升级架构的复杂度也会增大(局限性)这样就有后续的分布式架构系统分布式架构单体架构一个请求由一个系统共同完成,分布式架构系统就是一个请

2021-04-06 14:51:52 2424 2

原创 2021-04-03 Windows 安装Rabbitmq

1、下载并安装OTP由于RabbitMQ使用Erlang技术开发,所以需要先安装Erlang运行环境后,才能安装消息队列服务到http://www.erlang.org/downloads下载相应版本的安装包,如OTP 22.0 Windows 64-bit Binary File双击,点next就可以安装完后配置一下系统的环境变量此电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建”系统环境变量变量名:ERLANG_HOME(变量值就是刚才erlang

2021-04-03 09:58:31 296

原创 狂神说Java之设计模式

设计模式概述设计模式:是一套用来提高代码可复用性,可维护性、可读性、稳健型以及安全性的解决方案设计模式的本质:是面向对象设计原则的实际运用,是对类的封装、继承、多态以及类的关联关系和组合关系的充分理解。设计模式的的基本要素:模式名称、问题、解决方案、效果分类创建型模式:(描述怎样去创建一个对象,创建和使用分离)单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式结构型模式:(描述如何将类或对象安装某种类型组成更大的结构)适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式

2021-03-31 22:26:44 1375 4

原创 2021-03-31 Springboot 整合 retry重试机制

在项目开发过程中,经常会有这样的情况:第一次执行一个操作不成功,考虑到可能是网络原因造成,就多执行几次操作,直到得到想要的结果为止,这就是重试机制。spring支持重试机制使用1、在pom文件中添加依赖<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version&.

2021-03-31 10:13:57 158

原创 2021-3-27 狂神说java 之 多线程详解

线程简介进程(process)和线程(Thread)程序:是指令和数据的有序集合,本身没有任何运行的含义,是一个静态概念进程:是执行程序的一次执行过程,他是个动态的概念。是系统资源分配的单位线程:通常在一个进程中可以包含若干个线程,线程之间互相不影响,线程是CPU调度和执行的单位(main函数,就是主线程)多线程:很多多线程是模拟出来的,真正的多线程是指多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同

2021-03-30 22:55:55 160

原创 2021-03-25 狂神说Java之 JavaSE学习

常见的DOS命令打开CMD的方式1、开始+系统+命令提示符2、win + R 输入cmd 打开控制台3、在任意文件夹下面,按住 shift +鼠标右键点击,在此处打开命令行窗口4、资源管理器的地址栏前面加上 cmd 路径管理员方式运行:选择以管理员运行的 方式(可以得到最高权限)关于目录切换命令:# 盘符切换C:\Users\XXX> D:D:\># 常看当前目录下的所有文件D:\> dir 驱动器 D 中的卷没有标签。 卷的序列号是 9E77-CA9C

2021-03-27 22:55:36 707 1

原创 2021-3-20 狂神说java之 redis学习

分布式锁分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某一个资源时,往往通过互斥来防止彼此干扰分布式锁设计目的可以保证在分布式部署的应用集群中,同一个方法的同一操作只被同一台机器上的一个线程执行。...

2021-03-21 23:41:20 454 1

原创 2021-3-18 MAC如何下载和安装mysql

安装打开官网 : http://www.mysql.com/downloads/ 进入, 点击下方的DOWNLOADS : MySQL Community Server2. 选择dmg文件下载3. 选择选择不登录,直接下载4. 解压并且打开安装包5.下载完成后,双击打开一路确定,但是当弹出一个MYSQL Installer提示框的时候一定打开备忘录复制粘贴记下弹出框的密码(或是弹出框自己设置初始密码)打开MySQL服务正常情况下,安装成功。配置1、 进入系统偏好设置2、

2021-03-19 09:57:36 691

原创 2021-3-18 学习redis之浅谈mysql数据库表设计的几个要点

mysql数据库表设计的几个要点1、表设计过程中应该注意的点:数据类型1)更小的通常更好控制字节长度(长的会浪费内存)2)使用合适的数据类型例如:1)增加status字段最好用tinyint(只占8个字节,所占的字节内存更小,更省空间),2)char(1024)与varchar(1024)的对比:char就会指定1024个内存空间进行分配,varchar是可变长的,char用于定长数据存储会比varchar节省空间,例如:uuid(32)可以用char(32)3) 尽量避免使用null 要使

2021-03-18 16:12:17 111

原创 2021-03-16 使用 Typora之画图

流程图先输入```mermaindgraph 关键字就是声明一张流程图TD 表示从上到下 LR 表示从左到右graph TD; A-->B; A-->C; B-->D;graph LR; A[方形]-->B(圆角) B-->C{条件a} C-->|a=1|D结果1 C-->|a=2|E[结果2]标准流程图...

2021-03-16 16:17:02 1163

原创 2021-3-16 JSONObject转换成集合

案例一{ "code":"123", "data": { "userid":"123", "adds":[{ ``` }] }}JSONObject jsonResult = JSONObject.parseObject(JSON.toJSONString(result.getData()));String jsonObjString = jsonResult.getString("apps");List<JSONObject> purchaseOrde

2021-03-16 13:00:07 810

原创 socket通讯mina框架学习与熟悉

1.MINAMINA 是一个专门设计既能工作在客户端又能工作在服务器端的网络框架1.1 架构图1.1.1 应用程序架构MINA处于应用程序和基础网络层之间作为粘合剂(可以基于TCP、UDP、in-VM 通信或是客户端的RS-232C串行协议),只用在mina上设计自己的应用实现,不需要去处理网络层的复杂业务(底层是基于JAVA的NIO 1.0实现的)1.1.2 核心部分架构内部可以分为3个层次:I/O Service - 执行实际的I / O,创建一个I/O Service: 可以选择

2020-09-14 14:08:29 408

原创 System.out.println与System.err.println

区别一System.in(标准输入流),System.out(标准输出流),System.err(标准错误输出流)err是运行期异常和错误反馈的输出流的方向区别二在语言层面的实现三个文件描述符都是可以重定向的在unix shell或windows command line中使用管道或重定向,则只是针对标准输入和输出System.out.println 能重定向到别的输出流,...

2020-03-19 09:21:04 356

原创 接口跟抽象类的区别

1.一个类可以实现多个接口,但只能继承一个抽象类。2.接口中只能定义方法而不能有方法的实现,而抽象类可以选择是否实现抽象方法。3.接口中所有的方法都是抽象的,但抽象类可以拥有非抽象方法。4.接口中的基本数据类型都是static修饰的,而抽象类不是。5.接口不能包含静态代码块和静态方法,而抽象类可以。...

2020-01-26 23:26:47 68

原创 20200103-数据库索引

联合索引联合索引: 多个字段上建立的索引,能够加速复核查询条件的检索select uid, login_time from t_user where login_name=? and passwd=?登录业务需求----可以建立(login_name, passwd)的联合索引联合索引能够满足最左侧查询需求(最左侧查询需求,并不是指SQL语句的写法必须满足索引的顺序)例如(a,...

2020-01-03 14:55:04 132

原创 20191230-wait和sleep的区别

sleep()方法是属于Thread类中的,而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。所以在调用sleep()方法的过程中,线程不会释放对象锁。调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()...

2019-12-30 14:01:12 53

原创 20191230-String,StringBuffer和StringBuilder的区别

运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String。线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的适用场景:String:适用于少量的字符串操作的情况StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况StringBuffer:适...

2019-12-30 13:59:40 70

原创 20191230-常问集合比较

Arraylist与LinkedList的比较ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低LinkedList基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作add和remove,Lin...

2019-12-30 13:58:24 101 1

原创 20191230-Java内部类

内部类可以将一个类的定义放在里另一个类的内部(所谓的内部类的概念只是出现在编译阶段,对于jvm层是没有内部类这个概念的)内部类是可以访问外部类的私有字段和私有方法的用处:类的单继承问题,外部类不能再继承的类可以交给内部类继承可以通过定义内部类来实现一个类私属于一个类,实现更好的封装性代码优化:它需要更少的代码分类:静态内部类非静态内部类(成员内部类、方法内部类、匿名内部类)...

2019-12-30 13:36:35 71

原创 课堂随笔

equals等于true时hashcode一定相同;hashcode相同时equals不一定等于true

2019-12-28 19:35:59 66

原创 20191227-java中的自动拆装箱

基本数据类型内置类型,是Java中不同于类(Class)的特殊类型Java基本类型共有八种,基本类型可以分为三类:字符类型char布尔类型boolean整数类型btype\short\int\long浮点数类型float\doubleJava中还存在另外一种基本类型void对应的包装类 java.lang.Void,不过我们无法直接对它们进行...

2019-12-27 17:29:21 190

原创 20191226-TCP的三次握手和四次挥手

在浏览器中的地址栏内输入URL,就可以看到Web页面,即是客户端在浏览器地址内输入URL之后,信息会被送到某处,然后从某处获得的回复,内容就会显示在Web页面上客户端:像这种通过发送请求获取服务器资源的Web浏览器等就叫做客户端-----》简单来说,客户端就是个人使用的电脑,而服务器就是服务器,通过电脑访问服务器上的资源,用的就是HTTP网络协议Web页面是根据你在Web浏览器地址栏指定...

2019-12-26 14:27:04 147 1

原创 20191214-二叉查找树(BST)

二叉查找树(BST)定义:二叉查找树(Binary Search Tree),又被称为二叉搜索树。设x为二叉查找树中的一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] <= key[x];如果y是x的右子树的一个结点,则key[y] >= key[x]特性:1、 左 子树上所有结点的值均 小于或等于 它的根结点...

2019-12-15 15:19:35 129

原创 20191213-Stream

什么是Streamstream并不是某种数据结构,它只是数据源(数据源可以是一个数组,Java容器或I/O channel等)的一种视图。常见的stream接口继承关系stream接口继承自BaseStream,其中IntStream, LongStream, DoubleStream对应三种基本类型(int, long, double,注意不是包装类型),Stream对应所有剩余类型的s...

2019-12-14 15:10:07 270

原创 20191213-Lambda

Lambda表达式Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。Java Lambda表达式的一个重要用法是简化某些 匿名内部类(Anonymous Classes)的写法 。实际上Lambda表达式并 不仅仅...

2019-12-14 15:07:51 86

原创 20191211-缓存穿透、缓存击穿、缓存雪崩

缓存处理流程使用缓存通常的操作是,请求先访问缓存数据,如果缓存中不存在的话,就会回源到数据库中然后将数据写入到缓存中;如果存在的话就直接返回数据。缓存穿透现象: 每次请求直接穿透缓存层,直接回源到数据库中,给数据库带来了巨大访问压力,甚至宕机。(宕机:操作系统无法从一个严重系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重新启动计算机的现象)原因: 访问数据会先访...

2019-12-14 15:05:22 234

原创 20191209-mybatisplus(二) 条件构造器

AbstractWrapperQueryWrapper(LambdaQueryWrapper)和UpdateWrapper(LambdaUpdateWrapper)的父类,用于生成sql的where条件, entity属性也用于生成sql的where条件entity生成的 where 条件与 使用各个 api 生成的 where 条件 没有任何关联行为 !!!Mybatis-Plus ...

2019-12-14 15:01:25 1626 1

原创 20191209-mybatisplus(一)

什么是mybatispulsMyBatis-Plus(简称 MP)是一个 MyBatis 的 增强工具 ,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。集成MyBatis-Plus非常的简单,只需要引入 starter 工程,并配置 mapper 扫描路径即可。@MapperScan指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现...

2019-12-14 15:00:31 319

原创 Day 38 java提高篇 集合

常用集合分类Collection(接口) ------存储一个元素集合List(接口)ArrayList(接口实现类)LinkedList(接口实现类)vector (接口实现类)Stack (vector接口的实现类)set (接口)EnumSet(接口实现类)TreeSet(接口实现类)HashSet(接口实现类)LinkedHashSet...

2019-09-25 10:01:03 128

原创 Day 35 MybatisGenerator自动生成代码

MybatisMyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。generatorConf...

2019-09-06 09:10:02 87

原创 Day 34 Springboot基础11统一异常处理

异常处理异常(exception) 是程序运行过程中发生的事件, 该事件可以中断程序指令的正常执行流程.1当Java程序运行时出现问题时,系统会自动检测到该错误,并立即生成一个与该错误对应的异常对象2:然后把该异常对象提交给JAVA虚拟机3:JAVA虚拟机会自动寻找相应的处理代码来处理这个异常,如果没有找到,则程序终止4:程序员可以自己编写代码来扑捉可能出现的异常,并编写代码来处理相应的...

2019-09-04 00:04:05 103

原创 Day 33 POI-HSSF/XSSF

区别POI提供了HSSF、XSSF以及SXSSF三种方式操作Excel。HSSF:Excel97-2003版本,扩展名为.xls。一个sheet最大行数65536,最大列数256。XSSF:Excel2007版本开始,扩展名为.xlsx。一个sheet最大行数1048576,最大列数16384。SXSSF:是在XSSF基础上,POI3.8版本开始提供的支持低内存占用的操作方式,扩展名为....

2019-08-28 11:20:06 348

原创 Day 32 springboot基础10 集成swagger2

Swagger编写和维护接口文档是每个程序员的职责,根据 Swagger2 可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率。常用注解swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服...

2019-08-24 11:01:16 258

空空如也

空空如也

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

TA关注的人

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