自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 Bazel 创建repository_rule

Bazel的repository_rule一直使用Bazel内建的repository (git_repository, http_archive, etc),但实际上bazel提供了自定义的repository_rule给我们自定义repository的rule,以提高我们定义库的方式。一个例子假如在一个远端git上有一个c++的库A,它是一个预编译过的库。也就是说它包含一个lib目录,里面有.a和.so文件,但是在这个库A的BUILD文件里,它是这么写的:cc_library(

2022-03-24 14:31:51 788

原创 线程安全lock-free对象池

对象池对象池(object pool pattern)是一种设计模式。维基百科的解释:Theobject pool patternuses a set of initializedobjectskept ready to use – a "pool" – rather than allocating and destroying them on demand. 对象池的思想是准备好一堆初始化/实例化好的对象,等到使用的时候直接从“池子”里获取一个,从而避免对象的构造与初始化时间。使用对象池的...

2021-08-23 11:26:57 586

原创 简单的JsonParser(Java)

用以测试时写的小工具,以备忘。代码in java8import java.util.ArrayList;import java.util.HashMap;import java.util.Map;public class JsonParser { static char bracesOpen = '{'; static char bracesClose = '}'; static char bracketOpen = '['; static char .

2021-08-12 09:07:08 1132

原创 一个简单的Json生成工具(c++)

自定义数据结构想转成Json string输出,又不想引入rapidJson,就自己实现一个吧。Caveats (TODO)目前不支持数字类型的value 只提供ToString()方法,具生成的json string没有格式化 接口提供不太友好,使用繁琐代码in c++11#include <algorithm>#include <iostream>#include <list>#include <memory>#includ

2021-08-12 08:53:53 973

原创 C++实现的Base64编码与解码

最近工作需要将二进制保存到hive里,但是很不幸,hive不支持bit字节流的存储,尤其是不定长的字节流。怎么办呢?我们的解决方案是将二进制转成可见的字符再存储字符串。于是使用Base64进行编码。在Java中使用Base64是十分方便的,因为java8自带base64的工具包。但是我们的字节流dump过程是在c++里实现的,而c++的stl中是不会有这个东西的。怎么办?还好我们有boost,但是boost是一个比较庞大复杂的东西,对于我们这个简单的功能实在是大材小用。我不太想引入这个。于是自己造轮子吧。

2021-08-11 11:04:51 1348

翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(5)

域布局(Field layouts)与对齐(alignments)

2018-01-11 13:58:14 178

原创 KMP算法实现

C++实现的可运行的KMP算法

2017-10-14 01:45:32 330

翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(4)

获取一个对象的内存地址

2017-09-29 16:38:04 300

翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(3)

我们如何得到一个Class在内存中的地址呢?

2017-09-21 15:35:28 311

原创 Java中的抽象类与接口

一直感觉Java的抽象类与接口很像,想搞明白它们到底有什么不同。写个博客Mark一下。

2017-09-19 16:13:06 451

翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(2)

使用Unsafe系列之二——Compressed Oops什么是Oops?什么是Compressed Oops?我们一起来探讨吧

2017-09-02 15:38:00 326

翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(1)

原文地址:https://zeroturnaround.com/rebellabs/dangerous-code-how-to-be-unsafe-with-java-classes-objects-in-memory/ Java的类和对象在内存里到底是什么样子的呀?我们一起来搞搞清楚撒。。。你是否对Java内存管理机制感到好奇?有没有问过下面这些奇怪的问题呀:一个类在内存里占多少空间?自己写

2017-09-01 01:04:46 543

原创 排列数组中数字得出最大数算法

今日见一有意思的算法题目:“编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。”最简单的是爆力破解,数组全排列,最后拼出来的数取最大的。然而没有啥技术含量,于是摒弃。接下来分析,另外一种实现方法,分析:为了要得到最大值,那么要从每个数的最高位比较,取最高的(比如第一个数字是9的)放在拼接数字最前面。最完9的,就看有没有8的,

2017-08-02 23:16:00 2850

原创 分别在Windows与Ubuntu系统下在C程序中打开选择对话框

在C语言的控制端程序中调用库函数打开文件选择对话框

2016-11-11 16:37:17 1338 3

翻译 CompressedOops: Java中compressed references介绍

[原文地址] https://www.javacodegeeks.com/2016/05/compressedoops-introduction-compressed-references-java.html在这篇文章中,我们来聊聊Compressed oops(压缩了的普通对象指针)。它是JVM的优化技术之一。为什么要提出compressed oops的概念呢?那是因为32位与64位

2016-10-31 13:53:53 3140

空空如也

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

TA关注的人

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