- 博客(253)
- 资源 (1)
- 收藏
- 关注
原创 螺旋队列算法分析
螺旋队列的样子如下图: 两大规律: 1、螺旋规律 2、奇数(圈数,或X轴正坐标)平方规律(紫线) 问题描述: 设1的坐标是(0,0),x方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(1,0)。编程实现输入任意一点坐标(x,y),输出所对应的数字! 问题解决: 从紫线突破。 从图中不难发现,每圈最大值max=(2*c+1)(
2008-09-16 00:23:00
22802
16
原创 Ucos-II+ucGUI390+ARM2410+LCD+触摸屏基本整合成功(更新于2007-3-15)
ucos-II+ucGUI390+ARM9s3c2410+LCD+触摸屏基本整合成功(最近更新于2007-3-15) 环境:ads2.2+ARM9+s3c2410 注意:由于编译器(ads1.2或2.2)对全局变量初始化为0的不完全支持,有时必须手动初始化为0,切记!!! 一、 ucos-II移植到ARM9s3c2410可从官网下载移植代码,基本
2007-02-01 10:40:00
7580
2
原创 【读书笔记】企业应用架构模式——并发、事务与锁
一、并发问题的产生 多线程/进程同时操作(读/写)同一数据 二、并发问题的种类 丢失更新(lost update) 第一类更新丢失(回滚丢失): 当2个事务更新相同的数据源,如果第一个事务被提交,而另外一个事务却被撤销,那么会连同第一个事务所做的跟新也被撤销。也就是说第一个事务做的跟新丢失了。第二类更新丢失(覆盖丢失): 第二类更新丢失实在实际应用中经常遇到的并
2012-08-23 00:13:53
2644
原创 【读书笔记】代码大全
1.软件构建即编程,主要包括编码与调试、详细设计、规划构建、单元测试、集成、集成测试。构建是软件开发的核心活动,主要精力集中之处,产物是源代码。 2.软件的隐喻——建筑 3.三思而后行:前期准备(设计蓝图和建筑许可证在软件业的等价物,包括问题/产品定义、需求分析、架构)——目的:尽早发现并处理问题,识别并降低风险 3.1 前期准备的重要性:类比 在一个被污染了的环境中,水虱在受到核沾染的水
2012-05-01 15:24:27
2268
原创 桥接模式:从操作系统的可移植性说起
桥接模式:将抽象部分与它的实现部分分离,使得二者可以独立地变化。(说实话,这个很难理解!!!) 抽象部分:继承关系里的抽象类,一般位于上层,平台无关 实现部分:继承关系里的实现类,一般位于底层,平台相关、实现细节 还是不理解,看实例讲解吧! 比如对一个操作系统来说,平台无关的是高层代码,属于抽象部分,而底层Bootloader、驱动程序则属于实现部分,是平台相关的。这里假设该操作系统具有良
2012-03-26 23:12:22
5562
1
原创 【读书笔记】HeadFirst设计模式——代理和装饰者
代理——控制对主题的访问,有时控制主题的创建,完全代替主题,或者什么都不做,只是简单转发 装饰者——只添加新功能,不做其他控制 从使用者的角度看,代理一般不改变对象行为,装饰肯定会增加对象行为。 代理: 装饰者:
2012-03-25 01:36:50
1561
1
原创 【读书笔记】HeadFirst设计模式——装饰者和适配器的区别
装饰者和被装饰者实现了同一个接口,给被装饰者增加功能。即装饰者和被装饰者一定是在同一继承体系的。 适配器和被适配者不实现同一接口,适配器将被适配者转换成客户适用的接口暴露给客户使用。 装饰者: 适配器:
2012-03-25 01:25:08
1563
原创 【读书笔记】HeadFirst设计模式——状态和策略
一、状态模式实现: 1.每个动作一个方法 2.每个状态一个类 二、状态模式和策略模式的区别: 状态模式——状态频繁的发生变化 策略模式——策略在制定后,一般不变 状态: 策略:
2012-03-25 01:22:02
1329
原创 【读书笔记】HeadFirst设计模式——命令模式简述
今天又复习了一遍命令模式 命令模式是指,将“请求”封装成命令对象。命令对象是通过封装接收者和绑定一组动作来封装请求的。 通过命令模式,将动作的请求者和动作的执行者进行解耦。即请求的调用者只接收并处理命令对象,但并不知道命令对象所封装的特定接收者。 command模式的结构图: 即,客户使用命令接收者(Receiver)来创建命令对象(ConcreteCommand),并将命令对象交
2012-03-21 00:04:32
1337
原创 【读书笔记】HeadFirst设计模式——单件不简单:详述实现Singleton模式需要考虑的方方面面
(参考: 深入浅出单实例Singleton设计模式 ) 什么是单件? 单件就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。——GOF 单件模式简单吗? 简单,的确简单,因为只有一个类。 单件不简单! 其实单件并不见得简单,而且还有点小复杂。其复杂度正是为了保证单件所要达到“仅有一个实例”的宏伟目标而引起的。 当然在一般情况下,单件是简单的。但是在考虑了懒加载、并发、
2012-03-20 00:59:12
1424
原创 【读书笔记】HeadFirst设计模式——工厂模式简述
简单工厂: 提供一个方法创建单个对象(方法内部往往包含对参数的判断来创建具体的对象),供外部对象使用——组合 工厂方法: 是一个特殊的模板方法,由子类创建具体的对象,供父类使用——继承 抽象工厂: 提供一组方法创建对象家族,供外部对象使用——组合 PS:简单工厂可以看成是简单的抽象工厂,只创建一个对象的抽象工厂
2012-03-17 02:32:22
1240
原创 【读书笔记】AgilePPP——系统设计:简单设计
系统设计的本质 •系统设计的本质是寻找隐藏于应用背后抽象 •需求和用例不会表述或提及这些抽象,它们太过专注细节以至于不能表达底层抽象的一般性 如何抽象 •抽象需要根据需求的全局来展开 •不能只按个别用例来展开 •抽象就是归纳、总结,并提炼需求的共同逻辑 关于数据库 •数据库是实现细节!应该尽可能的推迟考虑数据库。有太多的应用程序之所以和数据库绑定在一起而
2012-03-14 00:43:36
1121
原创 【读书笔记】AgilePPP——设计模式
Command模式 Command模式的3种用法 Active object模式 是对Command的应用 是实现多线程的基础技术 Active Object 并发模式在 Java 中的应用 http://www.ibm.com/developerworks/cn/java/j-lo-activeobject/index.html 模板方法与策略模式 为什么说组
2012-03-14 00:39:41
1163
原创 【读书笔记】深入理解Java虚拟机——垃圾收集
Ubuntu11.10下编译 OpenJDK7 http://blog.csdn.net/yhmhappy2006/article/details/7281710 基本垃圾收集算法 标记-清除(Mark-Sweep) 效率问题 内存碎片 适用于老年代 复制(Copying) 解决碎片问题 可用内存缩小(一半) 存活率高时,复制效率低 用于新生代 标记-整理(Mark-
2012-03-13 23:41:57
1757
原创 java问题诊断方法及工具
线上系统出现问题时,需要记载系统当前运行状况,总结一下,大概需要关注以下几个方面: 1.负载:——top命令 在linux上,执行top 等命令,关注load, Memory, CPU 等系统概况,以及关注CPU和memory 占用较多的进程。 使用top -H, 并按 shift+p 对CPU进行排序,找到当前占用CPU最多的线程。(top -u bpm -H),-H 按线程显示,否则
2012-03-08 17:40:06
1843
原创 java thread dump相关文章
文章: 1.Thread Dump分析:http://blog.csdn.net/wanyanxgf/article/details/6944987 2.jstack和线程dump分析:http://jameswxx.iteye.com/blog/1041173 3. thread dump :http://blog.sina.com.cn/s/blog_53b6edca0100g
2012-03-08 17:18:48
1670
原创 Ubuntu11.10下解决 jmap等jdk工具attach pid错误
1.错误案例 nathan@ubuntu:~/Downloads$ jmap -heap 3991 Attaching to process ID 3991, please wait... Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
2012-02-27 21:40:36
9870
原创 Ubuntu11.10下编译 OpenJDK7
1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包 2. 安装编译工具包 如没安装aptitude,则先安装aptitude(sudo apt-get install aptitude) sudo aptitude build-dep openjdk-6 3.注意:Ubuntu系统的语言必须切
2012-02-22 00:14:28
3562
原创 Ubuntu安装后需要设置root密码
Ubuntu安装后root是没有默认的密码的,因为你还没给root设置密码,你第一个 user 是在 admin 组,他可以给 root 设置密码,所以大家不要费脑筋想当初自己设的密码是多少了,因为根本就不存在。 端口输入如下命令: sudo passwd root [sudo] password for you :---> 输入你的密码,不回显 Enter new UNIX pa
2012-02-17 01:34:59
1482
转载 ubuntu11.10下eclipse提示框背景色为黑色的解决方案
ubuntu下eclipse提示框背景色为黑色看起来很不舒服,这是因为eclipse默认使用系统的主题,ubuntu11.10以前的版本可以通过 系统设置>外观>修改主题 自定义颜色来修改。但ubuntu11.10下不再提供直接修改主题的接口,只能修改文件:/usr/share/themes/Ambiance/gtk-2.0/gtkrc 首先修改只读权限,然后打开编辑,第一行的如下四
2012-02-17 01:11:07
2146
转载 java 内部工作线程介绍
Java程序运行的过程中,不但包括开发者启动的主线程和子线程。还包括很多内部线程。了解这些线程,对了解Java工作原理,及复杂环境下debug会有帮助。 首先需要查看Java程序的内部线程,我使用以下两种方法查看Java下的线程: 1.Jconsole——JDK自带的JMX查看管理工具(GUI)。 2.Linux下使用kill -3 pr
2012-02-15 23:55:03
4218
原创 Java编译、反编译、查看字节码
编译:javac -g Foo.java 看字节码:javap -c -s -l -verbose Foo 反编译成Java: 1)下载jad.exe(http://www.varaneckas.com/jad)+eclipse插件jadclipse(http://sourceforge.net/projects/jadclipse/)
2012-02-13 23:27:20
2363
原创 Class.froName 的过程
Class.froName 的过程 测试代码 package test; import org.junit.Test; public class ClassForNameTest { @Test public void testMap() throws ClassNotFoundException { Class.forName("ClassForNameTest.java");
2012-02-10 00:29:16
1166
转载 源代码就是设计(Jack Reeves著)
源代码就是设计 Jack Reeves著 邓辉 译 本文摘自《敏捷软件开发:原则、模式与实践》(清华大学出版社,2003年9月版)。这是一篇伟大的论文,该文撰写于1992年,作者在当时就能有这样的反思,实在是非常了不起。 至今,我仍能记起当我顿悟并最终产生下面文章时所在的地方。那是1986年的夏天,我在加利福尼亚中国湖海军武器中心担任临时顾问。在这期间,我有幸参加了一
2012-02-05 01:21:43
3341
转载 Bridge模式
一、 桥梁(Bridge)模式 桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。 注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为Bridge模式中蕴涵了很多设
2012-02-02 00:50:01
9221
原创 【读书笔记】AgilePPP——咖啡的启示
按行为划分系统 •程序的中心是行为 •不基于行为的系统划分,基本上是严重错误的。 •正是系统的行为为我们提供了第一个关于应该如何划分系统的线索 水蒸气类 •没有任何成员变量、状态 •只是一个调用转换器 •水蒸气类没有存在的必要 虚拟抽象 •抽象是非常微妙的 •对抽象类,多问问:谁使用它们? •一个仅仅含有抽象方法并且不具有任何使用者的类,完全是一个无用的类
2012-01-09 00:11:41
1015
转载 CSS 参考手册
CSS 参考手册 Previous Page Next Page 请点击表格中属性列的链接,可以查看相关属性的详细信息。 CSS 属性组: 背景文本字体边框和轮廓外边距内边距列表内容生成尺寸定位打印表格伪类伪元素 提示和注释: 属性:“属性” 列指向语法、实例、浏览器支持等内容。 CSS:"CSS" 列指示属性是在哪个 CSS 版本中
2012-01-07 23:19:51
812
原创 使用命令模式实现简单的支持撤销的计算器
1.支持的操作符有 "+", "-", "*", "/" 2.撤销符号为" 3.例如输入"1", "+", "2", " 4.例如输入"100", "/", "2", " 要求:1)使用TDD 2)使用命令模式 5.简单类图设计 6.单元测试 package com.pattern.command; import junit.framewor
2011-12-16 01:24:16
1864
转载 oracle sysdate,systimestamp,current_date,current_timestamp
select sysdate,systimestamp,current_date,current_timestamp from dual; 这条语句返回 系统当前时间的三个版本,也有人这么说 叫做返回系统当前session所在时区的默认时间。 sysdate返回的是系统的时间。 systimestamp也是当前系统的时间戳。 CURRENT_TIMESTAMP 与时区设置有关,
2011-12-14 23:57:50
8741
1
原创 【读书笔记】AgilePPP——敏捷设计
敏捷设计 •全局视图和软件一起演化 •设计尽可能适合当前系统,关注当前系统结构 •增量地演化出系统最佳架构和设计 •设计和架构过程是持续不断进行的 •从根本上讲,源代码就是设计 •敏捷设计是一个过程,不是一个事件,是一个持续的应用原则、模式以及实践来改进软件结构和可读性的过程 •敏捷设计步骤 –遵循敏捷实践去发现问题 –应用设计原则去诊断问题 –应用适当模式去解决问题
2011-12-05 23:45:23
814
原创 【读书笔记】AgilePPP——XP实践
完整团队 •客户、管理者、开发紧密工作在一起。 •客户 –指定义产品特性并排列特性优先级的人或团体。 –同一公司的业务分析师、质量保证专家、市场专家;用户团体的代表;支付开发费用的人。 –都是能和团队一起工作的成员。 •客户或能代替客户的人最好和开发在同一个房间工作。 用户故事 •了解需求只要做到能估算的程度就够了。 •必须知道存在很多细节及细节分类,但不必知道特
2011-12-05 23:39:30
789
原创 一个简单的示例揭秘LSP原则真谛
对LSP的理解,之前只停留在表面,并未深入理解。表面理解是指认为LSP就是仅仅依靠面向对象多态的特性,在使用基类对象的地方都能使用子类对象简单的替换。这还不是严格的遵循LSP。真正的要遵循LSP原则,是必须子类和基类行为上的绝对一致。基于契约的设计可以很好的保证了对LSP的遵循。 下面简单的java代码,揭示了LSP真谛: package com.oop.lsp; public cl
2011-12-01 00:03:09
3068
原创 【读书笔记】AgilePPP——敏捷宣言及12条原则
人的力量 •过程和技术对于项目的结果只有次要的影响,首要的影响是人。 •如果项目要取得成功,必须构建起具有合作精神、自组织的团队。 •凝聚在一起的软件团队是最强大的软件开发力量。 敏捷宣言 •人和交互 > 过程和工具 •可以工作的软件> 面面俱到的文档 •客户合作 > 合同谈判 •随时应对变化> 遵循计划 人和交互 >过程和工具 •沟通能力比技术能力更重要
2011-11-21 23:39:28
778
原创 【读书笔记】TiJava——并发
函数型语言 •Erlang:大量使用并发的时候使用 协作式和抢占式 •协作多线程、协作式系统 –每个任务自动放弃控制 –同时执行的线程数无限制 –适合处理大量的仿真元素 线程与设计 •线程使你能够创建更加松耦合的设计 •线程的使用 –实现Runable –使用Thread •Thread.yield——不能依赖 –将cpu从一个线程让给另一个线程
2011-11-20 21:31:32
864
原创 【读书笔记】TiJava——内部类使用范例:温室控制器
控制器抽象层,包括抽象事件的定义及控制器的定义: public abstract class Event { private long eventTime; protected final long delayTime; public Event(long delayTime) { this.delayTime = delayTime; } public void star
2011-11-17 23:48:02
540
原创 敏捷术语收集
XP(Extreme Programming) http://xprogramming.com/index.php KISS(Keep it simple, Stupid!) http://en.wikipedia.org/wiki/KISS_principle YAGNI(You Aren't Going to Need It) http://www.artima.com/weblog
2011-11-17 15:32:28
777
转载 如何在面试中发现优秀程序员
我曾在一次面试中要求一个很有经验的嵌入式软件开发人员写出一个反转一段字符串并输出到屏幕上的程序。他在这个题目上挣扎了很久。这个家伙是个很神奇的人。你给他一些没用的零件,他能建造一个机器人,并能用程序控制它在屋里走来走去。他曾经参与过研制卫星,并且这个卫星现在正在轨运行。他只用左脑都比我能干。但是对于这个题目他却从来、从来没机会干过:在屏幕上显示什么东西。 有些人就有这种技能,能在面试中问出正确的
2011-11-17 00:46:29
989
原创 【读书笔记】TiJava——注解
内置注解 •内置注解 –@Override –@Deprecated –@SuppressWarnings •元注解 –@Target –@Retention –@Documented –@Inherited 编写注解处理器 •内置注解很少,打多时候,程序员自定义注解,并编写处理器处理它们 •使用的反射方法: –Class.getDeclaredM
2011-10-27 23:57:37
566
转载 Oracle数据库如何为表解锁
1、执行下面的SQL,找到被锁的表: select b.owner table_owner,b.object_name,c.username,c.sid,c.serial# from v$locked_object a,dba_objects b,v$session c where a.object_id=b.object_id and c.sid=a.sessio
2011-10-26 18:45:51
823
原创 【读书笔记】TiJava——枚举类型
枚举类型 特性 •继承自java.lang.Enum •values()返回枚举数组 •自动提供equals和hashCode方法 •自动实现Comparable和Serializable接口 •可以用==比较两个枚举值 •默认name()等同toString() •valueOf将字符串名称转换为枚举类型值 添加方法 •枚举定义必须在方法定义之前 •枚举定义
2011-10-26 00:31:25
800
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