滕瑞

  • 关注
  • 短消息
  • 送银子
文章
36
评论
11
推荐
69
收藏
8
社区会龄
5 年
个人网站
tengrui.me
个人简介

这个家伙很懒,什么都没有留下。

  • 滕瑞 10推荐

    再议i++与++i,亮点在最后

    我的第一份工作是C语言的嵌入式软件开发,公司内部有严格的C语言编程规范,因此并没被此类问题烦恼过。 对于i++和++i的问题,规范规定使用++i的形式。因为这样不需要保存初始值,可以节省一条汇编指令。所以我一直都是用下面的方式: for (int i = 0; i <…...

  • 滕瑞 8推荐

    如何产生一个C++局部静态对象的多线程问题

    本来是想重现以前工作中遇到的一个Segment Fault。但是据说原来的问题已经在新的C++版本中解决了,现在不会产生段错误。而且C++的实现版本众多,也无从考究原来的版本是哪一个了。 原来的代码模型如下,在多线程环境中,重复进入这个函数,可能会有多个构造函数同时运行。从而…...

  • 滕瑞 8推荐

    在Linux中运行"rm -rf /"的结果

    一般人应该都知道不可以运行"rm -rf /"这个命令,不过为了这个系列主题,今天我终于打算尝试一下。 首先来个运行前的截图。其实想直接运行"rm -rf /"是不会成功的,因为这个命令还是比较容易误操作的,比如/后面的目录还没有敲完,…...

  • 滕瑞 6推荐

    如何在main函数前后执行代码

    第一次遇到这个问题的时候,第一反应是我没听错吧,然后默默在心里把面试官骂了N遍。 对于C++来说,全局变量、静态变量的初始化是在main函数前执行的,这样就可以在构造函数里面运行一些东西。另外,今天再介绍几个底层玩法。 直接上代码(以C语言为例,保存为demo.c): #…...

  • 滕瑞 6推荐

    如何让程序只在一个CPU核心上运行

    问题来源于《编程之美》,那时我还只有单核CPU的电脑,书上的讨论问题就没有研究。今天拿出来在多核CPU上重做一下,加入下面这行代码就搞定了。貌似不需要GetProcessorInfo()这个函数,另外这个函数也只能在Windows Server版本中才支持。 SetThrea…...

  • 滕瑞 5推荐

    写代码时,编译器比你聪明

    学姐起的标题,抢先用一下。 在《Effective Java》第51条:“当心字符串连接的性能”一文中介绍的原则是:不要使用字符串连接操作符来合并多个字符串,除非性能无关紧要。相反,应该使用StringBuilder的append方法。 所以我一直以为应该尽量使用Strin…...

  • 滕瑞 4推荐

    如何使Java虚拟机崩溃

    最初见到这个问题是在《我编程,我快乐——程序员职业规划之道》上,我的第一反应是构造一个OutOfMemoryError或者StackOverflowError。为了快速产生结果,在JVM参数进行如下设置后: -verbose:gc -Xms20M -Xmx20M -Xmn10…...

  • 滕瑞 3推荐

    小试Java虚拟机内存管理(Java 8)

    最近研究了一下Java虚拟机的内存管理。大体上分为两部分:垃圾回收算法和内存分配。举个不恰当的比喻,好比汽车的变速箱和发动机。当'转速/内存使用'过高时,就会触发'换挡/垃圾回收'。 Java虚拟机的内存分配,大体上可分为年轻代(Young G…...

  • 滕瑞 3推荐

    如何将Linux置于无限重启/关机状态

    记得刚学Linux的时候,图形界面经常出问题。装完系统后,第一件事就是编辑/etc/inittab这个文件,为的是把默认启动从图形界面改为文本界面。等设置好了分辨率等参数后,再用xstart或者其他命令启动图像界面。 相关的文档里面都说,一定不要将启动参数设置为0(关机)或者…...

  • 滕瑞 2推荐

    如何破坏C++的访问控制

    封装,继承和多态是面向对象的三大特征。其中封装是利用设置访问控制权限来实现的。在C++中,访问控制权限可以用友元、宏和类型转换等方法来破坏。这里介绍一下宏和类型转换的方法。 首先定义一个包含私有成员的类Employee,居然没有定义加薪的接口,摆明不想给涨工资!(employ…...