自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(234)
  • 资源 (3)
  • 收藏
  • 关注

原创 树的应用方法

【代码】树的应用方法。

2022-11-30 22:25:26 166 1

原创 Java客户端下载加密Excel

分享一个关于下载加密excel的方法;核心思想就是将workbook的数据流到内容,通过POIFSFileSystem进行包装加密,最终将数据流写到response流里面;关于代码中的writer是引用hutool的操作excel的工具类;大家不必在此费脑哦后续博主可以再写一个完整的demo @Override public boolean downloadExcel(ExcelWriter writer, String password, String fileName, Str

2022-01-18 18:18:21 514

原创 通过Mybatis 拦截器插件实现bean加解密

说明:想了解mybatis拦截器实现bean加解密原理的同学先去其他平台了解后,在应用上遇到问题/想借鉴下应用方法的可以继续往下看~1、定义加密类、加密字段的注解import java.lang.annotation.*;/** * 需要加解密的类注解 */@Documented@Inherited@Target({ ElementType.TYPE })@Retention(RetentionPolicy.RUNTIME)public @interface Encrypt

2021-12-13 20:03:56 761

原创 结论:Stream能用parallel()就别放过

结论:Stream能用parallel()就别放过 ps:请读者自己学习研究在哪些场景下可以用parallel,推荐书籍《Java8实战》 验证1: 手动塞数据和使用Stream的collect收集区别(差别不大)验证2: 使用Stream的parallel(),效率提高了50%左右测试案例,可自取验证 public static void main(String[] args) { List<Integer> list...

2020-09-28 14:27:21 2340 2

原创 结论:能用Stream就不要用For循环

结论:能用Stream的就不要用For循环通过测试: Stram流比For循环处理速度稍快一些(2-3s不等)案例如下: public static void main(String[] args) { List<Integer> list = new ArrayList<>(); IntStream.range(0, 10000000).boxed() .forEach(i -> list.

2020-09-28 14:10:20 1102

原创 多线程模版案例(可提供平常学习、业务使用)

1、相关内容关键字(不熟悉的可自行学习,Java8Stram流的可以替换为for循环) ExecutorService、FixedThreadPool CountDownLatch(可暂时不关注) AtomicLong Java8 Stream流2、案例如下(已加入详细备注):public static void main(String[] args) throws InterruptedException { // 目前有...

2020-09-28 11:32:00 156

原创 Stream流切割N个List

public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); int limit = countStep(list.size()); //方法一:使用流遍历操作 List<List<Integer>> mglist = new ArrayList<>(); Stream.iterate(.

2020-09-25 18:59:54 1940

原创 Schedule原理+demo

schedule的原理: 使用(线程安全)延迟队列,按照任务的待运行时间从小到大排序,处理schedule的线程不停的从延迟队列中取任务,只有task任务的待执行时间为当前时间时,方可取出task执行,其他场景线程进入等待状态。了解到schedule原理后,尝试动手写个小Demo吧!列出我们需要实现的内容列表:使用JDK自带延迟队列的实现(DelayQueue) 创建任务类(需要实现Delayed,因为DelayQueue的元素需强制继承Delayed类) 开启一个单线程...

2020-07-06 10:15:17 710

原创 牢记base64编解码

1、简单到就一句话的功夫 String str = "";String decode = new String(Base64Utils.decode(str.getBytes(Charset.forName("utf-8"))), Charset.forName("utf-8"));2、String.getByte("charSetName")new S...

2020-03-17 18:12:17 177

原创 Java根据消息模版格式化填充消息内容

在公司开发某项目有消息通知这一模块,抖了一个小机灵,提供两种根据消息模版格式化填充消息内容的方法????希望发出来,能够给需要的同学提供一个好的解决思路方法一:模拟yml文件,根据@XXX@填充参数的方式: Map<String, String> params = new HashMap<>(); params.put("name", "盼盼");...

2020-01-08 15:18:01 1637

原创 Java8专题总结

1. 我的收获在工作中,能够更熟练使用Stream流 了解了并行处理的原理 增加我对JDK8学习了解的自信2. 和以前的不同认识的多了。之前只是知道个别几个常用的方法,比如filter、map、foreach和collect,知道少,使用就有一定的局限性。现在我能很自然的使用stram流进行开发工作。 了解的多了。之前只知道能用并行流处理,就用并行流处理,比如parallel...

2019-10-29 21:52:10 190

原创 使用HuTool工具二次封装下载Excel模版、上传excel数据、下载excel数据

背景:最近简略的了解了一个关于HuTool的工具包,自己又对其进行封装了一个关于操作Excel的工具类,准备分享出来。好处:利用java反射机制,一定程度上减少代码的冗余量。代码讲解:java操作Excel数据是为了将Excel表的数据与我们的javabean一一对应起来,hutool这个工具包确实为我们提供了解决方案: excelReader.addHead...

2019-10-12 14:55:31 5208 4

原创 Java8专题七《函数式编程小结》

背景:在实现和维护一个系统中,我们首先会去看这个程序是否具有良好的结构(耦合度和内聚性),因为良好的结构便于我们理解。除此以外,我们最关心的就是在日常工作中对代码进行维护时的调试,因为代码遭遇一些无法预期的值就有可能发生崩溃。我们接下来的工作无非就是去寻找导致这个问题的原因了->为什么会发生这种情况?他是怎么进入这种状态的?1、函数式编程是什么?它是一种使用函数...

2019-10-07 21:35:33 208

原创 Java8专题六《用流收集数据》

本章节一共有两个部门1、讲解大概14个Collectors类的静态工厂方法的用法2、简单的讲解收集器接口1. 收集器简介collect() 接收一个类型为 Collector 的参数,这个参数决定了如何把流中的元素聚合到其它数据结构中。Collectors 类包含了大量常用收集器的工厂方法,toList() 和 toSet() 就是其中最常见的两个,除了它们还有很多收集器,用...

2019-09-29 21:52:55 174

转载 MySQL版本对varchar的定义和限制条件

目录1、MySQL版本对varchar的定义2、存储限制3、编码限制4、长度限制1、MySQL版本对varchar的定义 4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个中文3字节) 5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8中文(每个中文3字节),都可以存放50个...

2019-09-23 15:29:11 834

原创 Java8专题五(下)《使用流》

目录1、 数值流1.1原始类型流化1.2转换回对象流1.3默认值OptionalInt1.4数值范围2、 构建流2.1由值创建流2.2由数组创建流2.3由文件生成流2.4 由函数生成流:创建无限流3、小结1、 数值流我们在前面看到了可以使用reduce方法计算流中的元素的总和。例如://暗含的装箱成本int calor...

2019-09-22 20:21:29 120

原创 Java8专题五(上)《使用流》

目录1、筛选与切片2、映射3、排序4、查找与匹配5、简介Optional6、归约6.1 最大值,最小值1、筛选与切片筛选与切片 方法 描述 filter 接收 Lambda , 从流中排除某些元素。 limit 截断流,使其元素不超过给定数量。 skip 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,...

2019-09-22 20:00:14 132

原创 Java8专题四《引入流》

目录1、什么是流?2、使用流的好处3、集合和流4、流操作的分类4.1中间操作4.2 终端操作4.3 使用流的步骤5、 小结1、什么是流?流是JavaAPI的新成员,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码!我们会在后面的章节详细解释流和并行化是怎么工作的。2、使用流的好处用一个例子展示流...

2019-09-22 19:18:56 132

原创 Java8专题三(下)《Lambda表达式-复合Lambda表达式》

目录1、复合Lambda表达式的有用方法1)比较器复合2)谓词复合3)函数复合2、小结1、复合Lambda表达式的有用方法Java8的好几个函数式接口都有为方便而设计的方法。比如用于传递Lambda表达式Comparator、Function和Predicate都提供了允许你进行复合的方法。比如,你可以让两个谓词之间做个or操作,组合成一个更大的谓词,你还可以让一个函数...

