分类:Java

当我们谈论Monad的时候(二)

Welcome to Haskell 在上一篇文章中,我通过几个Java的例子简单的说明了Monad的本质和一些工程中常见的用途。接下来的文章就不再侧重于工程了,而是要慢慢向理论转换。而作为过渡,我选择了Haskell来代替Java进行说明。本篇文章默认读者已经对Haskell的基本语法有所了解,因 […]

查看更多

当我们谈论Monad的时候(一)

Monad不就是个自函子范畴上的幺半群,这有什么难理解的。 Phillip Wadler 当我们谈论Monad的时候,我们在谈论什么 坊间一直流传着一句话:“一百个学FP的人的心中就有一百个对Monad的理解”。而我相信,他们中的大部分人在看明白后又会写出一篇崭新的Monad文。我也一直很想写一写自 […]

查看更多

玄学优化一个稳定排序算法

前一阵子(还挺前的)正好在忙数据结构的课程设计,大体是要求做一个航班管理系统。程序主体就是简单堆几个高效数据结构,再糊上一个RESTful API,没什么好谈的。不过在优化其中的排序算法时倒是学到了挺多。虽然说本质还是缝合若干优秀算法,但刚好最近也很久没更新博客了,所以干脆写一篇博客简述当时的思路吧 […]

查看更多

PicaComic接口分析手记

好久没有更新技术类文章了,不过其实我也有慢慢在写几篇文章,然而它们依旧躺在草稿箱。刚好群里讨论写个Pica客户端,于是我就来分析下Pica的接口吧。 拆开来一看,竟然没有混淆……build.gradle改改也没多大成本吧,虽然给我省事就是了。 抓包得知,Pica的接口使用signature头以校验。 […]

查看更多

各语言Y组合子大比拼

最近有点无聊,突然想试试在各种语言里面实现Y组合子。不过写完之后,没想到结果完全出乎我的意料。嘛,让我们来看看不同语言里的Y组合子。 首先祭上Y组合子的定义: Python魔法 和众多流行的弱类型语言一样,Python支持lambda表达式但不支持延迟求解和柯里化,所以Python的写法应该也是比较 […]

查看更多

B站APP逆向工程手记

本文原载于DIARY,但是考虑到博客很久都没更新了,加上DIARY设立的本意是记录个人生活,所以这篇放在DIARY也有些不妥,故思索再三,移至此处更新。 最近在重写BiliAPI,由于之前采集的接口都是两年前的东西了,所以这次打算再逆向B站客户端。版本使用了官网下载的5.29.1。 8.16 可以说 […]

查看更多

从Java虚拟机小测的结果来看JVM

前言 在去年年初我为了测试一个出题平台,随手打了几道题目,水了一篇Java虚拟机测试题。没想到今天一看竟然有人回答!热泪盈眶啊……好,那既然你肯回答,我就肯改主观题。截止目前,答题人数为24(有一次是我自己测试)。平均正确率是36%,平均答题时间竟然高达42:37!好感动(难道不是因为有人挂了很久么 […]

查看更多

[Java8]如何正确使用Optional

Optional是Java8提供的为了解决null安全问题的一个API。善用Optional可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。这篇文章是建立在你对Optional的用法有一定了解的基础上的,如果你还不太了解Optional,可以先去看看相关教程,或者查阅Java文档。 使用Optio […]

查看更多

KAAAsS

学生党一枚,业余程序员,爱逛B站喜欢二次元。

Calendar

2024 年 4 月
1234567
891011121314
15161718192021
22232425262728
2930