Peter.Y的技术博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2010年8月17日

摘要: 最近Coding用到Java中的反射机制,基本特性就不介绍了,引一篇帖子备查(http://wenku.baidu.com/view/d7be6b22aaea998fcc220e67.html)。我遇到的问题简述如下:类pa.A封装反射调用,类pb.B中实现了需要反射的类。pa,pb是不同的包。当B中反射的类是B自身,或是B的内部类时,可以正常反射。当B中反射的是一个接口类(例如IA)的实现类时,不管是匿名类还是有名类,均会引发ensureMemAccess错误,即Java认定你没有权限访问该方法,尽管接口和实现以及方法全部都是public的。产生这个问题的原因是跟包访问的权限有关,当把这两个 阅读全文
posted @ 2010-08-17 07:35 Peter.Y 阅读(160) 评论(0) 推荐(0) 编辑

2010年8月5日

摘要: 这两天看了一些局部搜索的内容,笔记如下。1.梯度下降法 最简单的一种方法,对给定的解,搜索其邻域解,若邻域中有更优的解(根据给定的评估函数评定),则移动至该邻域解,继续寻找,直至找不到为止。此时,就找到了局部最优解。 方法非常简单,但是缺陷也很明显,即陷入到局部最优解之后无法跳出。2.模拟退火算法 算法框架与第一种没有差别。 简单描述一下,该方法增加了根据概率跳出局部最优的特性,即当陷入局... 阅读全文
posted @ 2010-08-05 18:17 Peter.Y 阅读(229) 评论(0) 推荐(0) 编辑

2010年7月21日

摘要: 工作用的电脑是64位的,所以今天就在64位的Eclipse、jdk和32位的tomcat上纠结了一天,这几个东东要配套。但是64位的Eclipse一直死,一开就死。而32位的集成tomcat又报错。极度郁闷啊,这个鸟东西一死就报个错:Java was started but returned exit code=-805306369.........等等今天搞了大半天没搞定,晚上回来终于找了个解决方案,防止Eclipse死的方法。将eclipse.ini内容改为:-startupplugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar-- 阅读全文
posted @ 2010-07-21 02:44 Peter.Y 阅读(1433) 评论(0) 推荐(0) 编辑

2010年5月6日

摘要: 读了一段时间了,感觉探讨的层次很深入。深入的理解后面再写吧。先总结一些小经验,或许对以后调试有用。(本文不定期更新)1.编程指定断点。在需要的地方插入如下代码即可:if( !IsDebuggerPresent() && 断点条件) DebugBreak();这个方法的好处就是灵活。对于复杂的调试环境,如多线程调试,有些情况调试断点不好设置,用这个简单方便,不过对源码有影响。Coding时还是要注意下的。当然要编译连接通过需要包含windows.h头文件 阅读全文
posted @ 2010-05-06 01:23 Peter.Y 阅读(242) 评论(0) 推荐(0) 编辑

2009年7月8日

摘要: 题目如下: --------------------------------------------------看了这么多题目,有人不禁会想,这些题目都太难了!有没有容易的?这里有一题,只用到加法,大家别嫌题目简单,不妨试试看。我们知道:1+2=34+5=92+3+4=9等式左边都是两个以上连续的自然数相加,那么是不是所有的整数都可以写成这样的形式呢?稍微考虑一下,我们发现,4、8等数并不能写成这样的形式。问题1:写一个程序,对于一个64位正整数,输出它所有可能的连续自然数(两个以上)之各的算式。问题2:大家在测试上面程序的过程中,肯定会注意到一些数字不能表达为一系列连续的自然数之和,例如32 阅读全文
posted @ 2009-07-08 02:32 Peter.Y 阅读(1311) 评论(0) 推荐(0) 编辑

2009年6月12日

摘要: 这一章讨论如何计算程序中各部分的执行时间。从测量参数来说,分为两种方法,一种采用时间为单位进行计算,另一种采用时钟周期数进行计算。前者一般采用低频的定时中断来获取或更新,后者采用计数器,每个时钟周期自增1。  现在的计算机系统一般都是多任务多用户模式,然而其内部CPU只有一个(不考虑多核多CPU情况)。系统为用户营造了一个模拟的多任务同时运行的环境,对于看似同时运行的任务而言,就叫做并发。然而由于CPU的执行部件只有一个,所以实际上所有的任务都是串行完成的,只是系统将各个任务调度起来,一会儿做这个一会儿做那个,使各个任务看起来是并行在处理。并且,由于任务切换而造成的开销(比如保存现场等内核空间 阅读全文
posted @ 2009-06-12 22:50 Peter.Y 阅读(330) 评论(0) 推荐(0) 编辑

2009年6月7日

摘要: 这一章讲述异常控制,这里的异常控制并不简单地指程序代码中的Exception,而是具有更广泛意义的概念。它包括计算机系统中各个层次中的异常控制,从底层的中断,到程序员层的Exception,都属于这一范围。  从底层来说,异常控制是指由中断机制支持的异常处理。一般是由硬件触发,比如I/O访问、缺页等,共分四种:interrupt、fault、abort、trap。其中interrupt是由I/O设备发出的中断引起的,采用异步方式,处理数据收取等;trap是内部异常,采用同步方式,一般的系统调用以及int指令就对应这种方式;fault是可恢复的错误,也是同步方式,比如内存访问缺页或页保护等;ab 阅读全文
posted @ 2009-06-07 21:39 Peter.Y 阅读(237) 评论(0) 推荐(0) 编辑

摘要: 这个连接是指程序在编译完成后的连接过程。按书中的说法,了解程序源代码转化为二进制可执行文件的过程,有助于程序员构建大型项目。从我自己的角度来看,了解这些算是对程序有了更进一步的认识,也算是编译原理的后一部分延续。这一章名为连接,实质上读完了使人对整个的编译连接过程以及程序如何运行有了初步的理解。废话不多说,开始。  (本章所用例子均处于Unix类操作系统中)  我们知道,像C++这种编译型语言,源代码转化的过程一般为以下三步:预编译、编译、连接。第一步将各种预编译头替换为实质代码或数值,例如#includestdio.h,就会将stdio.h文件内容替换到当前引用的源码中来。第二步,将第一 阅读全文
posted @ 2009-06-07 05:37 Peter.Y 阅读(271) 评论(0) 推荐(0) 编辑

2009年6月6日

摘要: 前段时间结束了一些比较琐碎的事情,也因此拖到现在都没继续写小结。这次简单总结下书中第三部分,在我看来也是相对来说比较不重要的一部分哈。  要说明的是,这部分共分三章,分别从系统级IO(第11章)、网络编程(第12章)、并发编程(第13章)。分别从三个程序员经常会用到的方面进行讨论,当然文中是以Unix操作系统为前提的。  首先来看看系统级IO。这部分主要关注一下文件描述字的复制问题。在Unix中,与文件操作相关的结构有三种,如下图所示:  图左侧的表是文件描述符表,每个进程对应一张该表,表项指向打开文件表的某项;中间是已经打开的文件表,每一项维护一个打开文件的文件指针位置,文件引用数,以及对应 阅读全文
posted @ 2009-06-06 05:51 Peter.Y 阅读(340) 评论(0) 推荐(0) 编辑

2009年5月20日

摘要: 原来总把memory理解为内存,在这里是不合适的,还是称为存储器更具有一般性。存储器是计算机体系结构中不可或缺的一部分,在冯·诺依曼结构中是必要的组成部分。PC中常见的存储器有寄存器,高速缓存(即CPU上的Cache),主存(即常说的内存)以及磁盘。另外,也有人把远端机器的存储介质也算在内。这样,就形成了存储器的层次结构,如下图所示。   这张图中划分中更为细致,共分了六级,从0到5。从上到下依次是寄存器,L1 cache,L2 cache,主存,磁盘,远端存储介质。这张图呈现了存储器的金字塔型构造。左侧的箭头表明,处于金字塔高端的存储器具有较高的访问速度以及较贵的价格,而处于金字塔低端的存储 阅读全文
posted @ 2009-05-20 01:34 Peter.Y 阅读(700) 评论(0) 推荐(0) 编辑