自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

水木小窝

点滴的分享,你我共同的成长~

  • 博客(33)
  • 收藏
  • 关注

原创 Mac中管理多版本Jdk

mac管理多版本jdk

2024-02-11 16:57:20 1412

原创 优雅的处理Lambda异常

Lambda中的异常处理在Lambda中使用try-catch处理是比较丑陋的,那么如何优雅的处理异常昵?我们可以采取将异常包装的方式进行处理,下面将以Function函数为例新建一个函数接口,该接口抛出异常@FunctionalInterfacepublic interface CheckExceptionFunction<T, R> { R apply(T t) throws Exception;}新建一个函数工具类,方便调用public class L

2021-09-08 18:39:38 637

原创 Java中的SPI

什么是SPISPI全称是Service Provider Interface,是Java提供的一套用来被第三方实现或扩展的API,可以用来启用框架的扩展或组件的替换。SPI的应用SPI有很多的使用场景,比如:JDBC中的使用,各种数据库的驱动实现SLF4J中的使用,加载不同的日志实现Spring中的使用,对servlet的ServletContainerInitializer的实现……SPI的实战创建一个接口public interface DataBaseDriver {

2021-07-07 18:51:48 394

原创 创建线程的方式

1、继承Thread类在项目中不建议使用这种方式创建线程,太消耗系统资源public class Test1 { public static void main(String[] args) { new MyThread().start(); }}class MyThread extends Thread { @Override public void run() { // do some thing…… }}2、实

2021-05-19 23:31:59 189

原创 DBeaver显示系统数据库不全

问题  用DBeaver连接MySQL之后,界面上系统库显示不全,只显示了一个sys库,但是用命令show databases进行查看显示完全解决右击连接名点击Connection view选中显示系统对象

2021-05-06 22:09:01 14849 8

原创 Mac根目录下创建文件夹

在mac的根目录下创建目录

2021-04-28 11:01:43 3245

原创 三个线程循环交替执行

比如A线程输出1,B线程输出2,C线程输出3,A线程输出4,B线程输出5,C线程输出6……我们可以用synchronized和wait和notify来实现,要实现顺序执行,那么下一个线程的开始应该是上一个线程给的信号,这样才能保证顺序执行,代码如下public static void main(String[] args) throws InterruptedException { Object lockA = new Object(); Object lo

2021-04-25 18:10:34 1508

原创 JVM(一)初识

JVM是Java Virtual Machine(Java虚拟机)的缩写,是Java平台的基石,是一种抽象的计算机,像真正的计算机一样,它具有指令集并在运行时操作各种内存区域。Java之所以可以Write once, run everywhere,就是因为Java语言使用Java虚拟机屏蔽了与具体平台的相关信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

2021-04-21 02:26:48 171

原创 Deepin更改默认jdk

下载需要的jdk,并安装配置好运行:sudo update-alternatives --display java我们需要关注链接java指向和优先级运行:sudo update-alternatives --install /usr/bin/java java /opt/software/jdk1.8.0_271/bin/java 1100这里的 /usr/bin/java 就是上面的链接java指向,/opt/software/jdk1.8.0_271/bin/java是自己的jd..

2021-04-06 23:59:38 344

原创 上传图片报错java.lang.IllegalArgumentException

用户上传图片的时候报了java.lang.IllegalArgumentException的错误,找了大量的图片进行问题复现,但是都正确上传了,唯独用户提供的这张图片不可以,最后经过排查是这个图片的问题,解决方法是:将这个图片用画图工具打开,然后“另存为”,再上传这个另存为的图片就可以了。...

2019-12-27 16:22:03 1646

原创 拦截器获取request的值之后,Controller拿不到值

原因:在Spring中request的只能被获取一次,拦截器获取之后就会导致Controller拿不到值解决方法:将request的值进行备份,请求到达Controller的时候就会拿到这个值创建一个自己的HttpServletRequestWrapper并继承servlet的HttpServletRequestWrapper,为了备份request中的 值。 public c...

2019-11-20 17:49:32 1779

原创 ajaxfileupload返回的json数据带pre标签

有两种解决方法:第一种:后台直接返回text/html类型的数据,ajaxfileupload的js会根据dataType的类型转换,当写成json时,会走json类型的这个方法进行格式化成json。第二种:后台不动,还是返回application/json的数据,修改js源码里面的uploadHttpData中判断json里面的代码改为:data = jQuery.pars...

2019-09-18 14:54:25 514

原创 Deepin安装Wireshark

更新软件:sudo apt update 安装:sudo apt install wireshark(安装过程中选择确定) 安装玩之后非Root用户是没有权限的,所以需要给权限 sudo gpasswd -a USERNAME wireshark(USERNAME为自己的用户名,将这个用户添加到wireshark组,需要重启) sudo chgrp wireshark /usr/bin/d...

2019-07-10 23:35:50 1885

原创 MySQL出现Lost connection to MySQL server during query错误原因

原因一:MySQL的服务宕了进mysql的控制台,输入show global status like 'uptime',如果显示数字很大,说明服务很长时间没有重启过,那么该原因就可以否决。原因二:MySQL的连接超时进入mysql控制台,输入show global variables like '%wait_timeout',看看显示的时间判断一下是否超时,如果超时,那么将改时间改大...

2019-06-27 17:32:45 8279

原创 Deepin安装VirtualBox扩展包

查看本机的VirtualBox版本 下载对应的扩展包点这里 打开全局设定——扩展,进行安装 如果安装过程出现与gksu-run-helper通信失败的错误,解决方法如下:终端输入:gksu-properties 将su改为sudo 重新安装即可成功...

2019-05-30 20:57:02 2556

原创 写入MySQL报错超出 max_allowed_packet 的问题

查看max_allowed_packet的大小 show variables like '%max_allowed_pack%' 将大小改掉就行了 set GLOBAL max_allowed_packet = XXXX 关闭连接重新打开就可以了

2019-04-11 10:27:01 564

原创 Hyper-V中安装CentOS7设置静态ip并且可以连接外网

在Hyper-V中安装好CentOS7,安装的时候配置网络选择Hyper-V默认的交换机(具体安装方法自行查找,这里不再进行说明) 对Hyper-V添加一个内部交换机,名称自定义。添加完之后到电脑的网络连接里面对这个交换机设置静态ip。 将虚拟机关闭,选择这台虚拟机进行设置,选择添加硬件——>网络适配器——>添加,然后选择新添加的网络适配器选择刚才新建的交换机 ...

2019-04-09 22:49:00 6449 2

原创 设计模式——委派模式

一、介绍委派模式不属于 23 种设计模式之一,是面向对象设计模式中常用的一种模式,比如SpringMVC的DispatcherServlet就是典型的委派模式。这种模式的原理为类 B 和类 A 是两个互相没有任何关系的类,B 具有和 A 一模一样的方法和属性;并且调用 B 中的方法,属性就是调用 A 中同名的方法和属性。B 好像就是一个受 A 授权委托的中介。第三方的代码不需要知道 A 的存在...

2018-08-23 22:47:30 346

原创 设计模式——模板模式

一、介绍在模板模式中,一个抽象类公开定义了执行它的方法的方式/模式,让子类不改变算法架构的情况下,重新定义算法中的某些步骤。UML类图如下:二、何时使用有一些通用的方法,但是每个子类都需要重写 的时候三、实现我们以造汽车为例,比如每个汽车都有鸣笛、启动、停止……这些功能,我们可以将这些动能抽象出来,然后子类各自实现,但是他们的运行顺序时不能变的,启动--&gt;鸣笛--...

2018-08-20 22:11:44 131

原创 设计模式——策略模式

一、介绍策略模式指对象有某个行为,在不同的场景中,有不同的实现算法。它有如下角色:抽象的策略角色:通常是一个接口具体的策略角色:抽象的策略角色实现环境角色:持有策略类的引用,为了给客户端使用下面是它的UML类图:二、实现比如当我们在网上买东西最后需要支付的时候,需要选择支付方式,这里我们就以它为例。public interface Payment { ...

2018-08-16 23:55:13 233

原创 设计模式——代理模式

一、介绍对其他对象提供一种代理以控制对这个对象的访问。它有如下角色:Subject:一个抽象的角色,是一个接口。RealSubject:真是对象,是对接口的实现。Proxy:代理对象,里面持有被代理对象(RealSubject)的引用,所以操作代理对象时从而可以操作真实对象,并且在操作真实对象之前可以可以加一些其他的操作,比如对真实对象的权限访问等等。下面是代理模式的UML...

2018-08-09 01:02:45 143

原创 Linux下安装Redis

1、下载Redis下载页面2、安装2.1、安装前准备     安装之前确认已经安装了jemalloc、gcc、gcc-c++、tcl,如果没有安装请先安装。     安装方法:yum install -y gcc gcc-c++ tcl     jemalloc需要到github上面下载安装,解压之后INSTALL.md这个文件是安装说明,请自行参考安装。     下载...

2018-07-30 18:18:25 129

原创 设计模式——原型模式

一、介绍    原型模式适用于创建重复对象,同时也能保证性能。该模式是创建对象的最佳方式。二、实现    需要创建的对象要实现Cloneable接口,并且重写clone方法。三、实例public class Student implements Cloneable{ private String name; private Integer age; private Int...

2018-07-11 00:18:55 133

原创 设计模式——单例模式

一、介绍    单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。二、特点    1、单例类只能有一个实例。    2、单例类必须自己创建自己的唯一实例。    3、单例类必须给所有其他对象提供这一实例。三、优点    1、在内存中只有一个实例,节省内存。    2、避免了频繁的创建和销毁,提高...

2018-07-06 01:12:03 169

原创 CentOS下用rpm安装mysql

1、下载linux版本的MySQL 请根据自己系统选择对应版本2、将下载的文件进行解压3、MySql的安装 因为CentOs7默认集成了mariadb,所以需要先将该包卸载掉 输入:rpm -qa|grep mariadb 将会看见mariadb 的包 在输入:...

2018-06-19 23:58:48 1099 1

原创 CentOS7打开、关闭端口

CentOS7使用的是firewall防火墙,不再是原来的iptables1:查看firewall防火墙状态 firewall-cmd --state 或者 systemctl status firewalld2:打开防火墙 systemctl start firewalld3:关闭防火墙 systemctl stop fire...

2018-05-31 22:50:19 30998 2

原创 Linux下安装jdk

1、下载Linux版本jdk        点击此处下载jdk1.8.0_1622、安装        将jdk解压到/usr/java目录下,确保该目录存在,如果不存在要先创建该目录,        创建目录:            输入:mkdir /usr/java            输入:cd /usr            输入:ls            以上操作完成就看见/usr...

2018-04-11 22:13:42 171

原创 Linux常用命令

1、tar命令        语法:                tar(选项)(参数)         选项:                -c:                            创建新的压缩文件                -C&lt;目的目录&gt;:         将压缩文件解压到指定目录可以使用这个选项                -x:         ...

2018-04-10 01:18:40 171

原创 设计模式——工厂模式

一、介绍工厂模式属于创建型模式,它是为创建对象提供接口的,提供了一种创建对象的最佳方式,在创建对象时不会对客户端暴露创建逻辑,并且通过使用一个共同的接口来指向新创建的对象。二、工厂模式的分类    1:简单工厂模式      简单工厂模式又叫静态工厂方法模式,通过专门定义一个类来负责创建其他类的实例。      在该模式中有三个角色:            工厂角色:该角...

2018-03-28 00:11:44 221

原创 使用FormData上传文件

1.使用form表单accept属性的介绍点这里&lt;form id="fileForm"&gt; &lt;p&gt;普通文本框:&lt;input type="text" name="textInput"&gt;&lt;/p&gt; &lt;!-- multiple表示可以选择多个文件 --&gt; &lt;input type="file&

2017-11-30 00:28:31 1376

原创 HTML input标签的 accept 属性

定义和用法accept 属性只能与 &lt;input type="file"&gt; 配合使用。它规定能够通过文件上传进行提交的文件类型。提示:请避免使用该属性。永远不要相信用户的输入,应该在服务器端验证文件格式。语法&lt;input accept="value"&gt;属性值值描述MIME_type用逗号隔开的 MIME 类型列表。比如该文件框只接受 word文档&lt;input type...

2017-11-23 23:31:19 4411

原创 mysql压缩版的安装

1.环境变量的添加(1)将mysql压缩包解压到某个盘符的根目录下(2)添加MYSQL_HOME环境变量,如图所示并且在path变量中追加新值,如下图所示(切记是追加不是覆盖)2.msyql安装(1)在mysql根目录中将my-default.ini文件复制之后改名为 my.ini,并取消注释(#代表注释),如果没有该文件请自行创建my.ini文件,写上如下内容:(标红的地方根据自己的安装目录填写...

2017-08-29 21:25:08 378

原创 servlet访问路径的3中配置方式

1:精确配置,例如:/abc只有/abc可以访问到此servlet,此servlet只处理这一个请求。2:通配符:/*所有路径都可以访问此servlet,此servlet处理所有请求。3:后缀,例如:*.do只要以do为后缀的路径都可以访问此servlet,此servlet可以处理多个请求。...

2017-03-16 23:07:09 437

空空如也

空空如也

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

TA关注的人

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