自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (2)
  • 收藏
  • 关注

原创 maven-导出pom里的jar包

1、打开windows的dos命令界面 2、进入项目的pom.xml文件所在目录 3、输入:mvn dependency:copy-dependencies -DoutputDirectory=D:\lib -DincludeScope=compile-DoutputDirectory=D:\lib :输出目录

2021-04-28 17:34:05 407 3

原创 JVM-内存溢出问题

问题描述:在下载excel时,发生内存溢出 经过:首先,根据报错 找到具体的代码,查看是否是代码中出现循环创建对象的代码 进行更改 发现并没有得到实质性的解决 其次,网上查询到 需要在运行jar包时,将堆的初始大小和最大内存调大,于是就在运行jar包时,将 java -Xms125M -Xmx256M -jar 改成 java -Xms256M -Xmx512M -jar 发现问题得到了缓解,但是要加载很久才能下载报告 再次,继续搜索,发现可以查看服务器的使用状态,在linux 输入:top -c 看到系

2021-04-28 14:00:03 252

原创 异常:自定义异常类(项目必备)

1.定义异常枚举类 public enum MyEnum { USER_NOT_LOGIN(100, "用户尚未登录"), USER_OR_PW_ERROR(101, "用户名或密码错误"), USER_PW_NOT_EMPTY(103, "密码不能为空"), FAIL(500,"未知错误"), PRODUCT_IS_NOT_EXIST(601,"产品不存在"); private int status; private String msg;

2021-04-28 13:50:08 468

原创 Excel导出实例

<!--poi--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <dependency&gt

2021-04-25 15:40:15 178

转载 linux搭建ftp服务器

检查安装vsftpd软件 查看所有的安装的软件包 并在结果中查找包含vsftp 的文件 rpm -qa | grep vsftpd 如果没有装则使用yum命令安装 yum -y install vsftpd 创建用户 使用useradd命令: useradd username ,默认在/home文件夹下创建一个和username一样名称的文件作为该用户所拥有的文件 useradd xiao passwd xiao #(回车)给用户xiao设置登录密码 修改xiao用户的用户目.

2021-04-21 17:30:06 107

原创 Redis-安装+使用

一、redis安装 1、进入redis官方网站下载redis的linux版本tar.gz包。 2、将下载后的包上传到/usr/local/目录下。 3、进入/usr/local目录下,命令: [root@localhost ~]# cd /usr/local/ 4、输入解压命令:[root@localhost ~]# tar -zxvf redis-3.2.4.tar.gz 5、解压完毕,进入解压后的目录,[root@localhost ~]# cd /usr/local/redis-3.2.4/ 6、输

2021-04-04 11:38:11 104

原创 springBoot多模块打包

第一次打包直接打包所有的模块,父工程上maven install就好了(成功的条件下),然后我们本地的maven仓库就会多了几个我们子系统的模块包,这时候就可以想打包哪个子模块就哪个子模块了,当然公共模块代码不变情况下,所以打包之前还是clean然后全部打包吧。 子模块要打包的pom构建代码 <build> <plugins> <plugin> <groupId>org.springf.

2021-04-04 11:08:09 170

原创 面试题-18RebbitMq

rabbitMq 四种常用消息中间件比较分析(RabbitMQ、ActiveMQ、Kafka、RocketMQ) 你们公司生产环境用的是什么消息中间件? 从吞吐量来说:kafka和rocketMq支持高吞吐 从持久化消息比较:ActiveMq 和 rabbitmq都支持 高并发来说:rabbitMq最好 异步处理 - 相比于传统的串行、并行方式,提高了系统吞吐量。 应用解耦 - 系统间通过消息通信,不用关心其他系统的处理。 流量削锋 - 可以通过消息队列长度控制请求量;可以缓解短时间内的高

2021-03-01 17:59:36 313

原创 面试题-17AIO BIO NIO

BIO,NIO,AIO 总结 Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。 在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。 同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。 异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已

2021-03-01 17:37:27 186

原创 枚举和String类

1.枚举 (1)定义格式:使用enum 代替class (2)类中直接写常量的值 (3)enum修饰的类中都是静态常量 (4)不能直接new对象,必须直接赋值 2.包装类 (1)每一个基本数据类型对应的都有一个包装类 (2)int 包装类是integer ,char 包装类是character, 其他的都是首字母大写 (3)构造方法:每一个包装类都提供本身对应的数据类型和字符串(字符串必须为可以解析为对应的类型)作为参数的构造方法。(char 类型除外,只支持符作为参数的构造方法) (4)***Val

2021-03-01 17:15:56 1376 1

原创 面试题-16数据库

事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功 MySQL中事务默认自动提交的,每当执行一条SQL,就会提交一个事务 (一条SQL 就是一个事务) Oracle 中事务默认 不自动提交,需要在执行SQL 语句后 通过commint 手动提交事务 mysql的事务 四个特性(ACID) 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 ​ 一致性(Consistency) 事务前后数据的完整性必须保持

2021-03-01 17:15:07 525

原创 面试题-15反射

1.使用new关键字 这是最常见也是最简单的创建对象的方式了。通过这种方式,我们可以调用任意的构造函数(无参的和带参数的)。 2.使用Class类的newInstance方法 我们也可以使用Class类的newInstance方法创建对象。这个newInstance方法调用无参的构造函数创建对象。 3.使用Constructor类的newInstance方法 和Class类的newInstance方法很像, java.lang.reflect.Constructor类里也有一个newInstanc

2021-02-25 15:52:01 142

原创 面试题-14泛型

概念:泛型是一个未知的数据类型 E e:Element 元素 T t:Type 类型等 使用泛型和不使用泛型的区别 不使用泛型 好处:集合不使用泛型,默认类型是Object类型,可以存储任意类型 弊端:不安全,会引发类型转换异常 使用泛型 好处:避免的转换的麻烦,存储什么类型,取出什么类型;把运行期异常提醒到编译器 弊端:泛型是什么类型只能存储什么类型 泛型的定义和使用 泛型类 定义格式:修饰符 class 类名<泛型>{} class ArrayList<E> {

2021-02-25 15:39:31 143

原创 面试题-13锁

首先来说下synchronize和Lock的区别 两者都是锁,用来控制并发冲突,区别在于Lock是个接口,提供的功能更加丰富,除了这个外,他们还有如下区别: synchronize自动释放锁,而Lock必须手动释放,并且代码中出现异常会导致unlock代码不执行,所以Lock一般在Finally中释放,而synchronize释放锁是由JVM自动执行的。 Lock有共享锁的概念,所以可以设置读写锁提高效率,synchronize不能。(两者都可重入) Lock可以让线程在获取锁的过程中响应中断,而sync

2021-02-25 15:33:01 198

原创 面试题-12多线程

什么是线程和进程? 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。 线程 进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。 进程与线程的区别 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Proces

2021-02-25 15:28:03 548

原创 面试题-11Mybatis

MyBatis编程步骤是什么样的? 1、 创建SqlSessionFactory 2、 通过SqlSessionFactory创建SqlSession 3、通过sqlsession执行数据库操作 4、 调用session.commit()提交事务 5、 调用session.close()关闭会话 #{}和${}的区别 #{}是占位符,预编译处理;${}是拼接符,字符串替换,没有预编译处理。 缓存 Mybatis的一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作

2021-02-25 14:57:09 137

原创 面试题-10SpringBoot

SpringBoot SpringBoot原理(自动装配) 1.首先在启动类上,通过SpringApplication.run()方法 进行启动,他的原理就是,run()方法内部是通过refreshContext(context)进行刷新容器,然后去解释@SpringBootApplication 注解,将=bean注入容器里面,然后就会去解析我们写的那个springApplication类 springApplication他本身是个配置类因为在@SpringBootApplication注解内部有个注

2021-02-25 14:51:06 116

原创 面试题-9SpringMVC

SpringMvc流程 用户发送请求至前端控制器DisPatcherServlet DisPatcherServlet 收到请求之后调用handlerMapping 处理器映射器 处理器映射器找到具体的处理器,生成处理器对象和处理器拦截器(有就生成)返回给dispatcherServlet DispatcherServlet调用HandlerAdapter处理器适配器, 适配器经过适配调用具体的处理器handler执行得到ModelAndView并返回给前端控制器, 前端控制器将ModelAndView

2021-02-25 11:48:02 168

原创 面试题-8Spring

什么是 IoC IoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。 例如:现有类 A 依赖于类 B 传统的开发方式 :往往是在类 A 中手动通过 new 关键字来 new 一个 B 的对象出来 使用 IoC 思想的开发方式 :不通过 new 关键字来创建对象,而是通过 IoC 容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面过去即可。 从以上两种开发方

2021-02-25 11:33:31 443 1

原创 面试题-7Servlet

get和post有何区别? get参数传递通过url,post放在resquest body中 get请求参数有长度限制,post没有 get不安全,因为参数暴露在url中。post安全,参数是隐藏的 get请求只能进行url编码。post支持多种编码 get请求参数会被完整保留在浏览历史记录,而post不会被保留。 get产生一个tcp数据包;post产生两个tcp数据包。 get和post本质就是tcp链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现

2021-02-25 10:48:08 118

原创 面试题-6session 和 cookie

1.cookie cookie采用的是客户端的会话状态,他是服务器再本地 机器上存储的一小段信息,并且随着请求发送给服务器。 通过 cookie cookie = new cookie 创建,通过cookie.setMaxAge 设置cookie的持久化时间 2.Session Session 是将数据存储在服务器中,会为每个客户端都创建一块内存空间 存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内 存空间。所以说Session的实现是基于Cookie,Session需要借

2021-02-25 10:25:07 232 1

转载 面试题5- CurrentHashMap

CurrentHashMap的原理 由于HashMap是线程不同步的,虽然处理数据的效率高,但是在多线程的情况下存在着安全问题,因此设计了CurrentHashMap来解决多线程安全问题。 HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以

2021-02-24 12:37:59 1438

原创 面试题3-集合

1.ArrayList 有序的,有下标,线程不安全,允许为Null 1.初始为一个空的Object数组 2.当我们第一次添加元素时,数组的长度赋值为10, 3.当集合长度不够,扩充到原来的1.5倍 4.查询快,添加和删除慢 用法: 创建:ArrayList< >list = new ArrayList<>(); 增加:list.add(); 删除:list.remove(); 修改:list.set(); 查看:list.get(); 遍历ArrayList的方法 1.普通f

2021-02-24 12:06:52 106

原创 面试题4-HashMap

hashmap HashMap是应用更广泛的哈希表实现,而且大部分情况下,都能在常数时间性能的情况下进行put和get操作。要掌握HashMap,主要从如下几点来把握: jdk1.7中底层是由数组(也有叫做“位桶”的)+链表实现;jdk1.8中底层是由数组+链表/红黑树实现 可以存储null键和null值,线程不安全 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂 扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入 插入元素后才判断

2021-02-24 12:06:12 277

原创 面试题-2.设计模式

单例模式 :指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。 通过提供一个静态的对象instance,利用private权限的构造方法和getInstance()方法来给予访问者一个单例。 缺点是,没有考虑到线程安全,可能存在多个访问者同时访问,并同时构造了多个对象的问题。之所以叫做懒汉模式,主要是因为此种方法可以非常明显的lazy loading

2021-02-24 10:20:50 139

原创 面试题1-jvm

1.jvm jvm就是Java虚拟机 ,它就是编译后 .class文件和硬件系统之间的接口 它的主要特征就是平台无关性 原理: 编译后的程序不直接在硬件系统的cpu执行 ,而是在jvm上执行,它屏蔽了具体平台的相关信息,它只需要Java程序生成字节码文件就能直接在jvm上运行 不用修改任何东西。 JVM = 类加载器 classloader + 执行引擎 execution engine + 运行时数据区域 runtime data area 类加载器 classloader 把硬盘上的class

2021-02-24 10:06:48 138

原创 异步任务

1.启动类加注解 @EnableAsync//开启异步任务 @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 2.需要异步处理的方法加注解 @Service public class AysSercive { @A

2021-02-22 17:04:48 105

原创 过滤器拦截器

过滤器需要在servlet容器中实现,拦截器可以适用于javaEE,javaSE等各种环境 拦截器可以调用IOC容器中的各种依赖,而过滤器不能 过滤器只能在请求的前后使用,而拦截器可以详细到每个方法 2、拦截器与过滤器的区别 : 拦截器是基于java的反射机制的,而过滤器是基于函数回调。 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 在.

2021-02-22 17:03:36 123

原创 19.开发环境的切换

application.yml 文件 默认的 application-dev.yml 开发环境 application-test.yml 测试环境 他们的切换通过默认文件中的 来实现 或者

2021-02-22 17:02:27 126

原创 18.JSR303邮箱格式校验

2021-02-22 17:01:29 661

原创 springboot-test类注解

@RunWith(SpringRunner.class) @SpringBootTest(classes = DemoApplication.class) class DemoApplicationTests {

2021-02-22 17:00:47 170

原创 16.修改springboot图片

banner.txt 在 resourse下创建

2021-02-22 16:59:55 349

转载 14.反射

类的加载过程 Class<?> c1 = Class.forName("com.zyf.dao.User"); Field[] fields = c1.getFields();//获取public 修饰的属性 for (int i = 0; i < fields.length; i++) { System.out.println(fields[i]); } System.out.println("11111111111111"); fields = c1.getDeclar..

2021-02-22 16:56:12 137

原创 13.SQL 中 MD5加密

SQL 中 MD5加密 insert into user (name,age,email) values ('张三',MD5(12345),'2323') select * from user where name = '张三' and age = MD5(12345)

2021-02-22 16:51:33 735 1

转载 12 left join right join jion

inner join与left join与right join之间的区别 inner join 与 left join 之间的区别 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。 需求是从数据库查数据,在前端以柱形图的形式展现出来,查到的数据按行业分组,显示每个行业的户数及户数占比,涉及到的字段有A表的用户数、总用户数和B表的行业名称。本来是不管查不查的到数据,在X轴都应该显示行业名

2021-02-22 16:50:58 131

原创 11.mybatis 缓存

1.一级缓存自动开启 只在一次是sqlsession中有效 比如用户使劲刷新一个页面 这就会走缓存 失效:1.调用了增删改 2.查询不同的条件 3.手动清除缓存 sqlsession.clearcache() 4.查询不同的mapper.xml

2021-02-22 16:47:49 104

原创 10动态sql

1.if test = “” 2.where 不安全 用 3.choose标签 放在where 标签里 choose 里放 标签 这里when 只会执行一个 如果when 没有成立的走otherwise select * from oms_order <where> <choose> <when test="memberUsername != null"> and member_username = #{memberU.

2021-02-22 16:46:47 98

原创 9.sql执行效率分析

问题:如果发现有的sql执行的慢,怎么查出来它们? 只要超出了规定的时间 就会出异常 Explain 关键字可以查看sql执行的效率 创建索引 create index 索引名 on 表名 (字段名) CREATE unique INDEX id_user_namess on user (NAME) B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址 ...

2021-02-22 16:41:15 140

原创 8.PagerHelper

<!--MyBatis分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> .

2021-02-22 16:34:44 139

原创 7.乐观锁

2021-02-22 16:31:55 99

dubbo-test.7z

dubbo-test 简单的dubbo搭建

2021-07-21

springBoot模板.zip

springBoot+定时任务+分页

2021-01-22

空空如也

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

TA关注的人

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