上一页 1 2 3 4 5 6 7 8 9 10 ··· 28 下一页
摘要: 原创 翎野君 翎野君 2019-03-28 22:42 在闲暇时间做了一个TOTP相关的开源项目,在项目初步完成之余,我尝试对[RFC6238]文档进行了翻译,供大家参考与查阅,若有不妥之处,还望各位前辈海涵斧正。 生活中我们会经常使用到TOTP的算法应用,如银行的动态口令器、网络游戏中的将军令、登 阅读全文
posted @ 2024-01-04 23:56 翎野君 阅读(612) 评论(0) 推荐(0)
摘要: 翎野君/文 避之不及的 NullPointerException NPE : NullPointerException 空指针异常是最常见的Java异常之一,抛出NPE错误不是用户操作的错误,而是开发人员的错误,应该被避免,那么只能在每个方法中加入非空检查,阅读性和维护性都比较差。 以下是一个常见的 阅读全文
posted @ 2024-01-04 23:56 翎野君 阅读(24) 评论(0) 推荐(0)
摘要: 翎野君/文 引言 传统上,Java程序的接口是将相关方法按照约定组合到一起。实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。 不断迭代的API 默认方法的引入就是为了,以兼容的方式,解决像 Java API这样的类库,演进迭代问题。 理解演进迭代 为了理解为什么一旦AP 阅读全文
posted @ 2024-01-04 23:56 翎野君 阅读(57) 评论(0) 推荐(0)
摘要: 翎野君/文 分支合并框架 分支合并框架介绍 分支/合并框架的目的是以递归的方式将可以并行的任务拆分成更小的任务,然后将每个子任务的结果合并起来生成整体结果。 它是ExecutorService接口的一个实现,它把子任务分配给线程池(称为ForkJoinPool)中的工作线程。把任务提交到这个池,必须 阅读全文
posted @ 2024-01-04 23:56 翎野君 阅读(35) 评论(0) 推荐(0)
摘要: 翎野君/文 收集器简介 1.收集器介绍 Java 8中流支持两种类型的操作:中间操作(如filter或map)和终端操作(如count、findFirst、forEach和reduce)。 中间操作可以链接起来,将一个流转换为另一个流。这些操作不会消耗流,其目的是建立一个流水线。与此相反,终端操作会 阅读全文
posted @ 2024-01-04 23:55 翎野君 阅读(28) 评论(0) 推荐(0)
摘要: 翎野君/文 流的概念 1.流是什么 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,我们可以把它们看成遍历数据集的高级迭代器。 代码:按价格排序后得到手机名称列表 使用新的流式方法有几个显而易见的好处。 代码是以声明性方式写的 阅读全文
posted @ 2024-01-04 23:55 翎野君 阅读(38) 评论(0) 推荐(0)
摘要: 翎野君/文 本次我们会使用到很多的流操作,如筛选、切片、映射、查找、匹配和归约,这些操作可以让我们能快速完成复杂的数据查询。 筛选和切片 用谓词筛选 Streams接口支持filter方法。该操作会接受一个谓词(一个返回 boolean的函数)作为参数,并返回一个包括所有符合谓词的元素的流。 Lis 阅读全文
posted @ 2024-01-04 23:55 翎野君 阅读(40) 评论(0) 推荐(0)
摘要: 翎野君/文 使用函数式接口 函数式接口定义且只定义了一个抽象方法。 函数式接口很有用, 因为抽象方法的签名可以描述Lambda表达式的签名。 为了应用不同的Lambda表达式,你需要一套能够描述常见函数描述符的函数式接口。 Java 8的库设计师帮我们在java.util.function包中引入了 阅读全文
posted @ 2024-01-04 23:55 翎野君 阅读(23) 评论(0) 推荐(0)
摘要: 翎野君/文 Lambda简介 我们可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式。它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名:我们说匿名,是因为它不像普通的方法那样有一个明确的名称。 函数:我们说它是函数,是因为Lambda函数不像方法 阅读全文
posted @ 2024-01-04 23:55 翎野君 阅读(21) 评论(0) 推荐(0)
摘要: 翎野君/文 引言 作为技术开发人员,我们无法保证我们写出来的代码的可用时间和保质期,也许今天刚上线的一个功能,等到明天就因为需求变动不得不进行更改。 为什么会不断的变化 作为技术人员,我们当然希望需求能循序渐进地平稳过度,但往往事与愿违,对于其原因我简单总结为以下几点。 用户导向,用户和市场是风向标 阅读全文
posted @ 2024-01-04 23:54 翎野君 阅读(19) 评论(0) 推荐(0)
摘要: 翎野君/文 旧的日期时间 在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类。正如类名所表达的,这个类无法表示日期,只能以毫秒的精度表示时间。更糟糕的是它的易用性,由于某些原因和未知的设计决策,这个类的易用性被深深地损害了,比如:年份的起始选择是1900年,月份的起始从0 阅读全文
posted @ 2024-01-04 23:54 翎野君 阅读(105) 评论(0) 推荐(0)
摘要: 收到新的信用卡,致电银行客服,按语音提示选择激活及密码服务,输入待激活的信用卡卡号,按语音提示进行开卡激活操作,即可完成新卡激活。 反复输了几次信用卡卡号都没有成功确认了几遍都是正确的,很奇怪,输入手机短信验证码也是正确的,最终也提示报错,无奈只得询问客服,是否链接了蓝牙耳机,如果连接了蓝牙耳机进行 阅读全文
posted @ 2023-12-28 23:45 翎野君 阅读(66) 评论(0) 推荐(0)
摘要: 背景 经常会遇到抽奖活动根据登记的手机号发短信验证抽奖,或者公开的投票系统,又或者面向马路上的消费者展开调查问卷。这些场景下都有可能会有不法分子借此谋利或者恶意破坏。 防刷不能靠一门单一的技术,而是要综合分析可能的破解手段,评估攻击者愿意做到什么地步,以和黑产打一场全面战争的角度思考问题。即:如何以 阅读全文
posted @ 2023-12-28 23:23 翎野君 阅读(167) 评论(0) 推荐(0)
摘要: 背景 分批读取大量数据的excel文件,每次读取1000行数据,然后插入数据库,并且去执行一个方法,执行完毕后更新此行数据的状态。需要获取已更新数据的占比,即计算百分比。 因为是分批读取的,我们不可以直接用已更新状态数量/数据库中总数。因为可能一次读取的1000行数据更新状态很快,直接1000/10 阅读全文
posted @ 2023-11-29 23:42 翎野君 阅读(1505) 评论(0) 推荐(0)
摘要: 原文链接:陈树义 代理模式是设计模式中非常重要的一种类型,而设计模式又是编程中非常重要的知识点,特别是在业务系统的重构中,更是有举足轻重的地位。代理模式从类型上来说,可以分为静态代理和动态代理两种类型。 在开始之前,我们先假设这样一个场景:有一个蛋糕店,它们卖的蛋糕都是用蛋糕机做的,而且不同种类的蛋 阅读全文
posted @ 2023-11-23 23:29 翎野君 阅读(38) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 28 下一页