![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经验分享
文章平均质量分 81
北纬@叶枫
这个作者很懒,什么都没留下…
展开
-
函数式编程(五)Stream副作用(Side Effects)
在Java 8的Stream中,副作用(Side Effects)是指对外部状态产生影响的操作。由于Stream的设计目标是支持函数式编程风格,强调无状态和不可变性,因此副作用是需要尽量避免的。总之,为了遵循函数式编程的原则,应尽量避免在Stream操作中引入副作用。通过使用纯函数、不可变对象和谨慎使用副作用操作,可以确保Stream的操作具有可预测性、可维护性和可测试性。原创 2023-09-01 10:50:02 · 351 阅读 · 0 评论 -
函数式编程(四)Stream流使用
在使用stream之前,先理解Optional。Optional是Java 8引入的一个容器类,用于处理可能为空的值。它提供了一种优雅的方式来处理可能存在或不存在的值,避免了空指针异常。OptionalOptional可以包含一个非空的值,也可以表示为空。避免空指针异常:通过使用Optional,可以避免在访问可能为空的值时出现空指针异常。显式判断:使用Optional需要显式地判断值是否存在,以便进行相应的处理。Optional提供了一系列的函数式操作方法,如map()filter()原创 2023-09-01 10:48:59 · 249 阅读 · 0 评论 -
函数式编程(三)Stream流处理器
Stream是Java 8引入的一个用于处理集合数据的API。它提供了一种流式操作的方式,可以对集合进行过滤、映射、排序、聚合等各种操作,使得代码更加简洁、易读和易维护。Stream提供了一种流式操作的方式,可以对集合中的元素进行连续的操作,而不需要使用传统的循环和条件语句。Stream使用惰性求值的方式,只有在终止操作时才会执行实际的计算。这样可以避免不必要的计算,提高程序的性能。Stream使用内部迭代的方式,隐藏了迭代的细节,使得代码更加简洁和易读。Stream。原创 2023-09-01 10:40:16 · 245 阅读 · 0 评论 -
函数式编程(二)Lambda表达式
Lambda表达式是Java 8引入的一种函数式编程特性,它可以用于替代匿名内部类或重复的代码块,使代码更加简洁和易读。LambdaLambda表达式的语法由箭头符号(->)分隔为两部分:左侧是参数列表,右侧是方法体。例如,是一个简单的Lambda表达式。Lambda表达式通常与函数接口()一起使用。函数接口是只有一个抽象方法的接口,可以用作Lambda表达式的目标类型。例如,RunnableComparator等都是函数接口。Lambda表达式的参数列表可以为空,也可以包含一个或多个参数。原创 2023-09-01 10:39:38 · 179 阅读 · 0 评论 -
函数式编程(一)函数接口
函数式接口(Functional Interface):函数式接口是一种只包含一个抽象方法的 Java 接口。必需是Java 接口。有且只有一个抽象方法(函数式方法),但不一定只有一个方法(可包含多个非抽象方法)是可选的,但加上该标注编译器会帮你检查接口是否符合函数接口规范。就像加入@Override标注会检查是否重载了函数一样。定义的函数式接口用于帮助实现 Lambda 函数。比较函数,用于对某些对象集合进行总排序。比较器可以传递给排序方法(如或),以便精确控制排序顺序。原创 2023-09-01 10:36:19 · 1071 阅读 · 0 评论 -
世界上没有技术驱动型公司
一、世界上没有技术驱动型公司世界上没有技术驱动型公司,不论google、facebook,还是腾讯、阿里,都不是技术驱动型公司。因为技术不是源头,需求才是。因此一切技术问题,都要服从产品交付和市场反馈。所以,任何公司,都不可能以技术去驱动自身。人可以以技术驱动自己进步,但公司不行。一家公司可以以技术切入某个市场,但如果它想生存下去,就一定不能以技术为导向,坚持以技术为导向的公司的生命力...原创 2019-12-14 15:33:40 · 189 阅读 · 0 评论 -
八点建议写出优雅的 Java 代码
在每一位刚入行的程序员的心中,编写程序都是一门神圣的艺术创作。他们无不希望自己的代码作品既简洁清晰,又可读性强,而且还具有一定的容错能力。本文将为您带来八点建议和技巧,以帮助您编写出简洁、干练的 Java 代码。其中的有些可能会让你觉得有些不可思议,但是请相信我,如下的每一条我都亲身实践过的。1.使用 IntelliJ IDEA 作为您的集成开发环境 (IDE)虽然我已经使用了...转载 2019-12-14 14:52:05 · 206 阅读 · 0 评论 -
年终奖套路指南
转眼 2019 年就快过完了,对于广大程序员读者来说,重要的事情除了关心能不能买到回老家的车票以外,剩下的事情应该就属年终奖了。对于 IT 行业来说,所谓年终奖其实就是公司在当年的月底基于你工资的数额发一定的比例的奖金,这也是很多企业的 HR 和猎头向求职者“许诺”的待遇之一。关于年终奖,一般是求职者在应聘时和 HR 谈好,再结合所在的公司的规定在年终兑现给求职者。但是,城市的套路太深了,本文...转载 2019-12-13 15:27:12 · 2051 阅读 · 0 评论 -
高并发系统的限流
前言在开发高并发系统时有三把利器来保护系统:缓存、降级和限流。缓存缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效方式。大型网站一般主要压力在于“读”,缓存的使用很容易被想到。在大型“写”的系统中,缓存也常常扮演非常重要的角色。比如累积一些数据批量写入,内存里的缓存队列...转载 2019-12-13 14:56:44 · 155 阅读 · 0 评论 -
阿里巴巴架构师:十问业务中台和我的答案
前言一切业务数据化,一切数据业务化。“中台”概念这几年非常火,特别是阿里、腾讯、百度、京东等互联网公司最近频繁的基于中台调整组织架构,把“中台”的热度又上升到另一个高度,甚至有这样的声音, 90 年代不做 ERP 会死,现在不做中台也会定企业生死。中台的概念起源于阿里,也发展于阿里。笔者有幸参与阿里业务中台方法体系建设,也主导参与一些阿里云新零售业务中台项目,经常被问到如下问题。本文作为“...转载 2019-12-11 11:06:18 · 302 阅读 · 0 评论 -
如何设计一个安全的对外接口?
前言最近有个项目需要对外提供一个接口,提供公网域名进行访问,而且接口和交易订单有关,所以安全性很重要;这里整理了一下常用的一些安全措施以及具体如何去实现。安全措施个人觉得安全措施大体来看主要在两个方面,一方面就是如何保证数据在传输过程中的安全性,另一个方面是数据已经到达服务器端,服务器端如何识别数据,如何不被攻击;下面具体看看都有哪些安全措施。1.数据加密我们知道数据在传输过程...转载 2019-12-02 15:20:26 · 342 阅读 · 0 评论 -
高并发秒杀系统的设计思考
目录前言整体思考高性能1、动静分离1.1、数据拆分1.2、静态缓存1.3、数据整合1.4、小结2、热点优化2.1热点操作2.2热点数据2.2.1热点识别2.2.2热点隔离2.2.3热点优化2.2.4小结3、系统优化4、总结一致性1、减库存的方式2、减库存的问题2.1下单减库存2.2付款减库存2.3预扣...转载 2019-11-27 10:47:59 · 487 阅读 · 0 评论 -
读写分离
package z.farrell.framework.core.datasource;/** * * 读/写动态数据库 决策者 * 根据DataSourceType是write/read 来决定是使用读/写数据库 * 通过ThreadLocal绑定实现选择功能 * * Created by farrell on 2017/1/6. */public class ReadW原创 2017-01-13 11:03:33 · 472 阅读 · 0 评论 -
高并发下的SimpleDateFormat
废话不多说,先上代码package z.farrell.framework.utils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.concurrent.ExecutorService;import jav原创 2017-01-13 15:15:01 · 2778 阅读 · 5 评论 -
sharding-jdbc SQL支持详细列表
SQL支持详细列表由于SQL语法灵活复杂,分布式数据库和单机数据库的查询场景又不完全相同,难免有和单机数据库不兼容的SQL出现。 本文详细罗列出已明确可支持的SQL种类以及已明确不支持的SQL种类,尽量让使用者避免踩坑。 其中必然有未涉及到的SQL欢迎补充,未支持的SQL也尽量会在未来的版本中支持。全局不支持项动态表未配置逻辑表和真实表对应关系的真实表,称为转载 2016-10-28 17:27:17 · 7369 阅读 · 2 评论 -
史上最全的maven pom.xml文件详解
<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 http://maven.原创 2016-11-08 18:23:53 · 520 阅读 · 0 评论 -
程序员,技术主管和架构师
最近在进一步思考程序员的成长,曾经写过一篇《程序员的成长阶梯和级别定义》 ,里面写了我对程序员主要成长阶段的定义,但在程序员从初级走向资深的过程中,会面临两个支路,一个叫「技术主管」,另一个则是「架构师」。为什么这是两条支路?因为现在回过来看,这两条路从来都不是程序员的自然成长路径,下面我们先从「技术主管」开始吧。技术主管技术主管,有些公司可能又叫「技术经理」,英文一般是 Tech转载 2016-09-27 17:07:05 · 1095 阅读 · 0 评论