代码改变世界

随笔档案-2009年05月

集线器,交换机和路由器

2009-05-22 22:14 by cesc711, 303 阅读, 收藏,
摘要: 集线器 集线器实际就是一种多端口的中继器。集线器一般有4、8、16、24、32等数量的RJ45接口,通过这些接口,集线器便能为相应数量的电脑完成“中继”功能(将已经衰减得不完整的信号经过整理,重新产生出完整的信号再继续传送)。由于它在网络中处于一种“中心”位置,因此集线器也叫做“Hub”。 它的工作原理很简单,比如有一个具备... 阅读全文

java随机数的产生

2009-05-19 10:47 by cesc711, 475 阅读, 收藏,
摘要: 昨天在写程序的时候用random类来产生随机数,但是发现每次产生出的随机数都是一样的,为此困惑不已。后来在网上查了查,发现是配置文件里面所配置的seed造成的,每次都用一个seed,产生的随机数当然就一样了。 下面很简单的总结一下java中产生随机数的几个方法,当然也是网上看到的: 1.用System.currentTimeMillis()获取一个当前时间毫秒的long型数字。 2.用Math.r... 阅读全文

java Inner class

2009-05-18 22:17 by cesc711, 327 阅读, 收藏,
摘要: 1.static Inner class(静态成员类)[代码]1.1 静态成员类特性 静态成员类可访问外部类的任一静态字段或静态方法 像静态方法或静态字段一样,静态成员类有public/private/default权限修饰符 1.2静态成员类约束 静态成员类不能与外部类重名 像外部类的静态方法一样,不能直接访问外部类的实例字段和实例方法 静态成员类只能定义于外部类的顶层代码或外部类其它静态成... 阅读全文

原码,反码和补码

2009-05-12 16:18 by cesc711, 190 阅读, 收藏,
摘要: 前几天写了一个表达式求值的小程序。首先我用栈存储了表达式的逆波兰式,在创造栈的时候,我是以char(单字节)为单位开辟内存的。因此能压栈的最大数为127,否则结果将会出错。顺着这个问题,我又看了看有关原码,反码和补码的一些知识。 数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负)。这就是机器数的原码了。 假设机器能处理的位数为8,即字长为1byte,原码能表示数值的范围为 :(-1... 阅读全文

Java中static用法

2009-05-11 20:04 by cesc711, 537 阅读, 收藏,
摘要: [代码]在1处,我们定义了一个静态的方法名为main,这就意味着告诉Java编译器,我这个方法不需要创建一个此类的对象即可使用。首先,System是位于java.lang包中的一个核心类,out是System的一个静态变量,所以可以直接使用,而out所属的类有一个println方法。静态方法: 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法。如下所示:[代码] ... 阅读全文

Java垃圾回收机制

2009-05-11 18:08 by cesc711, 926 阅读, 收藏,
摘要: 一.谁在做GarbageCollection? 一种流行的说法:在C++里,是系统在做垃圾回收;而在Java里,是Java自身在做。 在C++里,释放内存是手动处理的,要用delete运算符来释放分配的内存。这是流行的说法。确切地说,是应用认为不需要某实体时,就需用delete告诉系统,可以回收这块空间了。这个要求,对编码者来说,是件很麻烦、很难做到的事。随便上哪个BBS,在C/C++版块里总是有... 阅读全文

exit() function

2009-05-07 16:59 by cesc711, 273 阅读, 收藏,
摘要: exit参数的作用: exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile ()创建的临时文件。 用exit()函数可以退出程序并将控制权返回给操作系统.其中参数va... 阅读全文

getchar() function

2009-05-06 14:42 by cesc711, 177 阅读, 收藏,
摘要: 昨天写了一个最简单的利用stack的行编辑器。用的是getchar()方法来读取键盘的输入。函数原型:intgetchar()getchar()方法返回的是所读取到的字符的ASCII码值。当getchar()被调用的时候,就等待用户按键。用户输入的字符被放在键盘缓冲区中,直到按回车键为止(回车也放在缓冲区中)。直到用户按下回车键的时候,getchar()方法开始从stdin流中每次读取一个字符。如... 阅读全文

malloc()和calloc()的区别

2009-05-04 22:45 by cesc711, 175 阅读, 收藏,
摘要: [代码]分配了NumByte个字节,返回指向这块内存的指针,并且所分配的内存没有被初始化。[代码]分配了NumOfElem个SizeOfElem大小的内存空间,返回指向这块内存的指针,并且所分配的内存所有位都被初始化为0.。 阅读全文

c++ const修饰符用法

2009-05-02 16:56 by cesc711, 503 阅读, 收藏,
摘要: 1.const修饰变量:说明该变量的值是不可更改的。并且const常量有数据类型检查,宏只进行简单的字符替换,没有类型安全检查。2.const修饰类数据成员:const类型的数据成员只在该对象生存期内是不可变的,而对于整个类来说是可变的。所以不能在类声明中初始化const数据成员,因为类的对象未被创建时,编译器不知道const数据成员的值是什么。const数据成员的初始化只能在构造函数的初始化列表... 阅读全文

c++中五种内存分配

2009-05-02 15:20 by cesc711, 326 阅读, 收藏,
摘要: 在c++中,内存分为5个区域。分别是堆,栈,自由存储区,全局/静态存储区和常量存储区 栈:由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面通常是局部变量,函数参数等。 堆:由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 自由存储区:由malloc等分配的内存块,... 阅读全文