2019-09-22 18:53:57 267

原创 Java8专题三(上)《Lambda表达式》

目录1、Lambda是什么?2、Lambda表达式组成部分是什么?3、为什么要用以及在哪里可以使用Lambda?4、函数式接口5、 方法引用1、Lambda是什么?可以把Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式:它没有名称,但有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。2、Lambda表达式组成部分是什么?Lam...

2019-09-22 18:45:24 170

原创 Java8专题二《通过行为参数化传递代码》

Java8提出了三个新概念:流处理、行为参数化、并行处理。目录什么是行为参数化? 行为参数化的好处是什么? 应对不断变化的需求的案例1. 什么是行为参数化?行为是一个动词,指的是举止动作;参数是个名称,是一个变量;将一个“举止动作”作为参数,传递给方法。那么行为参数化就是一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同的行为能力。2. 行为参数化的好处是...

2019-09-22 17:56:46 100

原创 Java8专题一《为什么要学习Java8?》

背景:leader要求每人选一个专题给大家做分享,一位同学由于业务上要使用okhttp,所以他选择分享的课题就是okHttp。思考了一周后的我就决定选择Java8作为分享专题。目录为什么选择Java8作为此次的分享专题呢? Java8都有哪些新特性? 整体学习进阶流程 讲解方式1. 为什么选择Java8作为此次的分享专题呢?第一点是在我实习期间,项目中很多地方都用了...

