![](https://img-blog.csdnimg.cn/20190829101913877.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
HealerJean.
欢迎大家加我为好友,一起探讨代码的乐趣
展开
-
Switch中不能定义相同变量名的解决
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com只需要在case :后面加上{ }中括号,使变量成为局部变量就好了报错的显示FileBusinessOrigin fileBusinessOrigin = FileBusinessOrigin.AUTH;switch (fileBusinessOrigi...原创 2020-03-31 10:47:26 · 4488 阅读 · 4 评论 -
文件File详解
前言博主github博主个人博客http://blog.healerjean.com习惯了使用OSS傻瓜式上传,是不是都快忘记写原生的上传了,今天小米的项目中需要用一下,所以之类简单总结下 吧1、File1.1、创建文件1、路径不存在,fileNameTxt.createNewFile() 会抛出异常2、只有路径,不会创建出文件,也不会报错,无法创建,但是不会报错3、路径存在,文...原创 2019-11-10 13:32:28 · 872 阅读 · 0 评论 -
Unicode可以用来干什么
title: Unicode可以用来干什么date: 2018-12-24 03:33:00tags:Javacategory:Javadescription: Unicode可以用来干什么前言在接到唯一可接口的时候,莫名其妙的将本来好好的中文搞成了乱码,气的我啊,一直找问题,找不到。后来发现日志中的数据变成了一堆类似乱码的,形状,亏我见多识广哈,一眼就知道是Urienc...原创 2018-12-24 14:44:39 · 2053 阅读 · 0 评论 -
URL图片上传到OSS服务器
方案先缓存到本地,再放到服务器package com.duodian.youhui.admin.utils;import com.duodian.youhui.admin.Exceptions.AppException;import com.duodian.youhui.admin.constants.SystemParams;import com.duodian.youhui.adm...原创 2019-01-17 14:10:32 · 2641 阅读 · 0 评论 -
Throwable_Exception_Error
前言Throwable是java.lang包中一个专门用来处理异常的类。它有两个子类,即Error 和Exception,它们分别用来处理两组异常。1、Error用来处理程序运行环境方面的异常,比如,虚拟机错误、装载错误和连接错误,这类异常主要是和硬件有关的,而不是由程序本身抛出的。 Error无法预期的错误因此,这是不可捕捉的,无法采取任何恢复的操作,一般只能显示错误的信息。比如 Ou...原创 2019-01-16 13:25:09 · 342 阅读 · 0 评论 -
Type和class以及比较是相等关系
前言Type是Class的父接口。Class是Type的子类。instanceofinstanceof操作符用于判断一个引用类型所引用的对象是否是一个类的实例。 public void instanceOf(Object object) { /** * == */ if(Long.class == object....原创 2019-05-13 14:36:40 · 1184 阅读 · 0 评论 -
Optional简单使用
前言package com.hlj.Optional;import com.hlj.Optional.bean.User;import org.junit.Test;import java.util.Optional;import java.util.logging.Logger;/** * @Desc: * @Author HealerJean * @Date 2018...原创 2018-09-18 19:31:12 · 942 阅读 · 0 评论 -
Collectors 的简单使用API
前言4、forEach/** * 3、Java8为集合类引入了另一个重要概念:流(stream)。一个流通常以一个集合类实例为其数据源, * 然后在其上定义各种操作。流的API设计使用了管道(pipelines)模式。 * 对流的一次操作会返回另一个流。如同IO的API或者StringBuffer的append方法那样, * 从而多个不同的操作可以在一个语句里串起来...原创 2018-09-10 20:11:24 · 1219 阅读 · 1 评论 -
lambda表达式初探
前言1、lambda写法1.1、lambda表达式1、前面一个小括号,不需要任何参数可以直接执行 一些参数 2、箭头指向后面要做的事情 一个箭头3、箭头后面方法体大括号,代表具体要做的事情 一些代码1.2、参数1、 如果参数有多个,那么使用逗号分隔,(Person s,...原创 2018-09-14 19:53:12 · 446 阅读 · 0 评论 -
BigDecimal常用详解
前言1、加减乘除运算进行相应的计算后,我们可能需要将BigDecimal对象转换成相应的基本数据类型的变量,可以使用floatValue(),doubleValue()等方法。public class Arith { /** * 提供精确加法计算的add方法 * @param value1 被加数 * @param value2 加...原创 2018-07-30 18:22:41 · 1021 阅读 · 0 评论 -
1、TreeMap介绍
前言使用场景:那如果我们在一个对查找性能要求不那么高,反而对有序性要求比较高的应用场景这个时候HashMap就不再适用了,我们需要一种新的Map,TreeMap. HahMap是Key无序的,而TreeMap是Key有序的。1、观察下大概的源码 1、TreeMap继承了NavigableMap,而NavigableMap继承自SortedMap,为Sorted...原创 2018-08-09 11:55:11 · 279 阅读 · 0 评论 -
静态内部类使用注入的方法属性
前言/** * @Desc: 获取access_toaken * @Author HealerJean * @Date 2018/5/25 上午11:34. */@Slf4j@Servicepublic class AccessToakeUtil { @Resource private WechatAccessToakenMapper wecha...原创 2018-06-06 16:16:18 · 1658 阅读 · 0 评论 -
LocalDateTime、LocalDate
1、LocalDate取当前日期:LocalDate today = LocalDate.now(); // 根据年月日取日期,5月就是05:>2014-12-25LocalDate date= LocalDate.of(2017, 05, 25); 根据字符串取: 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式LocalDate dat原创 2017-05-25 14:49:12 · 381 阅读 · 0 评论 -
位运算符
前言博主github博主个人博客http://blog.healerjean.com1、字节描述一个字节为8位二进制位。字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。1B(byte,字节)= 8 bit(位);数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名...原创 2019-04-25 11:52:20 · 338 阅读 · 0 评论 -
List的一些操作
1、remove object/index/** * 1、测试remove方法 remove(object 或者是 index(int)) */@Testpublic void RemoveMethod() { List<String> stringList = new ArrayList<String>(); stringList.add("String...原创 2019-09-29 14:29:22 · 270 阅读 · 0 评论 -
JAVA字符串根据宽度(像素)换行问题
前言在一些场景下,我们经常会通过判断字符串的长度,比如个数来实现换行,但是中文、英文、数字、其实在展示的时候同样长度的字符串,其实它的宽度是不一样的,这也是们我通俗意义上说的宽度(像素)1、根据字符串长度换行,中英文会出现问题需求:第一行21个字符,然后换行,第二行开始26个字符然后换行String tuijian = description ;S...原创 2018-08-08 16:50:29 · 2750 阅读 · 4 评论 -
String字符串根据字数进行分隔
如下,获取到的是一个list集合 //把原始字符串分割成指定长度的字符串列表 @Test public void testLengthSplit(){ System.out.println(getStrList("123456789",3)); } /** * 把原始字符串分割成指定长度的字符串列表 * @param inputString 原始字...原创 2018-12-27 18:48:28 · 2235 阅读 · 0 评论 -
几种常见的字符串的截取
前言项目开发过程中,经常会截取各种各样的字符串,这里讲我项目中遇到的一些字符串截取提供出来1、url中通过name值获取参数值package com.duodian.youhui.admin.utils;import lombok.extern.slf4j.Slf4j;import java.io.UnsupportedEncodingException;import java.n...原创 2018-12-19 18:40:52 · 168 阅读 · 0 评论 -
java8_9接口新特性
前言jdk8和9都对接口进行了新的更新,还是不错的Java8开始,1、接口中,允许定义default默认方法(可以有多个)public private (public可以省略,static不可以省略)2、接口中允许定义静态风阀 ,静态方法的修饰符public static (public可以省略,static不可以省略)Java 9开始,支持再...原创 2018-09-14 20:29:28 · 228 阅读 · 0 评论 -
Java10_var的用法
前言package com.hlj.java10.study;import org.junit.jupiter.api.Test;import java.util.List;/** * @Desc: var 局部变量的类型推断 * 1、 var并不是保留字,是允许“var”作为变量名使用。 * @Author HealerJean * @Date 2018...原创 2018-10-09 16:43:28 · 406 阅读 · 0 评论 -
设计模式之工厂方法模式
前言个人觉得工厂方法,我们平常在开发中或多或少都会用到工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式是简单工厂模式的衍生,解...原创 2018-10-16 14:49:43 · 140 阅读 · 0 评论 -
设计模式之抽象工厂
前言工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序(工厂中的方法扩展),必须对工厂类进行修改,这违背了闭包原则 所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。1、抽象工厂举例1.1...原创 2018-10-16 14:53:44 · 146 阅读 · 0 评论 -
设计模式之观察者模式
前言使用场景: 1、拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价。 2、西游记里面悟空请求菩萨降服红孩儿,菩萨洒了一地水招来一个老乌龟,这个乌龟就是观察者,他观察菩萨洒水这个动作。 1、Subject 对象带有绑定观察者到 Client 对象和从 Client 对象解绑观察者的方法package com.hlj.designpatterns.ObserverPat...原创 2018-10-16 15:37:30 · 138 阅读 · 0 评论 -
设计模式之代理模式
前言使用场景 1、猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类。2、买火车票不一定在火车站买,也可以去代售点。3、一张支票或银行存单是账户中资金的代理。支票在市场交易中用来代替现金,并提供对签发人账号上资金的控制。1、开始 1.1、创建一个要被...原创 2018-10-16 15:54:36 · 154 阅读 · 0 评论 -
设计模式之外观模式
前言外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。应用场景:应用实例: 1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。 2、JAVA 的三层开发模式。优点: 1、减少系统...原创 2018-10-16 16:20:30 · 226 阅读 · 0 评论 -
Java9_模块化
前言1、必须是java文件夹下面才可以创建module-info.java,添加两个maven。module项目。分别为one和twomodule one {}module two {}2、设置模块的依赖和权限2.1、设置modulej级别为9(我的idea初始为5)2.2、one中创建两个包和方法package com.hlj.java9.can;...原创 2018-10-10 10:37:53 · 2266 阅读 · 0 评论 -
Java操作图片工具类
1、多个图片合成2、生成不带logo的二维码3、读取图片二维码信息4、生成带logo的二维码5、图片压缩package com.hlj.util.QRcode;import com.google.zxing.*;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.google.zx...原创 2018-10-29 17:35:26 · 3865 阅读 · 0 评论 -
Java生成图片红色问题
Java上传图片时,对某些图片进行缩放、裁剪或者生成缩略图时会蒙上一层红色, 经过检查只要经过ImageIO.read()方法读取后再保存,该图片便已经变成红图。 因此,可以推测直接原因在于ImageIO.read()方法加载图片的过程存在问题。1、解决 :而使用JDK中提供的Image如果是fileImage src=Toolkit.getDefaultToolkit().getImag...原创 2018-11-10 16:10:00 · 1351 阅读 · 4 评论 -
根据主键id生成6位唯一邀请码
根据主键id生成6位唯一邀请码import java.util.Random;/** * 作者 :HealerJean * 邀请码生成器,算法原理: * 1) 获取id: 1111111 * 2) 使用自定义进制转为:gpm6 * 3) 转为字符串,并在后面加'O'字符:gpm6o * 4)在后面随机产生若干个随机数字字符:gpm6o7 * 转为自定义进制后就不会出现o这个字...原创 2018-11-13 18:26:23 · 12099 阅读 · 2 评论 -
长链接制作为短链接
前言需要说明的是,这里使用的是微博提供的接口,也就是说,这个短链接是微博给我们提供的在网络上到一个我们工具站http://dwz.wailian.work/anonymous.php言归正传微博开发平台APIhttp://open.weibo.com/wiki/2/short_url/shorten1、调用接口(主要部分) public static String Lo...原创 2018-11-26 13:35:14 · 1463 阅读 · 0 评论 -
HashMap、HashTable、ConcurrentHashMap
1、HashMap众所周知 HashMap 底层是基于 数组 + 链表 组成的,不过在 jdk1.7 和 1.8 中具体实现稍有不同。1.1、HashMap为什么线程不安全(hash碰撞与扩容导致)HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。这时候,HashMap需要扩展它的长度,也就是进行Resize。影...原创 2018-11-26 18:24:51 · 140 阅读 · 0 评论 -
逗号字符串_集合_数组之间的相互转化
@Test public void cover(){ String array[] = {"1","2","3"}; List<String> list ; String str ; //1、数组转化为集合 list = Arrays.stream(array).collect(Collectors.toList()); ...原创 2018-11-28 14:29:14 · 485 阅读 · 0 评论 -
JavaBean字段防止非空赋值
前言工具类制作起因,有时候项目中出一点点错误,在所难免,经常,有些地方的字段是String,但是到了其他地方是Long,Date,Interger,BigDecimal,这个时候每次都需要判断下是否为空,否则就会在New BigDecimal(string)等中转化失败,报空指针。 如果字段很多,简直太恶心了。举例 if(string!=null){ date.setBigVal...原创 2018-12-13 12:14:44 · 2321 阅读 · 0 评论 -
Java生成二维码以及java绘图
前言项目中用到了生成二维码以及通过二维码制作为推广图片,如下,(用到了log,将logo放到了二维码中间)二维码和推广图片logo二维码推广图片好了不废话了,开始制作,首先我们是要下载这个图片的主要学习:BufferedImage//整体图合成BufferedImage bufferedImage = new BufferedIm...原创 2018-06-25 19:47:19 · 1520 阅读 · 0 评论