加载中
为自己搭建一个分布式 IM(即时通讯) 系统

前言 大家新年快乐! 新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。 老读者应该还记得我在去年国庆节前分享过一篇《设计一个...

2019/01/02 08:07
2.4W
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

如何成为一位「不那么差」的程序员

前言 已经记不清有多少读者问过: 博主,你是怎么学习的?像我这样的情况有啥好的建议嘛? 也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。 因此也许诺...

HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它...

2018/07/23 08:20
2.2W
一个学渣的阿里之路

前言 最近有些朋友在面试阿里,加上 Java-Interview 项目的原因也有小伙伴和我讨论,近期也在负责部门的招牌,这让我想起年初那段长达三个月的奇葩面试经历。 本来没想拿出来说的,毕竟最后也...

2018/06/22 08:18
9.9K
秒杀架构实践

前言 之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 本次采用循序渐进的方式逐步提高性能达到并发秒杀的效果,文章较长请准备好瓜子板凳(liushuizhang...

2018/05/09 08:41
8.6K
动手实现一个 LRU cache

前言 LRU 是 Least Recently Used 的简写,字面意思则是最近最少使用。 通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。 如常用的 ...

2018/04/08 11:19
2K
基于 Redis 的分布式锁

前言 分布式锁在分布式应用中应用广泛,想要搞懂一个新事物首先得了解它的由来,这样才能更加的理解甚至可以举一反三。 首先谈到分布式锁自然也就联想到分布式应用。 在我们将应用拆分为分布...

2018/04/02 10:01
4.2K
彻底理解闭包实现原理

前言 闭包对于一个长期写 Java 的开发者来说估计鲜有耳闻,我在写 Python 和 Go 之前也是没怎么了解,光这名字感觉就有点"神秘莫测",这篇文章的主要目的就是从编译器的角度来分析闭包,彻底...

10/24 09:52
27
手写编程语言-如何为 GScript 编写标准库

版本更新 最近 GScript 更新了 v0.0.11 版本,重点更新了: Docker 运行环境 新增了 byte 原始类型 新增了一些字符串标准库 Strings/StringBuilder 数组切片语法:int[] b = a[1: len(a)]; 具...

10/17 08:09
23
用自己的编程语言实现了一个网站(增强版)

前言 前段时间在《用自己的编程语言实现了一个网站》用介绍了用 GScript 写的一个简单“网站”,虽然是打上引号的;页面长这样: 看起来确实非常的挫,其实之前一直也想做一个 GScript 的在线...

10/08 13:01
15
手写编程语言-递归函数是如何实现的?

前言 本篇文章主要是记录一下在 GScript 中实现递归调用时所遇到的坑,类似的问题在中文互联网上我几乎没有找到相关的内容,所以还是很有必要记录一下。 在开始之前还是简单介绍下本次更新的...

09/27 13:01
924
手写编程语言-实现运算符重载

前言 先带来日常的 GScript 更新:新增了可变参数的特性,语法如下: int add(string s, int ...num){ println(s); int sum = 0; for(int i=0;i<len(num);i++){ int v = num[i]; sum = sum+v...

09/19 07:56
22
里程碑!用自己的编程语言实现了一个网站

前言 在上一篇《终于实现了一门属于自己的编程语言》 介绍了自己写的编程语言 GScript ,在文中提到希望最终可以使用 GScript 开发一个网站。 到目前为止确实是做到了,首页地址: https://...

09/14 06:28
1W
终于实现了一门属于自己的编程语言

前言 都说程序员的三大浪漫是:操作系统、编译原理、图形学;最后的图形学确实是特定的专业领域,我们几乎接触不到,所以对我来说换成网络更合适一些,最后再加上一个数据库。 这四项技术如果...

09/07 01:09
1.2W
一门语言的作用域和函数调用是如何实现的

前言 上次利用 Antlr 重构一版 用 Antlr 重构脚本解释器 之后便着手新增其他功能,也就是现在看到的支持了作用域以及函数调用。 int b= 10; int foo(int age){ for(int i=0;i<10;i++){ age+...

08/17 11:31
861
用 Antlr 重构脚本解释器

前言 在上一个版本实现的脚本解释器 GScript 中实现了基本的四则运算以及 AST 的生成。 当我准备再新增一个 % 取模的运算符时,会发现工作很繁琐而且几乎都是重复的;主要是两步: 需要在词法...

08/07 20:44
32
用位运算为你的程序加速

前言 最近在持续优化之前编写的 JSON 解析库 xjson,主要是两个方面的优化。 第一个是支持将一个 JSONObject 对象输出为 JSON 字符串。 这点在上个版本中只是利用自带的 Print 函数打印数据:...

07/31 22:52
45
XJSON 是如何实现四则运算的?

前言 在上一篇中介绍了 xjson 的功能特性以及使用查询语法快速方便的获取 JSON 中的值。 同时这次也更新了一个版本,主要是两个升级: 对转义字符的支持。 性能优化,大约提升了30%⬆️。 转...

07/12 00:57
23
用面向对象的方式操作 JSON 甚至还能做四则运算 JSON 库

前言 在之前实现的 JSON 解析器中当时只实现了将一个 JSON 字符串转换为一个 JSONObject,并没有将其映射为一个具体的 struct;如果想要获取值就需要先做断言将其转换为 map 或者是切片再来获...

07/04 08:55
30

没有更多内容

加载失败,请刷新页面

返回顶部
顶部