2019-09-22 17:04:16 259

原创 Java8专题五(下)《使用流》

本章内容1、筛选、切片2、映射3、查找、匹配4、归约5、数值流6、构建流7、小结5.5数值流我们在前面看到了可以使用reduce方法计算流中的元素的总和。例如:int calories = menu.stream() .map(Dish::getCalories) .reduce(0, Integer::sum);...

2019-09-15 22:33:34 164

原创 Java8专题五(中)《使用流》

本章内容1、筛选、切片2、映射3、查找、匹配4、归约5、数值流6、构建流7、小结3. 查找和匹配另一个常见的数据处理套路是看看数据集中的某些元素是否匹配一个给定的属性。Stream API通过allMatch、anyMatch、noneMatch、findFirst和findAny方法提供了这样的工具。3.1 检查谓词是否至少匹配一个元素anyMat...

2019-09-15 16:24:47 165

原创 Java8专题五(上)《使用流》

本章内容1、筛选、切片2、映射3、查找、匹配4、归约5、数值流6、构建流7、小结1. 筛选和切片我们来看看如何选择流中的元素:用谓词筛选,筛选出各个不相同的元素,忽略流中的头几个元素,或将流截短至指定长度。1.1用谓词筛选Stream接口支持filter方法。该操作会接受一个谓词(一个返回boolean的函数)作为参数,并返回一个包括所有符合谓词的...

2019-09-15 16:06:21 138 1

原创 根据年份获取出生年代

