不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2017-10-29 09:00:41  修改时间:2024-08-06 21:05:28  分类:14.Golang/Ruby  编辑

有时候 go get 比较慢,可以考虑用迅雷等下载工具下载下来,然后再本地安装,

如:code.google.com/p/go.net/websocket,如何安装这些离线包?

先在你的 GOPATH 目录(如果不懂 GOPATH,请先弄懂)下,创建目录 src

mkdir src

复制 code.google.com.p.go.net.tar.gzsrc 目录下,解压缩,这时候目录应该看起来是这个样子,

作者:Albert.Wen  添加时间:2017-10-26 18:39:36  修改时间:2024-09-01 07:53:42  分类:13.C/C++/Rust  编辑

C 编程中,经常需要操作的内存可分为下面几个类别:

  1. 堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的
  2. 堆区(heap):一般由程序员分配与释放,基程序员不释放,程序结束时可能由操作系统回收(C/C++没有此等回收机制,Java/C#有),注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
  3. 全局区(静态区)(static):全局变量和静态变量的存储是放在一块儿的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
  4. 文字常量区:常量字符串是放在这里的,程序结束后由系统释放。
  5. 程序代码区:存放函数体的二进制代码。
作者:Albert.Wen  添加时间:2019-02-07 00:29:51  修改时间:2024-09-16 01:06:27  分类:07.Java基础  编辑
作者:Albert.Wen  添加时间:2019-03-30 22:30:39  修改时间:2024-07-04 02:00:17  分类:15.OpenResty_Lua  编辑

Lua 中的 repeat 控制结构类似于其他语言(如:C++ 语言)中的 do-while,但是控制方式是刚好相反的。简单点说,执行 repeat 循环体后,直到 until 的条件为真时才结束,而其他语言(如:C++ 语言)的 do-while 则是当条件为假时就结束循环。

作者:Albert.Wen  添加时间:2016-04-16 12:48:48  修改时间:2024-09-03 22:13:00  分类:13.C/C++/Rust  编辑

在前一小节的“改写版”例程中,像下面这样将指针指向数组的初始元素。

p = &array[0];

其实也可以写成下面这样

p = array;

对于这种写法,很多 C 语言的入门书籍是这样说明的:

在 C 中,如果在数组名后不加[],单独地只写数组名,那么此名称就表示“指向数组初始化元素的指针”。

在这里,我可以负责地告诉你,上面的说明是错误的。

作者:Albert.Wen  添加时间:2017-10-29 10:16:43  修改时间:2024-09-05 23:58:33  分类:14.Golang/Ruby  编辑

命令 go fix 会把指定 代码包 的所有 Go 语言源码文件中的旧版本代码修正为新版本的代码。这里所说的版本即 Go 语言的版本。代码包的所有 Go 语言源码文件不包括其子代码包(如果有的话)中的文件。修正操作包括把对旧程序调用的代码更换为对新程序调用的代码、把旧的语法更换为新的语法,等等。

作者:Albert.Wen  添加时间:2018-10-18 10:36:14  修改时间:2024-09-18 14:43:33  分类:07.Java基础  编辑

ReplayingDecoder 和ByteToMessageDecoder 最大的不同就是ReplayingDecoder 允许你实现decode()和decodeLast()就像所有的字节已经接收到一样,不需要判断可用的字节,举例,下面的ByteToMessageDecoder 实现:

public class IntegerHeaderFrameDecoder extends ByteToMessageDecoder {

    @Override
   protected void decode(ChannelHandlerContext ctx,
                           ByteBuf buf, List<Object> out) throws Exception {

     if (buf.readableBytes() < 4) {
        return;
     }

     buf.markReaderIndex();
     int length = buf.readInt();

     if (buf.readableBytes() < length) {
        buf.resetReaderIndex();
        return;
     }

     out.add(buf.readBytes(length));
   }
 }
作者:Albert.Wen  添加时间:2019-02-18 23:01:21  修改时间:2024-09-18 10:29:19  分类:07.Java基础  编辑

首先来看一下List接口中的sort()方法

从这个描述我们可以看到,我们可以根据具体的Comparator对List结合中的元素进行排序,如果传入的comparator是null的时候,那么集合中的元素必须实现Comparable接口实现自然排序。从上面的一段话我们知道List集合对元素排序的方法有以下两种:

  • List中的元素自己实现一个Comparable接口实现一个自然排序
  • 我们通过传入一个实现了Comparator接口实现一个排序
作者:Albert.Wen  添加时间:2018-02-23 14:33:14  修改时间:2024-09-18 20:07:54  分类:电脑/软件使用  编辑
作者:Albert.Wen  添加时间:2019-01-26 21:30:38  修改时间:2024-09-19 19:46:20  分类:07.Java基础  编辑

Java正则表达式:

  •   (?i)abc  表示abc都忽略大小写
  •   a(?i)bc  表示bc忽略大小写
  •   a((?i)b)c  表示只有b忽略大小写

也可以用 Pattern.compile(rexp, Pattern.CASE_INSENSITIVE) 表示整体都忽略大小写