![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
一杯丶冰美式
No errors,no warning,please
展开
-
代码整洁提升方案
代码整洁度提升原创 2023-01-15 21:42:07 · 4462 阅读 · 1 评论 -
SpringBoot实现图片文件的上传并显示
springboot实现图片上传的思路导入相关的依赖<!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency> <groupId>commons-io</groupId> <artifactId>commons-io...原创 2019-03-29 13:46:54 · 3349 阅读 · 0 评论 -
TreeSet的几大特点
TreeSet的几大特点:1、TreeSet中存储的类型必须是一致的,不能一下存int,一下又存string2、TreeSet在遍历集合元素时,是有顺序的【从小到大】(我的理解,如果存的字母,按字典序排列)3、排序:当向TreeSet中添加自定义对象时,有2种排序方法,1:自然排序 2、定制排序自然排序:要求自定义类实现java.lang.Comparable接口并重写compareTo...原创 2019-04-02 11:16:07 · 4380 阅读 · 0 评论 -
关于HashMap容量的初始化,还有这么多学问
转载自 关于HashMap容量的初始化,还有这么多学问在《HashMap中傻傻分不清楚的那些概念》文章中,我们介绍了HashMap中和容量相关的几个概念,简单介绍了一下HashMap的扩容机制。文中我们提到,默认情况下HashMap的容量是16,但是,如果用户通过构造函数指定了一个数字作为容量,那么Hash会选择大于该数字的第一个2的幂作为容量。(3-&...转载 2019-03-31 19:58:24 · 518 阅读 · 0 评论 -
IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名
Author 注释 签名如下:/*** @author 稚枭天卓 E-mail:zhxiaotianzhuo@163.com* @version 创建时间:2016-6-20 下午04:58:52*/Eclipse 自动生成 Author 注释 签名window-> preference->Java-> code styple-> code templat...转载 2019-03-31 19:38:49 · 544 阅读 · 0 评论 -
SpringMVC配置登录拦截器
项目中经常有需求,如果没有登录进入系统,则应该返回登录,那么这一层登录怎么去实现呢? 在ssm项目中主要通过继承HandlerInterceptorAdapter这个类代码:public class LoginIntercepter extends HandlerInterceptorAdapter { //handlerMapping处理前 //该函数...原创 2019-03-12 22:16:52 · 706 阅读 · 0 评论 -
JAVA 8新特性 Lambda 表达式
JAVA 8JAVA 8新特性 Lambda 表达式 帮助我们开发者 Write less, do more,作为开发者的我们还是有必要详细了解的作为新特性我们开发者使用应先阅读由Oracle公司发布的官方文档,基本了解Lambda 使用范围官方文档阅读我在仔细阅读Oracle发布的官方文档之后,对Lambda表达式有了一些基础的认识,接下来,我带大家一起了解Lambda使用,以及在jav...转载 2019-03-21 10:21:59 · 3038 阅读 · 0 评论 -
使用MyBatis Generator自动生成代码 (一)
前言:mybaits 三剑客 :mybatis-generator、mybatis-plugin、mybatis-pagehelper其中本文将主要讲解mybatis-generator的作用以及用法。mybatis-generator主要的作用是通过数据库直接生成 相关的dao层、mapper层、pojo层,其大大节约了开发所花费的时间,让我们更加关注业务的实现。接下来就将一步一步讲解my...原创 2019-02-27 13:42:04 · 416 阅读 · 0 评论 -
SpringMVC--前后台日期格式传值解决方式 @InitBinder的使用
解决报错:Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'发生这一错误的主要原因是Controller类中需要接收的是Date类型,但是在页面端传过来的是String类型,最终导致了这个错误。、解决方法在InitBinder 初始化的时候对日期类型进行转换,转换为可...原创 2019-02-20 18:10:25 · 980 阅读 · 0 评论 -
Mybatis中编写like语句
Oracle SELECT * FROM user WHERE name LIKE CONCAT('%',#{name},'%') 或 SELECT * FROM user WHERE name LIKE '%'||#{name}||'%' SQL Server ...转载 2019-02-20 01:58:29 · 1818 阅读 · 0 评论 -
多线程基础(四)-----ThreadLocal局部线程变量
在本文中,我们首先讲述了为什么要有局部线程变量,然后通过一系列的案例来演示局部线程变量ThreadLocal到底有什么作用。ThreadLocal局部线程变量是什么?ThreadLocal的实例代表了一个线程局部的变量,每条线程都只能看到自己的值,并不会影响到其它线程中也存在的该变量。用于解决多线程并发访问出现的问题。ThreadLocal让线程A与线程B的变量相互隔离,...原创 2019-02-18 11:22:16 · 291 阅读 · 0 评论 -
多线程-线程并发Fork/Join Task(三)
前言:当硬件处理能力不能按照摩尔定律垂直发展的时候,选择了水平发展,多核处理器已经广泛应用。未来随着技术的进一步发展,可能出现成百上千个处理核心,但现有的程序运行在多核心处理器上并不能得到较大性能的提升,主要的瓶颈在于程序本身的并发处理能力不强,不能够合理的利用多核心资源。ForkJoin框架作为线程并发框架,其核心采用了分而治之的思想,其思想将一个大的模块逐步划分为一个又一个小的任务...原创 2019-02-11 20:39:00 · 627 阅读 · 0 评论 -
SpringBoot事务-REQUIRES_NEW 事务属性陷阱
REQUIRES_NEW 事务属性陷阱不管是使用 Spring Framework,还是使用 EJB,使用 REQUIRES_NEW 事务属性都会得到不好的结果并导致数据损坏和不一致。REQUIRES_NEW 事务属性总是会在启动方法时启动一个新的事务。许多开发人员都错误地使用 REQUIRES_NEW 属性,认为它是确保事务启动的正确方法。考虑清单 11 中的两个方法:清单 11. 使用...转载 2019-02-10 14:02:37 · 9472 阅读 · 0 评论 -
多线程基础(二)
锁机制Syncronized内置锁主要是用来锁对象,锁方法,锁类。对象锁与类锁的区别?类锁锁定的是class对象,class对象在虚拟机里面的,在虚拟机里只有一个而对象锁是new出来的实例,故对象锁于类锁没有任何联系,可以同时进行。对象锁也要保证是否锁住的同一个对象,否则无效。Volatile关键字,最轻量级的线程共享。适用于一个线程写,多个线程读,缺点是无法实现线程的...原创 2019-02-09 17:32:29 · 251 阅读 · 0 评论 -
Hash冲突解决方式
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap<String,Object> m=new HashMap<String,Object>(); m.put("a", "r...转载 2019-04-09 09:11:13 · 412 阅读 · 0 评论 -
Java中Map集合中的Entry对象
Entry: 键值对 对象。 在Map类设计是,提供了一个嵌套接口(static修饰的接口):Entry。Entry将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。Entry为什么是静态的? Entry是Map接口中提供的一个静态内部嵌套接口,修饰为静态可以通过类名调用。Map集合遍历...转载 2019-04-20 21:39:51 · 1037 阅读 · 0 评论 -
解决多个Spring Boot项目部署在一个Tomcat容器无法启动
业务介绍最近用Spring Boot开发了了几个公众号项目,并准备做跳转引流。部署环境:JDK8、Tomcat8、Centos7遇到的问题我多个项目一直都是部署在同一个Tomcat下,共用80端口,之前使用的MVC或者Servlet项目都没有问题,但是今天把新的Spring Boot项目部署上去之后,Tomcat直接抛出异常,并且该项目无法访问,其他项目正常。报错信息:org....原创 2019-09-11 11:33:07 · 865 阅读 · 0 评论 -
SpringMvc报错Missing URI template variable ‘id‘ for method parameter of type long
long类型的方法参数缺少uri模板变量“id”问题出现的原因是使用@PathVariable注解而没有采用rest的写法如图所示:解决思路:加上 @RequestMapping("/ban/{userId}")...原创 2019-07-22 18:06:57 · 34313 阅读 · 7 评论 -
springboot 通用功能的开发
在开发过程中,我们常常会想,也许每天都是重复的CRUD类的工作,而基于面向对象又有很丰富的特性,例如:封装,继承,多态等特性。那么完全可以将通用的部分的代码抽离出来。极大的简化web开发。 什么样的功能可以被抽离?其实对于大家平常开发都会用的功能都可以抽离出来,一张表的增删改查。分页查询,批量操作等。对于缓存的操作,也可以抽离出来。尽可能的解除开发的耦合性, 对于通用功能的实现,也许对...原创 2019-07-30 14:49:49 · 1384 阅读 · 2 评论 -
多线程(六)实战--手写简单的线程池
1.什么是线程池?为什么用使用它1.降低资源的消耗,在之前做elasticsearch高级客户端的开发的项目中,每一次创建与elasticsearch的连接都会花费不少的时间,大约是1-2秒左右,这样的话,使用elastcisearch这样的分布式搜索服务器就没有必要了。所以可以使用线程池来对连接进行优化,如能把创建好的连接保存在线程池里,每一次需要调用的时候从线程池中取出连接,可以大幅度的节...原创 2019-06-09 15:51:38 · 603 阅读 · 0 评论 -
赛事管理系统,基于SSM框架一个简单的比赛裁判管理系统
简介这个项目是一个简单的比赛管理系统,该练手小项目希望能帮助到大家,SSM的整合使用技术IOC容器:SpringWeb框架:SpringMVCORM框架:Mybatis数据源:C3P0日志:log4j AOP前端框架:Hui其他插件: Ueditor快速上手1.运行环境和所需工具建议使用以下环境,避免版本带来的问题编译器:Eclipse项目构建工具:Maven数据库:...原创 2019-05-27 18:01:11 · 3300 阅读 · 0 评论 -
StringBuffer与StringBuilder的区别,及实现原理
区别1、StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,2、只是StringBuffer 中的方法大都采用了synchronized关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不安全的。3、在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全而Str...转载 2019-05-13 16:26:18 · 3017 阅读 · 0 评论 -
spring aop使用异步的方式批量处理系统日志
在软件开发的过程中,进行系统日志记录是必不可少的,我利用了Spring aop 自定义注解 面向切面编程 队列 异步 批量处理的方式 完成了我们系统的日志记录,提升了日志记录的性能。首先 :编写自定义注解,使用该注解注解在controller层的方法上,便于后续的aop记录日志。/** * @author 徐塬峰 2019/4/14 * 以自定义注解的方式记录日志 * 注解在方法......原创 2019-05-14 11:43:14 · 3467 阅读 · 2 评论 -
MyBatis与JPA的区别是什么
MyBatis分为全注解版和xml版;全注解版适合于小项目,直接在方法上加注解,在注解中写sql仓储Repository 模式是领域驱动设计中另一个经典的模式。在早期,我们常常将数据访问层命名为:DAO,而在 SpringData JPA 中,其称之为 Repository(仓储),这也不是巧合,而是设计者有意为之。熟悉 SpringData JPA 的朋友都知道当一个接口继承 JpaRep...原创 2019-05-08 14:28:03 · 4105 阅读 · 0 评论 -
java 性能优化:掌握35 个小细节,迅速提升 java 代码的运行效率
代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如...转载 2019-04-27 10:00:02 · 777 阅读 · 0 评论 -
@PathVariable是什么?详情及用法解析
@PathVariable 映射 URL 绑定的占位符带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义通过 @PathVariable 可以将&nbs...原创 2019-04-26 09:29:49 · 16149 阅读 · 0 评论 -
深入 理解Statement 和 PreparedStatement
一、使用Statement而不是PreparedStatement对象JDBC驱动的最佳化是基于使用的是什么功能. 选择PreparedStatement还是Statement取决于你要怎么使用它们. 对于只执行一次的SQL语句选择Statement是最好的. 相反, 如果SQL语句被多次执行选用PreparedStatement是最好的.PreparedStatement的第一次执行消耗是很...转载 2019-04-21 18:55:33 · 3821 阅读 · 0 评论 -
多线程基础(一)
线程基础,线程之间的共享和协作时间片轮询?在计算机基础知识里有cpu时间轮转机制 也叫作RR调度,即给每一个进程分配一个时间段,这个时间段为一个进程的生命,在时间段结束后,操作系统就把进程把杀死了。时间片每一次切换都会浪费较多的时间,故应该少切换,减少对程序的影响。进程与线程?在一个进程内部可以有多个线程,多个线程共享一个进程的资源,而进程与进程之间是相互独立的。线程自己不拥有系统...原创 2019-02-09 11:10:34 · 224 阅读 · 0 评论 -
java高级--面试问题
一。三大框架方面问题1、Spring 事务的隔离性,并说说每个隔离性的区别解答:Spring事务详解2、Spring事务的传播行为,并说说每个传播行为的区别解答:Spring事务详解3、hibernate跟Mybatis/ ibatis 的区别,为什么选择?解答:Hibernate与Mybatis的比较4、Struts跟...转载 2019-01-23 16:11:26 · 1058 阅读 · 0 评论 -
Eclipse上安装P3C插件
1.P3C是什么?p3c是阿里开发的代码规范插件:为了让开发者更加方便、快速将规范推动并实行起来,阿里基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。...原创 2019-02-14 17:22:18 · 1961 阅读 · 1 评论 -
X-Forwarded-For 获得用户的真实ip
什么是X-Forwarded-For?X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。标准格式如下:X-Forwarded-For: client1, proxy1, proxy2。如何通过...原创 2018-07-23 09:09:29 · 5196 阅读 · 2 评论 -
Linux环境下配置JDK环境与Tomcat环境
1.安装JDK linux版本目录 1.安装JDK linux版本2.将JDK发送到阿里云 linux服务器3.开始配置4.配置系统配置文件5.配置完成 测试类6.将写好的代码放到服务器上运行7.配置tomcat服务器8.下载完成后上传到云服务器中安装 JDKhttp://www.oracle.com/technetwork/java/java...原创 2018-07-03 20:23:48 · 660 阅读 · 0 评论 -
JavaWeb实现图片上传并显示
1.创建maven项目,打包格式为war,导入maven依赖 pom文件。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h......原创 2018-07-03 14:37:19 · 35922 阅读 · 0 评论 -
静态内部类
java中可以使用static关键字来声明一个成员内部类,该类被称为静态内部类,它可以在不创建外部类的对象的情况下被实例化。外部类名.内部类名 变量名=new 外部类名.内部类名();演示外部类class Outer{private static int num=6;static class Inner{void show(){System.out.println("num="+nu...原创 2018-06-07 09:48:05 · 540 阅读 · 0 评论 -
Ajax简单介绍与使用
1,阿贾克斯是什么?简单来说AJAX是一个局部的刷新技术,通过向服务器发送并且获得请求来刷新某一个局部界面,而不是整个界面的刷新。它是通过在HTML页面中使用的JavaScript的和的的XmlHttpRequest来向服务器发送和获取数据。它可以实现页面的局部刷新和异步刷新。2,如果没有的Ajax的会怎么样假如你在看网络视频的时候,如果没有AJAX这个局部刷新技术,那么每次你评论...原创 2018-06-07 09:31:41 · 741 阅读 · 0 评论 -
使用final来修饰方法
Final 来修饰方法final来修饰类 方法 属性都表示其值不可变,也就是说类不可继承,方法不可重写,属性不可覆盖。如果使用final来修饰方法,那么表示该方法不能被重写,如果在父类中使用final 来修饰方法,那么该方法就被定义为private,即不可重写,即方法被私有化了。demo父类 中有一个用final 声明的speak方法,子类继承父类并去调用speak方法。cl......原创 2018-06-07 09:15:26 · 18892 阅读 · 4 评论 -
JavaWeb中解决dom解析xml文件路径出错的问题
今天项目中使用dom 去解析xml文件但是由于是web项目 报错提示找不到xml文件路径data xml文件所处的位置解决方案: 写出相对于src的绝对路径即可,代码如下 URL xmlPath = MyXMLUtils.class.getClassLoader().getResource("./data.xml"); Docume...原创 2018-06-20 19:49:05 · 2072 阅读 · 0 评论 -
面向对象多态概念理解
1. 什么是多态一句话概括:父类对象引用子类变量 调用的是子类的实现例子:子类public class Chinese extends Person{ public void hello() { System.out.println("我是中国人"); } public void baimian() { System.out.println("我来拜年了"); } }...原创 2018-05-21 20:11:46 · 2506 阅读 · 1 评论 -
SSM框架整合ElasticSearch实现数据的增删改查实战案例
前言: 当处理海量数据时,单纯的mysql oracle 以及sql查询已经无法满足我们在效率上的需求,elasticSearch 是当下一款热门的实时搜索引擎基于lucense的搜索服务器,使用它可以完成近乎实时的数据查询。并且支持权重搜索,全文搜索等方式进行查询。目录一、准备开发环境二、常用操作三、查询结果高亮显示四、效果展示五、后记:一、准备开发环境......原创 2018-04-24 14:15:17 · 10333 阅读 · 3 评论 -
实现Runnable接口与继承Thread类的区别
一、首先通过例子实现这两种方式。1、继承Thread类。 Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了。首先新建一个MyThread类继承自Thread类,重写run()方法,在控制输入传递的文本,public class MyThread extends Thread { private ...转载 2018-05-18 12:46:58 · 855 阅读 · 0 评论