背景:需要写一个统计员工年代的接口,就是统计一下大家都是70后、80后、90后...我拿到的数据只有员工的出生年月日期,那这一块只能自己算啦~我又不想写一大串if-if-if语句(代码已经够烂????,所以非常非常不想写一大串if)突然????抖出来一个小激灵????/** * 获取年代信息 * 例如 year为1990,返回90 * * @param ...

2019-09-09 19:11:51 580

原创 Java8专题四《引入流》

本章内容什么是流集合与流内部迭代与外部迭代中间操作与终端操作1. 流是什么流是JavaAPI的新成员,你可以把它们看成**遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码!**我们会在后面的章节详细解释流和并行化是怎么工作的。简单看看流的好处吧。下面两段代码都是用来返回低热量的菜肴名称的,按照卡路里排序,一个使用Java7写的,另一个是用Java8...

2019-09-08 16:06:17 97

原创 Java8专题二《通过行为参数化传递代码》

本章内容1、应对不断变化的需求2、行为参数化3、匿名类4、Lambda表达式预览5、真实示例:Comparator、Runnable应对不断变化的需求编写能够应对变化的需求的代码并不容易,让我们来看一个例子,我们会逐渐改进这个例子。以展示一些让代码更灵活的最佳做法。Alice是一个农场的农夫,你需要帮他实现一个从列表中筛选绿苹果的功能,听起来很简单吧。小试牛刀,第一个解决方案...

2019-09-08 13:26:53 102

原创 Java8专题三《Lambda表达式》

本章内容1、Lambda是什么?2、为什么要用?3、在哪里以及如何使用Lambda?4、 函数式接口,类型推断5、方法引用6、Lambda复合前文本章我会展示如何构建Lambda,它的使用场合,以及如何利用它使代码更简洁。我们还会介绍一些新的东西,如类型推断和Java8 API中重要的新接口。最后,我们将介绍方法引用,这是一个常常和Lambda表达式联用的有用的新功能。这一章很...

2019-09-03 13:43:46 136

原创 Java8专题一《为什么要关心Java8》

本章内容1、Java怎么又变了?2、我们为什么要继续学习Java8?3、Java8到底有哪些改变?在开讲Java8专题前,我先带大家非常简略的了解一下关于2019年编程语言排行榜的情况,该内容来自Tiobe发布2019年3月编程语言排行榜:图1-12019年3月编程语言排行榜TOP5几乎没有变化,Java和C语言牢牢占据前两名。看完这张图,身为Java程序员...

2019-08-18 20:42:28 226

原创 Caused by: org.apache.ibatis.binding.BindingException: Parameter 'pager' not found. Available parame

填坑您参考该博客之前,我需要负责任的给您讲,该博客可能不能帮助您真正的解决您所遇到的问题,但是可以为您多提供一个参考方案

2019-08-13 14:19:46 2408

原创 不要将自增自减放在while循环里

可能大家对下面我描述的并不了解也看不下去,所以我们不需要看!!!我只想提前告知你一件事情,就是在whlie(x++ < 10)这种写法的结果可能跟你想象的不一样。我下面描述比较有逻辑问题,因为我不想扒源码了再从头到尾的描述了啦哈哈哈,自己做个记录了解下就行啦~也觉得没有分享的必要,可能大家都知道哈哈哈哈。之前做的一个项目,还好在测试阶段就发现了一个潜在的问题~就是处理业务的时...

2019-04-03 15:20:36 1437

原创 将jar包添加到本地的maven中

mvn install:install-file -DgroupId=com.alibaba -DartifactId=alibaba-open-sdk -Dversion=1.0.1 -Dpackaging=jar -Dfile=/Users/lpp/Downloads/1512979720508-1-java/ocean.client.java.biz-sources.jar&...

2019-03-12 16:05:21 467

原创 有趣的javascript && css

例子自行百度~ setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。...

2019-01-25 17:41:24 173

原创 微信摇一摇(copy的)

var shakeThreshold = 1000; // 定义一个摇动的阈值 var lastUpdate = 0; // 记录上一次摇动的时间 var x, y, z, lastX, lastY, lastZ; // 定义x、y、z记录三个轴的数据以及上一次触发的数据 // 监听传感器运动事件 if (window.DeviceMotionEvent) { wi...

2019-01-25 17:32:21 212

原创 自动生成二维码图片

package com.example.demo;import com.google.zxing.EncodeHintType;import net.glxn.qrgen.javase.QRCode;import org.apache.commons.codec.binary.Base64;public class Test_2 { public static byte[]...

2019-01-25 17:25:43 1206

原创 终端设置颜色三部曲

第一步:vi ~/.bash_profile第二步: # 设置shell 颜色# Tell ls to be colourfulexport CLICOLOR=1export LSCOLORS=Exfxcxdxbxegedabagacad# Tell grep to highlight matchesexport GREP_OPTIONS='--color=au...

2019-01-04 20:19:30 613

原创 BUG经验小谈

公司运营后台出现了一个特别奇怪的现象,一个申请试用的活动状态会自动莫名其妙的关闭。听到这样的问题描述的时候,我一脸不可置信。。。这个相关代码是公司内的一个研发同事写的,运营后台的小伙伴找到我的时候我很纳闷,为啥不去找写的人??(ps新运营后台的代码最开始大部分都是我写的。)这个问题她们也不能重现,我就自己捣鼓着代码看了,最终发现这位同事是在我原来的dao层添加了新的更新字段。顺着这...

2019-01-02 12:33:18 146

原创 Java 处理货币类型

今天get到了一个炒鸡好用的处理货币的类型!BigDecimal  还有相关格式---&gt; NumberFormat public static void main(String[] args){ double a = 0.03; double b = 0.02; double c= a-b; }把c打印输出是0.01吗...

2018-12-27 15:19:59 5427

原创 net.sf.json.JSONObject无法处理含有java.util.Date格式的对象

昨天晚上电商的同事突然找我说在我之前写的那个新运行后台那边除了些问题,说图片加载不出来了,然后我看了下请求返回代码,500了!就跑去看了日志,日志上报了这样的异常[26/17:31:25 WARN] Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException:...

2018-12-27 12:37:37 1363 2

宠物狗_简单用户交互改进版

是个个人宠物网页,与用户有较好用户交互性,挺有意思的,有利于学习JavaScript

2017-07-20

数据存储_网上订单预定小案例

结合博客学习js的小案例

2017-07-20

简单用户交互界面

源码解释在博客。js实现用户交互

2017-07-18

空空如也

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

TA关注的人

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