介绍 Base64编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符,也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3。 使用 String a = "伦家是一个非常长的字符串"; //5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5Liy String encode = Base64.en
介绍 Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域和短URL生成。 使用 String a = "伦家是一个非常长的字符串66"; // 17vKU8W4JMG8dQF8lk9VNnkdMOeWn4rJMva6F0XsLrrT53iKBnqo String encode = Base62.encode(a); // 还原为a String deco
在大学接触面向对象以前,一直都是用面向过程,直到现在写代码还是面向过程居多,学习那会儿经常听到一个论调,说面向对象特别适合大型程序,因为面向过程在大型程序中已经很难管理代码了,于是很好奇到底多大的程序面向过程会出问题,到工作后发现也没什么大不了的,七八十万行的项目照样用纯C做也没问题,大概是还没有接触到吧。不过近几年,虽然偶尔还是会遇到有人翻这个老黄历,但已经少了很多了,相对的听到更多的另一种论点
在 Tea 中,一个源文件被称为一个编译单元(sourceunit)。 多个源码组成一个模块(module)。 多个模块组成一个项目(project)。 一个独立的模块可以编译为一个可执行文件、动态链接库或静态链接库。 文件夹结构规范 pkg1/ bin/ 生成的二进制文件 debug/ 调试版本的生成文件
JavaScript的所有数据都可以看成对象,那是不是我们已经在使用面向对象编程了呢? 当然不是。如果我们只使用Number、Array、string以及基本的{...}定义的对象,还无法发挥出面向对象编程的威力。 JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念: 类:类是对象的类型模板,
这些程式码格式与文件的标准,必须被任何对 Fuel 贡献的人遵循, 任何不符合这些准则的贡献将不被接受。 档案格式 PHP 结束标籤 只包含 PHP 程式码的文件应该总是省略 PHP 结束标籤(?>)。 这可以防止许多难以捉摸的死亡白萤幕。 缩排 所有缩排应该使用真正的 Tab,而非空格。 但对齐缩排后的物件应该使用空格,而非 Tab。 // 缩排 2 个 Tab $var =
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。 而面向对象的程序设计把计算机程序视为一组对象的集合
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是655
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。 而面向对象的程序设计把计算机程序视为一组对象的集合
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是655
主要内容:1.算子状态概述,2.算子状态 编程案例,3.状态持久化和状态后端,4.状态编程总结1.算子状态概述 1.1 算子状态分类 算子状态: 列表状态, 联合列表状态, 广播状态 ListState, UnionListState, BroadcastState 1.2 状态分析 列表状态: 与 Keyed State 中的 ListState 一样,将状态表示为一组数据的列表。与 Keyed State 中的列表状态的区别是:在算子状态的上下文中,不会按键(key)分别处理状态,所以
主要内容:1.Flink 中的状态,2.按键分区状态 (keyed state),3.状态生存时间 Ttl,4.状态一致性说明1.Flink 中的状态 1.1 状态管理 状态的访问权限。我们知道 Flink 上的聚合和窗口操作,一般都是基于 KeyedStream的,数据会按照 key 的哈希值进行分区,聚合处理的结果也应该是只对当前 key 有效。然而同一个分区(也就是 slot)上执行的任务实例,可能会包含多个 key 的数据,它 们同时访问和更改本地变量,就会导致计算结果错误。所以这时状态
主要内容:1.概述,2.Compiler,3.AdaptiveCompiler,4.AbstractCompiler,5. JavassistCompiler1.概述 在 Java 语言中,大多数情况下,我们已经编写好 Java 类,并编译成 Class 文件进行运行。但是在一些场景下,例如动态代理,需要运用到动态编译的技术 例如,SPI中的 createAdaptiveExtensionClassCode方法中,我们可以看到如下代码: 调用 Compiler#compile(code, cla
1.1. 搭建编译环境 1.2. 选择代码分支配置 1.3. 设置 Linux 编译环境 1.3.1. 64-bit Ubuntu 系统 1.3.2. Docker 1.3.3. 在容器中运行Docker镜像 1.3.4. 配置USB使用权限 1.3.5. 下载源码 1.1. 搭建编译环境 这里介绍如何设置本地工作环境来编译 RokidOS 开源项目。目前只支持 Linux OS。 1.2. 选择
1.1. 编译环境配置 1.1.1. Openwrt编译环境搭建 1.1.2. 自带编译工具链环境搭建 1.1.3. MCU编译环境搭建 1.1. 编译环境配置 因为Kamino18平台采用MCU/ARM的异步架构,开发者需要安装arm和MCU交叉编译工具链。 1.1.1. Openwrt编译环境搭建 整个Kamino18平台的YODAOS是基于openwrt进行编译的,通过openwrt我们可以