自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ice-wee的专栏

java没有衰落,而是刚刚开始。

  • 博客(467)
  • 资源 (20)
  • 问答 (1)
  • 收藏
  • 关注

原创 java8:lambda级联表达式(Cascading)或柯里化(Currying)原理简化详解

lambda :级联表达式(Cascading lambdas)或柯里化(Currying)。柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的。举个简单的例子:Function<Integer, Predi.

2021-07-29 21:03:21 803

原创 java链式编程/级联式编程

链式编程,也叫级联式编程,调用对象的函数时返回一个this对象指向对象本身,达到链式效果,可以级联调用。链式编程: 通过高阶函数以点为连接将多个函数连接在一起完成参数传递和复杂的操作!通俗的说是通过点号(.)链接在一起成为一句代码。链式编程的优点是:编程性强、可读性强、代码简洁。举例:StringBuilder builder = new StringBuilder(96);builder.append("select id, name from ") .append(T_USE..

2021-07-27 21:06:34 3296

原创 java: synchornized底层的实现原理monitor,它的底层实现又是什么

牵涉到:jvm,c++,操作系统等,如何串起来呢?对只懂java,不懂c++的同学来说,monitor底层是什么,是基于mutex么

2021-07-25 15:14:06 460 2

原创 flink:RoaringBitmap在亿级用户实时UV精确去重中应用

RoaringBitmap 是压缩位图,其性能往往优于传统的压缩位图,例如 WAH、EWAH 或 Concise。某些情况下可以快数百倍,甚至可以比未压缩的位图更快。RoaringBitmap 常用于去重、标签筛选、时间序列等计算中。

2021-07-04 21:14:31 2178 3

原创 java 虚拟线程Loom/纤程/轻量级线程和异步编程Future,哪个是未来?

Loom项目的开始于2017年底,现在来看,虚拟线程(纤程/轻量级线程)和异步谁是未来呢?我的答案是:虚拟线程。先写个目录。1 开发难度,对已有项目的影响2 xxxx的态度3 项目官方的想法,为什么要开发虚拟线程项目4 对已有协程框架框架市场的冲击...

2021-04-27 10:32:33 915 2

原创 归并排序java代码实现

aapackage com.demo.thinking;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class MergeSort { public static void main(String[] args) { List<Integer> integers = Arrays.asList(2, 3, 5, 8, 4, 11, 1, 7

2020-07-16 23:46:42 290

原创 springcache支持的序列化方式及反序列化失败原因剖析

从接口RedisSerializer我们可以看出,springcache支持的序列化器有StringRedisSerializer,Jackson2JsonRedisSerializer和JdkSerializationRedisSerializer。这些序列化器在底层是如何存储,有什么区别呢,使用中有哪些坑要注意呢?下面开始探索他们的神秘面纱JacksonJsonRedisSerializer和GenericJackson2JsonRedisSerializer,两者都能系列化成json.

2020-07-05 09:25:01 3088 2

原创 jdk 14 基础架构部的zgc垃圾收集实测

“基础架构部的zgc垃圾收集实测”,jdk 11开始的zgc有多强,文章说太多了。同事用ES7.7 + jdk 14测试了下实际效果。结果是,关注和调优的重心,都聚焦在万一垃圾回收的速度跟不上分配的速度,发生的allocation stall停顿上,有点像以前操心cms,full gc的stw。allocation stall不能说是stop the world,它可能是按region 按线程去停的,实际每条线程停顿的时间不一,有的停几毫秒,有的停几百毫秒。jmx暴露的监控指标只有zgc count和

2020-07-05 08:00:28 1172 5

原创 elasticsearch的深分页(deep-paging)问题原因及解决

1 deep-paging问题引入有90个数字分布到三个分片上,每个分片上有30个数字。shard1上:1 、2、 3 、4 、5 、6 、7 、8、 9 、10 、11 、12 、13 、14、 15、 16、 17 、18、19 、20、 21、22、23、 24 、25 、26 、27、 28、 29 、30、shard2上:31 、32 、33 、34 、35 、36 、...

2020-04-25 22:13:49 612

转载 设计模式一句话总结

创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。工厂模式与抽象工厂模式 (Factory Pattern)(Abstract Factory Pattern):不同条件下创建不同实例 单例模式 (Singleton Pattern):保证一个类仅有一个实例 建造者模式 (...

2020-01-30 14:28:38 120 1

原创 java:跨语言通用虚拟机GraalVM

GraalVM 简介GraalVM 是一个跨语言的通用虚拟机,支持Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScript、Ruby、Python 和 R 语言等。另外,GraalVM可以通过前端的LLVM执行JVM上面的原生代码。GraalVM 1.0版本是基于JDK8的。GraalVM...

2020-01-11 12:06:02 1897 1

原创 java8:lambda中collect接口案例及原理详解,官方文档解读

本文简要介绍toList,toMap等会简要介绍,主要是介绍collect的"底层",及如何触类旁通。lambda偏具体实现:https://blog.csdn.net/wabiaozia/article/details/103324562lambda偏底层原理:Lambda 底层实现分析1 案例中使用到的实体类Employee见java8的lambda中的map...

2019-11-30 17:49:23 6302 2

原创 java8:lambda表达式之Stream原理深度解析

本文为转载 原文链接:http://www.cnblogs.com/Dorae/p/7779246.htmlauthor:Author:Dorae Date:2017年11月2日19:10:39这篇博客内容还未看,内容正确与否,请自行判断。上一篇文章中简要介绍了Java8的函数式编程,而在Java8中另外一个比较大且非常重要的改动就是Stream。在这篇文章中,将会...

2019-11-30 14:51:33 1063

转载 从C10K到C10M高性能网络的探索与实践 :内核不是解决方案,而是问题所在

1千万级并发实现的秘密:内核不是解决方案,而是问题所在https://www.oschina.net/translate/the-secret-to-10-million-concurrent-connections-the-kernel--2013/05/14https://www.csdn.net/article/2013-05-16/2815317-The-Secret-t...

2019-10-27 13:29:45 657

原创 消息队列推拉push/pull模式优缺点及使用改进的长轮询模式的意义

Push方式:优点:有消息就推给消费者。延迟小,几乎可以做到实时。等等。。。。缺点:Server端接收到消息后,主动把消息推送给Client端,实时性高。对于一个提供队列服务的Server来说,用Push方式主动推送有很多弊端;首先是加大Server端的工作量,进而影响Server的性能,其次Client的处理能力各不相同,Client的状态不受Server控制,如果Client不能及时处...

2019-10-04 11:34:36 8387

原创 springboot2|springboot启动流程源码分析:tomcat启动原理

本文基于springboot2.1.61 当maven引入tomcat的jar依赖时 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifac...

2019-07-14 15:36:39 1543

原创 垃圾回收器PS MarkSweep和serial old使用算法异同

[讨论] 关于GC参数的问题ParallelScavenge(PS)的young collector就如其名字所示,是并行的拷贝式收集器。本来这个young collector就是“Parallel Scavenge”所指,但因为它不兼容原本的分代式GC框架,为了凸显出它是不同的,所以它的young collector带上了PS前缀,全名变成PS Scavenge。对应的,它的old colle...

2019-04-20 20:16:33 13960 1

原创 java的编译器,解释器和即时编译器概念

菠萝备注:我更倾向于周志明对编译器的"分类"的看法,编译过程中有三类比较有有代表性的编译器:前端编译器:Sun的javac,Eclipse的增量编译器EJC。把*.java编译为*.class JIT编译器:Hotsport VM的c1,c2编译器把字节码编译为机器码。 AOT编译器:GCJ(GNUCompiler forJava )、excelsior JET。*.java 文...

2019-04-20 13:18:55 4091

翻译 用信鸽来解释 HTTPS

转载自:https://www.oschina.net/translate/https-explained-with-carrier-pigeons 英文原文:HTTPS explained with carrier pigeons密码学是一门难以理解的学科,因为它充满了数学定理。但是除非你要实际开发出一套加密算法系统,否则你是没必要强制理解那些深奥的数学定理的。如果你阅读...

2019-04-03 22:01:17 314

原创 java类型推断

应用1 方法泛型,和三目运算用到此类知识。2 java8类型推断已经进行了扩展,可以根据方法参数推断。3 官方文档https://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.htmlType InferenceType inference is a Java compiler's abilit...

2019-02-16 21:21:47 2539

转载 教你如何迅速秒杀掉:99%的海量数据处理面试题

作者:July出处:结构之法算法之道bloghttp://blog.csdn.net/v_july_v/article/details/7382693前言   一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名 :-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题...

2019-01-05 12:50:17 296

原创 操作系统:进程和程序关系类比/ java中线程是哪种实现

本文分三个小节1 线程模型2 线程的实现3 java中线程是用户线程,内核线程,轻量级进程???3.1 临界区 互斥 3.2 信号量 管程前两小节是来自操作系统。第三小节:看到操作系统中线程实现的三种方式,忽然想起我以前看到的一个问题,也很契合本文今天的主题,便加了进来。1 线程进程2 线程实现(也有广义上分:除了内核线程其他都是用户线程...

2018-12-09 13:44:26 781 2

转载 序列化和反序列化/美团技术团队

原文链接:https://tech.meituan.com/serialization_vs_deserialization.html摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要...

2018-11-07 00:05:58 520

原创 java实现:汉诺塔核心代码大白话详解

最近XXX原因,比较久没写博客了,正好这会有点空就想写点东西。本来想写图相关算法,但是图相关东西比较多也比较复杂,一时也很难全面的写出来,即使写出来,也太零星反而更增加了读者的困惑。忽然想起来前两天有网友私信,说基础的递归如斐波那契算法能写出来,但是遇到稍微复杂点的就乱了,他看到小甲鱼教的汉诺塔算法懂原理了,但是看代码时还是感觉似懂非懂,理解的不是特别清晰。这个问题不大,几分钟就可以写好,正好适合...

2018-09-23 16:55:45 2138

原创 java多线程:结合多线程交替打印10次abc实例,对wait/notify使用的彻底理解

接上篇:http://blog.csdn.net/wabiaozia/article/details/79429585有个朋友看点击打开链接 里的三个线程“A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC。” 这个问题的代码,有点不太理解,让我给看下。不理解的原因也很简单,就是对wait和notify理解不深,遇到复杂点的场景会迷糊。对于并发相...

2018-03-13 00:32:05 3848 1

原创 java算法:翻转二叉树

节点的的数据结构: public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }1 java递归实现:public class Solution { public TreeNode invertTree(Tree...

2018-02-24 19:08:51 1014 1

原创 BIO、NIO、AIO及java中NIO 与netty的 IOCP区别联系

1 有人能说清楚JAVA7 NIO NETTY IOCP之间的联系吗?原文链接:https://www.zhihu.com/question/20853629不过这似乎是3年前的问题?还没有找到答案吗?那我说一下吧iocp和poll/epoll这些是操作系统层面的东西iocp是win,poll(linux和unix)后者在linux上可以改成epoll,在mac或bs...

2018-01-18 16:35:07 3029 10

原创 高并发性能调试经验分享

原文链接:https://zhuanlan.zhihu.com/p/213482204月份的时候看到一道面试题,据说是腾讯校招面试官提的:在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug,你如何调试这个bug?知乎原贴地址如下:腾讯实习生面试,这两道题目该怎么回答? - 编程 .遗憾的是知乎很多答案在抨击这道题本身的正确性,虽然我不是这次的面试官,但我认为这是一道非

2017-05-28 08:07:10 1068

转载 epoll 或者 kqueue 的原理是什么?

作者:张彦飞链接:https://www.zhihu.com/question/20122137/answer/2134896876来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。刚回答完一个 epoll,又刷到一个,那我就再来回答一遍吧。仔细看了一下问题,题主的主要困惑是就是没有看过内核源码,不清楚 epoll 内部究竟是咋工作的。其实我之前和题主一样,也是这个困惑。由于实在是好奇心太强,所以我就抽空撸起袖子,把 epoll 的源码给扒了一遍。我把我分析.

2021-10-24 10:24:16 550

转载 jvm和底层操作系统交互简介

肉眼看计算机是由 CPU 、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路上越走越快,越走越轻松。从操作系统层面去理解高级编程语言的执行过程,会发现好多软件设计都是同一种套路,很多语言特性都依赖于底层机制,今天为你一一揭秘。结合 CPU 理解一行 Java 代码是怎么执行的根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示。enter

2021-10-12 07:57:12 687

原创 flink:风控/反欺诈检测系统案例研究1,2,3

https://flink.apache.org/news/2020/01/15/demo-fraud-detection.htmlhttps://flink.apache.org/news/2020/03/24/demo-fraud-detection-2.htmlhttps://flink.apache.org/news/2020/07/30/demo-fraud-detection-3.html在本系列博文中,您将了解用于构建流应用程序的三种强大的 Flink 模式:应用逻辑的..

2021-08-28 09:08:40 887

原创 Lucene 倒排索fst引原理与实现

整理下几篇博客1Lucene 4.X 倒排索引原理与实现: (3) Term Dictionary和Index文件 (FST详细解析)https://www.cnblogs.com/forfuture1978/p/3945755.html2 关于Lucene的词典FST深入剖析https://www.shenyanchao.cn/blog/2018/12/04/lucene-fst/3Lucene BKD树-动态磁盘优化BSP树https://www.shenyanchao....

2021-08-08 15:53:36 1084

原创 去哪儿网领域驱动设计(DDD)战略战术设计实战

P1 00-前言:走入DDD 31:30P2 01-大白话聊DDD 49:29P3 02-方舟DDD实践(上) 56:44P4 03-方舟DDD实践(下) 1:13:19P5 04-战略设计 1:13:08P6 05-战术设计 1:21:08P7 06-酒店报价DDD实战1:25:56P8 07-DDD整合分层架构和微服务设计 40:29P9 CQRS在领域驱动中的重要作用 43:22P10 机票辅营DDD的分层架构设计 1:14:02https:...

2021-08-03 21:44:31 703

原创 巧用map的computeIfAbsent统计次数

1 //map中的key对应的value值为null,则该key对应value值为new AtomicInteger()且自增加1,key已经存在,value值直接自增1Map<String,AtomicInteger> map=Maps.newHashMap() list.forEach( str-> map.computeIfAbsent(str, k -> new AtomicInteger()).incrementAndGet());2 如果不用...

2021-07-27 22:08:52 515

转载 Java 代码精简之道

前言古语有云:道为术之灵,术为道之体;以道统术,以术得道。其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。在拜读大佬“孤尽”的文章《Code Review是苦涩但有意思的修行》时,感受最深的一句话就是:“优质的代码一定是少即是多的精兵原则”,这就是大佬的代码精简之“道”。工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”...

2021-07-27 21:33:31 346

转载 美团点评旅游搜索召回策略的演进

本文内容与6月22日第22期美团点评技术沙龙“美团点评AI实践”主题演讲一致,欢迎大家去现场和作者交流。关注“美团点评技术团队”微信公众号,第一时间获取沙龙最新信息,还可以查阅往期沙龙PPT/视频。美团点评作为最大的生活服务平台,有丰富的品类可供用户选择,因此搜索这个入口对各业务的重要性不言而喻,除了平台搜索外,业务搜索系统的质量和效果对用户体验、商家曝光、平台交易也有着关键作用。相对美团点评平台的O2O检索,旅游搜索系统主要面临以下几点挑战:本异地差异大。在本地生活场景中用户的搜索需求往往

2021-07-25 19:06:28 665

原创 杨利伟-太空一日,不为人知的生死惊魂

我以为我要牺牲了。但随后发生的情况让我非常紧张——右边的舷窗开始出现裂纹。窗外烧得跟炼钢炉一样,玻璃窗开始出现裂纹,那种纹路就跟强化玻璃被打碎之后那种小碎纹一样,这种细细的碎纹

2021-06-27 14:45:44 429

翻译 Garbage-First Garbage Collection

https://www.researchgate.net/publication/221032945_Garbage-First_garbage_collectionDavid Detlefs, Christine Flood, Steve Heller, Tony PrintezisSun Microsystems, Inc.1 Network Drive, Burlington, MA 01803, USA{david.detlefs, christine.flood, steve.hel

2021-06-14 10:56:53 653

原创 Lucene几种数据结构

FST,倒排链,BKD-Tree,DocValues。

2021-06-04 21:58:15 440 2

原创 How I Used a JSON Deserialization Oday to Steal Your Money on the Blockchain

JSON 反序列化和区块链有什么关系?我们实验室将在今年 Blackhat US 会议上发表这项研究。Hao Xing I Senior Security Researcher, Tencent Security Xuanwu LabZekai Wu | Security Researcher, Tencent Security Xuanwu LabFormat:40-Minute BriefingsTracks: Exploit Development, Applied SecurityFas

2021-05-29 07:33:33 515 3

lucene 源码 fst.rar 分析

https://blog.csdn.net/wabiaozia/article/details/119515755 4 FST(一)Lucene 8.4.0 对应博文备份

2021-08-14

Garbage-First_garbage_collection g1垃圾免积分下载

G1垃圾回收器论文。 Garbage-First Garbage Collection October 24-25, 2004

2021-06-14

Eclipse Code Recommenders 2.5.4.rar

eclipse或sts Code Recommenders 2.5.4,离线安装包。安装过程参照https://blog.csdn.net/wabiaozia/article/details/102558712

2019-10-15

集成spring security

来自https://github.com/FrameReserve/TrainingBoot/releases/tag/0.0.3 Spring Boot (三)集成spring security。 Blog: http://blog.csdn.net/a286352250/article/details/53156461

2018-04-10

单个正则表达式工具类。

正则表达式的工具类,详细功能见http://www.cnblogs.com/lr393993507/p/5234857.html

2017-06-14

资源代码工具类

1997盏亮着的电灯,3的倍数的灯的拉一下;再将5的倍数的灯拉一下,最后有多少亮的灯。详细见我博客http://blog.csdn.net/wabiaozia/article/details/53043392

2016-11-07

js操作cookie类

js操作cookie的案例,里面给了一个网站,可以在网站线测试

2016-08-31

Java.Concurrency.in.Practice.pdf

Java.Concurrency.in.Practice.pdf英文版

2016-04-25

jdk1.6与eclipse集成

tomcat,maven,jdk配置具体集成参见我博文http://blog.csdn.net/wabiaozia/article/details/51203169

2016-04-21

Tomcat与eclipse集成v7.0版本

tomcat,maven,jdk配置具体集成参见我博文http://blog.csdn.net/wabiaozia/article/details/51203169

2016-04-21

maven与eclipse集成3.0版本

tomcat,maven,jdk配置具体集成参见我博文http://blog.csdn.net/wabiaozia/article/details/51203169

2016-04-21

Tomcat7.0版与eclipse集成

tomcat,maven,jdk配置具体集成参见我博文http://blog.csdn.net/wabiaozia/article/details/51203169

2016-04-21

postman工具使用

具体安装和使用见我图文教程http://write.blog.csdn.net/postedit/50777636

2016-03-02

ArrayList的源码

源码分析见我博文:http://blog.csdn.net/wabiaozia/article/details/50684556

2016-02-18

ConcurrentHashmap源码

源码分析见我博文:http://blog.csdn.net/wabiaozia/article/details/50684556

2016-02-18

ArrayLisr源码

源码分析见我博文:http://blog.csdn.net/wabiaozia/article/details/50684556

2016-02-18

hashset源码

源码分析见我博文:http://blog.csdn.net/wabiaozia/article/details/50684556

2016-02-18

1.6 hashmap源码

hashmap源码,可以看看http://blog.csdn.net/wabiaozia/article/details/50684556

2016-02-18

免费下载dubbo

免费下载dubbo,dubbo.xsd自己不用费力去找了,具体可以看我博客。http://blog.csdn.net/wabiaozia/article/details/50491700

2016-01-10

jquery文件上传扩展插件ajaxfileupload经典

不知道作者是谁,但是真的很感谢,也可以给我留言留邮箱,我免积分发给你,使用方法见我:http://write.blog.csdn.net/postedit/50221945

2016-01-05

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

TA关注的人

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