Content Preview: rss
27 days ago
今天无意中在网上瞄到google的一些面试题,其中有一道考察软件工程师的题目,死牛肉的意义。下面参考答案大谈死牛肉如何的无意义,然后怎么变废为宝云云。一声叹息,遂在网上搜了一些死牛肉,与这个题目有关的答案都是这样。悲剧啊,悲剧啊,你说他谷堂堂一个大公司,有必要给你玩啥脑筋急转弯吗?而且那个题目是考察软件工程师,我想他谷对软件工程师肯定要求很高很高,这个题目肯定是考察一个程序员的基本功和钻研能力,于是我将正确答案写在这里,供一些不明真相的群众围观,免得有些人的高谈阔论误人子弟。 死牛肉,DEAD BEAF,这样一写,对程序员来看就亲切不少,很容易观察到,每个字母都是A-F之间,那么很容易就联想到,他应该是一个16进制的记号,那么这个记号在哪里使用呢?在MAC平台下,堆的开辟会在堆开始的地址和结束的地址中加上DEAD BEAF,中间的区段就是堆实际的内容,加上这些标志位,可以确定堆的开始和结束之处,方便了OS对堆的定位,另一方面,在堆释放的时候,OS会去检查这些标志位是否正常,如果不正常,这会采取一些措施以免恶意的程序破坏操作系统。 同样,还有一些其它的一语双关的单词,比如坏食物,BAAD F00D,坏线BADCAB1E,这些东东都可以16进制数展现出来,在某些地方发挥着神奇的作用。 写这篇文章想说明两点,第一,软件工程师的思维是严谨的,这个题目的目的很能测试出这一点,试想像网上大侃特侃的回答,只能显示出那个人的浅薄,和作为一个程序员的不合格。第二,尽信网不如无网,虽然这个时代我们有了我度,还有他谷,但是怎样去看待这些信息资源,和怎样去消化这些资源,是我们每个人都应该思考的,科技让人更聪明,而不是让人更傻瓜。
44 days ago
也许我了解了,但是我没有了解,对知识的了解不可浅尝辄止啊,转帖一篇文章。 在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)。上面的这7个阶段,构成了 JVM中对象的完整的生命周期。下面分别介绍对象在处于这7个阶段时的不同情形。 2.2.1 创建阶段 在对象创建阶段,系统要通过下面的步骤,完成对象的创建过程: (1)为对象分配存储空间。 (2)开始构造对象。 (3)递归调用其超类的构造方法。 (4)进行对象实例初始化与变量初始化。 (5)执行构造方法体。 上面的5个步骤中的第3步就是指递归地调用该类所扩展的所有父类的构造方法,一个Java类(除Object类外)至少有一个父类(Object),这个规则既是强制的,也是隐式的。你可能已经注意到在创建一个Java类的时候,并没有显式地声明扩展(extends)一个Object父类。实际上,在 Java程序设计中,任何一个Java类都直接或间接的是Object类的子类。例如下面的代码: public class A { … } 这个声明等同于下面的声明: public class A extends java.lang.Object { … } 上面讲解了对象处于创建阶段时,系统所做的一些处理工作,其中有些过程与应用的性能密切相关,因此在创建对象时,我们应该遵循一些基本的规则,以提高应用的性能。 下面是在创建对象时的几个关键应用规则: (1)避免在循环体中创建对象,即使该对象占用内存空间不大。 (2)尽量及时使对象符合垃圾回收标准。 (3)不要采用过深的继承层次。 (4)访问本地变量优于访问类中的变量。 ...130 days ago
1. 简介 SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。 SOAP包括三个部分 SOAP封装(见第4节)结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP编码规则(见第5节)定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC表示(见第7节)定义了一个用来表示远程过程调用和应答的协定。 虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP封装,SOAP编码规则和SOAPRPC协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架[6]的情况下,SOAP消息如何包含在HTTP消息[5]中被传送。 1.1 设计目标 SOAP的主要设计目标是简单性和可扩展性,这意味着传统的消息系统和分布对象系统的某些性质不是SOAP规范的一部分。这些性质包括: 分布式碎片收集 成批传送消息 对象引用(要求分布式碎片收集) 激活机制(要求对象引用) 1.2 符号约定 这篇文章中的关键字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 和"OPTIONAL"的解释在RFC-2119 [2]中。这篇文章中用到的名域前缀 "SOAP-ENV" 和"SOAP-ENC"分别与"http://schemas.xmlsoap.org/soap/envelope/" ...
139 days ago
1.甚么是ACL ACL就是Access Control List,一个文件/目录的访问控制列表,可以针对任意指定的用户/组分配RWX权限。Linux在2.6版内核开始支持ACL。 2.ACL条目 一个ACL包括了一个ACL条目的集合,一个ACL条目为一个用户或者一个组对某个对象的访问权限,包括读、写、执行。一个ACL条目包括了一个条目标签类型,一个可选的条目标签的准入者以及一个权限(permission)的集合。 条目标签类型如下: ACL_USER_OBJ ACL_USER_OBJ 条目标签表示文件所有者的访问权限。 ACL_USER ACL_USER条目标签表示该条目下准入者的访问权限。 ACL_GROUP_OBJ ACL_GROUP_OBJ条目标签表示文件所在组的访问权限。 ACL_GROUP ACL_GROUP条目标签表示该条目下准入者(特定的组组)的访问权限。 ACL_MASK ACL_MASK条目标签表示能给ACL_USER,ACL_GROUP,ACL_GROUP分配的最大权限。 ACL_OTHER ACL_OTHER条目标签表示不能满足其它条目中的准入者的访问权限。 3.合法的ACL 一个ACL必须符合以下规则才能叫做合法的ACL。 一个ACL必须包含一条且仅有一条ACL_USER_OBJ,ACL_GROUP_OBJ,ACL_OTHER标签类型。 一个ACL可以包含0个或者多个ACL_USER以及ACL_GROUP,如果有这样的条目,那么ACL中必须包含一个且仅有一个ACL_MASK标签类型。否则 ACL_MASK可以不出现 所有ACL_USER准入者中出现的user ID必须唯一,同样,在ACL_GROUP中出现的group ID必须唯一。 4.ACL与文件权限的联系 ...
161 days ago
引用 再见同学,你好先生! 当去年的这个时候,我还觉得毕业是很遥远的事情。但是逝者如斯夫,抑或说How time flies. 转眼间,毕业的主角就成了我们。 说起毕业,多多少少有一些伤感啊,不安啊,对前途的憧憬或是迷茫啊。人最难受的时候莫过如此,心情百感交集,今天想着和某某同学吃喝一顿,明天想着去学校里办理一些毕业的事物,后天良心发现,翻个几页书,然后时间久这么混混沌沌的过去了。对于大多数人来说,这也是没办法的事情,几种想法纵横交错的时候,不总是能安下心来做事,不过毕业嘛,就要有毕业的样子,前几年的辛苦,能够得瑟着毕业,不为学分发愁,不为出路担忧,也是一大幸事。 大四这一年,我就没怎么在学校里呆过,中国最大两座城市各住个半年,为了以后的工作到处飘荡。在这个时候,还难免有那么点伤感的,总觉得有很多话没跟朋友们倾诉,然而时间有限,太多的话积累在一起,就像茶壶里装饺子一般,不知道从何说起,以致现在要把很多东西留在这里,希望我的朋友们能看到,能了解我对朋友们衷心感恩,对朋友美好的祝福。我是一个很普通的人,正因为有了这些朋友们,我的大学才丰富多彩,才趣味十足,我才是现在坐在电脑前写文章的我。 我总觉得自己是一个沉湎于过去的人,每当我回首大学走过的这段路,我都会带上一些骄傲——我的大学过得很充实,我在大学为未来的生活做了足够的准备。当我被命运安排到武汉大学的那个暑假,我就在思考,我的大学应该怎么度过。可能是上天的眷顾,我在大学期间遇到了很多志同道合的朋友,在他们的帮助下,我们拥有了很多精彩的瞬间。我很满意我的大学生涯,我的生活方式很规律,成绩也不错,动手能力也凑合,有那么几个可以推心置腹的朋友,找到一份不错的工作,最后老天大发慈悲,让高中我就喜欢上的那女孩陪着我……我觉得,这样的大学生活应该很知足了。很感谢我的父亲,在我入大学之前给我转了一贴《给大学生的81条金玉良言》虽然那81条我并没有全做到,不过也八九不离十。 ...



