Java
Java记录
水木小窝
点滴的分享,你我共同的成长~
展开
-
优雅的处理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 · 578 阅读 · 0 评论 -
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 · 342 阅读 · 0 评论 -
创建线程的方式
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 · 163 阅读 · 0 评论 -
三个线程循环交替执行
比如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 · 1454 阅读 · 0 评论 -
设计模式——代理模式
一、介绍对其他对象提供一种代理以控制对这个对象的访问。它有如下角色:Subject:一个抽象的角色,是一个接口。RealSubject:真是对象,是对接口的实现。Proxy:代理对象,里面持有被代理对象(RealSubject)的引用,所以操作代理对象时从而可以操作真实对象,并且在操作真实对象之前可以可以加一些其他的操作,比如对真实对象的权限访问等等。下面是代理模式的UML...原创 2018-08-09 01:02:45 · 128 阅读 · 0 评论 -
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 · 316 阅读 · 0 评论 -
上传图片报错java.lang.IllegalArgumentException
用户上传图片的时候报了java.lang.IllegalArgumentException的错误,找了大量的图片进行问题复现,但是都正确上传了,唯独用户提供的这张图片不可以,最后经过排查是这个图片的问题,解决方法是:将这个图片用画图工具打开,然后“另存为”,再上传这个另存为的图片就可以了。...原创 2019-12-27 16:22:03 · 1524 阅读 · 0 评论 -
拦截器获取request的值之后,Controller拿不到值
原因:在Spring中request的只能被获取一次,拦截器获取之后就会导致Controller拿不到值解决方法:将request的值进行备份,请求到达Controller的时候就会拿到这个值创建一个自己的HttpServletRequestWrapper并继承servlet的HttpServletRequestWrapper,为了备份request中的 值。 public c...原创 2019-11-20 17:49:32 · 1719 阅读 · 0 评论 -
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 · 480 阅读 · 0 评论 -
servlet访问路径的3中配置方式
1:精确配置,例如:/abc只有/abc可以访问到此servlet,此servlet只处理这一个请求。2:通配符:/*所有路径都可以访问此servlet,此servlet处理所有请求。3:后缀,例如:*.do只要以do为后缀的路径都可以访问此servlet,此servlet可以处理多个请求。...原创 2017-03-16 23:07:09 · 409 阅读 · 0 评论 -
使用FormData上传文件
1.使用form表单accept属性的介绍点这里<form id="fileForm"> <p>普通文本框:<input type="text" name="textInput"></p> <!-- multiple表示可以选择多个文件 --> <input type="file&原创 2017-11-30 00:28:31 · 1333 阅读 · 0 评论