摘要: 五、BASH SHELL编程:1. 初始化顺序: /etc/profile ( ~/.bash_profile | ~/.bash_login | ~/.profile ) ~/.bashrc2. set -o allexport 当前shell变量对其所有子shell都有效. set +o allexport 当前shell变量对其所有子shell都无效. set -o noclobber 重定向输出时,如果输出文件已经存在则提示输出失败, date > out; date > out, 第二次操作失败 set +o noclobber 缺省shell行为. date > 阅读全文
posted @ 2011-11-04 07:09 OrangeAdmin 阅读(4608) 评论(1) 推荐(1)
摘要: 零、shell中的内部变量:1. $?: 表示shell命令的返回值.2. $$: 表示当前shell的pid.3. $!: 最后一个放入后台作业的PID值.4. $0: 表示脚本的名字.5. $1--$9,${10}: 表示脚本的第一到九个参数,和第十个参数.6. $#: 表示参数的个数.7. $*,$@: 表示所有的参数. 两者的区别如下: //都是双引号惹的祸^-^ /> set 'apple pie' pears peaches /> for i in $* > do > echo $i > done apple pie pears pea 阅读全文
posted @ 2011-11-01 06:56 OrangeAdmin 阅读(6352) 评论(5) 推荐(8)
摘要: 结果如何呢?我的VC++测试用例还是不能调用该接口的接口方法,只是这次的报错方式有所改变,提示是每个C/C++程序员最不愿意看到的“内存地址访问违规”,这一次我确实被郁闷了,这是为什么呢?五、gcc和VC++对象模型的差异分析: 在VC++中,C++对象(含有虚函数)在编译后将生成属于自己的对象模型,虚拟表vtable和虚拟指针vptr均被包含在该模型中(关于该问题,可以参考Stanley Lippman的《深度探索C++对象模型》)。而我们目前的设计方式恰恰是充分利用了vptr和vtable来定位每个接口函数,不幸的是,VC++生成的C++对象的vptr在该对象模型的最开始处,即该对象... 阅读全文
posted @ 2011-10-27 07:22 OrangeAdmin 阅读(2177) 评论(0) 推荐(2)
摘要: 零、前言: 该篇博客的Title原计划是“在VC++中调用libmemcached的设计技巧”,可结果却事与原违,原因很简单,移植失败了。尽管结果如此,然而这3天的付出却是非常值得的,原因也很简单,收获非常大。事实上,我曾经在6月份的时候成功移植了当时的最新版本0.49,并写出了下面的博客: http://www.cnblogs.com/stephen-liu74/archive/2011/06/20/2084882.html 这次移植的目标非常明确,就是基于上次的经验,对libmemcached进行基于C++的封装,以便其可以更好的集成到我的底层服务框架中,使我的程序在Windows平... 阅读全文
posted @ 2011-10-24 07:31 OrangeAdmin 阅读(3298) 评论(4) 推荐(6)
摘要: 本篇是该系列的最后一篇文章,就让我们以JNI作为结束吧! 众所周知,使用多种语言协同开发时,经常会导致一些未知问题的发生,也会给我们程序的调试带来一定的负担。鉴于此,我们也只有在充分了解到必要性之后再决定用C/C++来替换部分Java代码,以达到我们预期的目的,考虑使用本地代码主要有以下三个理由: 1) 你的应用需要访问系统的各个特性和设备,这些特性和设备通过Java平台是无法访问的; 2) 你已经有了大量的测试过和调试过得用另一种语言编写的代码,并且知道如何将其导出到所有的目标平台上; 3) 通过基准测试,你已经发现所编写的Java代码比用其他语言编写的等价代码要慢得多。 在Java中提供. 阅读全文
posted @ 2011-10-20 10:34 OrangeAdmin 阅读(2365) 评论(0) 推荐(2)
摘要: 本篇为您介绍的是如何通过套接字(Socket)编写基于TCP/IP(IPv4)的网络应用程序。 在基于TCP的网络通讯中,每次进行数据传输之前,均需要在服务器端和客户端之间建立TCP连接,之后再在该连接通道上进行数据传输。然而在连接之前,我们还需要做哪些准备呢?很明显,如果我们是客户端,则需要预先知道待连接的服务器的IP地址和端口号。这就如同打电话,通话之前先拨号,拨号之前需要知道对方的电话号码。那么对于服务器而言又需要做什么呢?由于它是被动等待客户端发起连接的,因此服务器唯一需要准备工作是监听指定的IP地址和端口号。可以看出,无论是服务器还是客户端,在准备建立连接之前都是需要与IP地址和端. 阅读全文
posted @ 2011-10-17 09:08 OrangeAdmin 阅读(3003) 评论(2) 推荐(2)
摘要: 12. 字体: 1) 通过之前介绍的图形环境(GraphicsEnvironment)工具类获取当前系统支持的所有字体。 1 public class MyTest { 2 public static void main(String[] args) { 3 String[] fontFamilies = GraphicsEnvironment.getLocalGraphicsEnvironment() 4 .getAvailableFontFamilyNames(); 5 ... 阅读全文
posted @ 2011-10-14 08:49 OrangeAdmin 阅读(2474) 评论(3) 推荐(5)
摘要: 本篇将继续介绍Java 2D 图形部分的内容。 10. BufferedImage: BufferedImage中包含着width*height个像素点的颜色值,同时BufferedImage中还带有色彩模型(ColorModel)的信息,用于描述像素点的颜色模型,如TYPE_INT_ARGB、TYPE_INT_RGB等。Graphic2D在渲染目标图像时,也需要依照ColorModel来计算图像像素的颜色信息并执行渲染。 在有些情况下,我们需要对BufferedImage中的每一个像素的颜色值进行计算,并将计算的结果回写到BufferedImage中相应的位置。那么我们是如果获取这些像素信. 阅读全文
posted @ 2011-10-11 09:01 OrangeAdmin 阅读(2731) 评论(0) 推荐(2)
摘要: 本篇将继续介绍Java 2D 图形部分的内容。 5. 坐标变换: 坐标变换是图形编程中非常重要的一项技术,该技术在基于3D的开发中应用更为普遍,我们这里将介绍Java 2D中四种基本的变换: 1) 比例缩放(scale):放大和缩小从一个固定点出发的所有距离; 2) 旋转(rotate):环绕着一个固定中心旋转所有点; 3) 平移(translate):将所有的点移动一个固定量; 4) 切变(shear):使一个线条固定不变,再按照与该固定线条之间的距离,成比例地将与该线条平行的各个线条"滑动"一个距离量。 这里提及的四种变换规则可以组合在一起使用,然而需要注意的是,在组合 阅读全文
posted @ 2011-10-06 09:19 OrangeAdmin 阅读(2694) 评论(2) 推荐(5)
摘要: 本篇将主要为您介绍Java的2D图形编程技术,然而在示例代码中还将会涉及一些简单的Swing知识,我们会尽可能的将2D中的方法进行归类和抽取,以便使您的关注点始终保持在Java2D上。该篇还会和本系列中其他篇章的风格保持一致,只是介绍必要的关键概念,更多的技术点是通过已经良好分类的有代表性的示例代码来为您展示和说明。 1. 形状绘制: 在Java 2D中提供了下面几个基本形状: 1) Line2D 2) Rectangle2D 3) RoundRectangle2D 4) Ellipse2D 5) Arc2D 6) QuadCurve2D 7) CubicCurve2D 8) General. 阅读全文
posted @ 2011-10-01 10:10 OrangeAdmin 阅读(3055) 评论(3) 推荐(3)