qqjianyue代码工

砌java代码
posts - 62, comments - 9, trackbacks - 0, articles - 10
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要: 基本javascript事件的列表介绍  阅读全文

posted @ 2009-05-22 15:51 Qzi 阅读(367) | 评论 (0)编辑 收藏

     摘要: 首先介绍一个网站,我很多书本都是在上面下载的,很好。http://www.freebookspot.in/
我现在学习的书本是:Pro Javascript Design Pattern

首先简单地为优雅的Javascript代码开个头

运用设计模式的三大原因:
可维护性
沟通交流性
性能追求
不使用设计模式的两大原因:
复杂性
性能追求
  阅读全文

posted @ 2009-05-16 10:36 Qzi 阅读(1811) | 评论 (2)编辑 收藏

函数:
import导入文件的路径、类型、和title,title用来标识你是否已导入这个文件用。
setStyle用于使导入的css有效,根据不同的浏览器,可能css生效的条件不同,反复无效与有效间切换,可以使得最后有效。
 1function $import(path, type, title) {
 2    var s, i;
 3    if (type == "js"{
 4        var ss = document.getElementsByTagName("script");
 5        for (i = 0; i < ss.length; i++{
 6            if (ss[i].src && ss[i].src.indexOf(path) != -1{
 7                return;
 8            }

 9        }

10        s = document.createElement("script");
11        s.type = "text/javascript";
12        s.src = path;
13    }
 else {
14        if (type == "css"{
15            var ls = document.getElementsByTagName("link");
16            for (i = 0; i < ls.length; i++{
17                if (ls[i].href && ls[i].href.indexOf(path) != -1{
18                    return;
19                }

20            }

21            s = document.createElement("link");
22            s.rel = "alternate stylesheet";
23            s.type = "text/css";
24            s.href = path;
25            s.title = title;
26            s.disabled = false;
27        }
 else {
28            return;
29        }

30    }

31    var head = document.getElementsByTagName("head")[0];
32    head.appendChild(s);
33}

34
35function setStyle(title) {
36    var i, links, eflag = false;
37    links = document.getElementsByTagName("link");
38    for (i = 0; links[i]; i++{
39        if (links[i].getAttribute("rel").indexOf("style"!= -1 && links[i].getAttribute("title")) {
40            links[i].disabled = true;
41            if (links[i].getAttribute("title").indexOf(title) != -1{
42                links[i].disabled = false;
43                eflag = true;
44            }

45        }

46    }

47    if (!eflag) {
48        $import("skin/" + title + "/default.css""css", title);
49        setStyle(title);
50    }

51}

posted @ 2009-02-18 12:43 Qzi 阅读(954) | 评论 (0)编辑 收藏

最大公约数:使用轮转相除法,它的原理是:(n1>n2)n1与n2的最大公约数等于n2与n1%n2的最大公约数,即
gcd(n1, n2)=gcd(n2, n1%n2)
最大公约数

素数筛选法:原理是:
1)0与1不是素数;
2)素数的2倍以上倍数不是素数
所以剔除这些剩下的就是素数了
素数筛选法


posted @ 2008-11-29 21:58 Qzi 阅读(416) | 评论 (0)编辑 收藏

http://wiki.ubuntu.org.cn/Tomcat%E8%AE%BE%E7%BD%AEJSP%E7%8E%AF%E5%A2%83

posted @ 2008-11-28 22:37 Qzi 阅读(288) | 评论 (0)编辑 收藏

jms:
(Java   Message   Service)    
  JMS定义了Java中访问消息中间件的接口。    
   
  JMS只是接口,并没有给予实现,实现JMS接口的消息中间件叫JMS   Provider,这样的消息中间件可以从Java里通过JMS接口进行调用。    
   
  JMS   消息模型    
  JMS消息由两部分构成:header和body。header包含消息的识别信息和路由信息,body包含消息的实际数据。    
   
  根据数据格式,JMS消息可分为以下五种:    
   
  BytesMessage   消息是字节流。    
  MapMessage   消息是一系列的命名和值的对应组合。    
  ObjectMessage   消息是一个流化的Java对象。    
  StreamMessage   消息是Java中的输入输出流。    
  TextMessage   消息是一个字符串,这种类型将会广泛用于XML格式的数据。

cms:
Content Management System,CMS其实就是内容管理系统,,,可以理解为,CMS帮你把一个网站的程序部分的事全做完了 你要做的只是一个网站里面美工的部份,搞几个静态网页模板,一个门户级的网站就出来了!

CMS,大概2004以前,如果想进行网站内容管理,基本上都是靠手工维护,但千变万化的信息流,但没有好的程序支持,还继续靠手工完成是不可能的事,如果有一个好的系统来支撑你的网站,那将节省大量的人力物力,开发者就可能给客户一个软件包,可以用它定期人工修改网站。只要你配置安装好,你的编辑,在线记者,更新员只要定期更新数据,剩下的事就交给CMS去处理

posted @ 2008-11-14 08:14 Qzi 阅读(191) | 评论 (0)编辑 收藏

基本类型:
布尔类型:boolean不能够自动也不能强制转换成其他类型,但是可以进行&,&&,|,||运算
字符类型:char(16)其他基本类型不能够自动转变为字符类型,但可以强制转换为char,但是可以有截断现象
整形类型:byte(8),short(16),int(32),long(64)初始化的时候都是使用整数字面量直接赋值,但是byte与byte,short与short变量相加,默认都得到int的值,所以必须强制转换才能够返回原来类型的值(例如:(byte)(b1+b2))
浮点类型:float(32),double(64)浮点数的字面量默认都是double类型,所以需要强制转换成float才能够初始化float,或者加上f或F后缀。(例如float f1 = 1.4F或者float f1 = (float)1.4

整形还可以使用八进制(以0开头的整形数字字面量)、十六进制(以0x开头的整形字面量)初始化;
浮点型:字面量不可以是八进制十六进制,但int可以自动转化为浮点,所以仍然可以使用8进制16进制初始化,但是可以使用浮点计数法初始化,同样可以加上f或d后缀,例1.23e+33F等
字符型char可以直接使用

unicode转义符:
\uXXXX 四个16进制的数,在文本里面就是代表着某个字符,所以可以'\uXXXX'初始化一个char,可以\u0022\uXXXX\u0022初始化一个String,因为刚好\u0022代表双引号。当然\uXXXX不能是双引号,否则就编译出错了。

自动类型转换:byte---short---int---long---float---double
但是short与char不能够相互自动转换,但是可以相互强制转换
整型字面量可以初始化char,只要不超过65535的范围,也就是也能够使用8进制16进制初始化,但是整型变量不能够赋值给char;
char可以自动转换成int及以上

变量声明与定义:
int[] intArray;    //OK
int intArray[];    //OK
前面的加上 “= new int[变量or常量]” 都是可以的,但是“= new int(5)”是错误的
int[] intArray[];  //OK,但是代表的是数组的数组
int[5] intArray;  //False
int intArray[5];  //False

三目运算符:
?:返回不同类型问题,跟C++稍微不同,无论返回值在第一表达式还是第二表达式,返回值都是根据高阶类型返回,例子:
true ? 'a' : 9          返回结果是字符类型,所以字符类型是高阶类型
true ? 'a' : 9.0       返回结果是浮点类型(对于double和float都是),所以浮点比字符类型高阶
ture ? 9 : 9.0        返回结果是浮点类型,明显
true ? "abc" : 9     返回结果是字符串类型,因为字符类型较高阶
true ? 对象1实例 : 对象2实例      返回结果是最大共同父类,所以如果其中一个是另外一个的子类,那么就返回父类,如果互不继承关系,则返回Object。

String总结:
首先声明,==判断是判断对象引用的实例是否相同,即实例是否真正在相同的位置
Object默认的equals方法与==是一样的(就是引用相同实例),String类重写equals方法和hashCode方法,只要内容相同就返回ture(一般自己写的类也建议重写equals方法和hashCode方法)。所以这时候==与equals就具有不相同意义了。
http://www.javaeye.com/topic/122206
1. 首先String不属于8种基本数据类型,String是一个对象。
 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
2. new String()和new String("")都是申明一个新的空字符串,是空串不是null;
3. String str="string";
String str1="string";
String str2=new String ("string");
String str3="str" + new String("ing");
关于常量池概念,java虚拟机在常量池中只维持一个字符串的示例,所以str与str1引用都是引用常量池里面的共同实例,关键的是只有常量池里面的String才是唯一的,new空间里面的并不是。
但是str2,str3(而且str2与str3的空间地址也肯定不一样的,引用的是新建空间堆里的实例,所以str==str1,str!=str2,str1!=str2,str1!=str3,str2!=str3
但是它们几个使用equals都是返回true的,因为String类的hashCode函数根据内容返回hashCode码,这个码相同,则equals就返回true了,具体的equals与hashCode解释可以参照《java核心技术 卷1 基础知识》
注意:成员函数intern() :
当一个String实例str调用intern()方法时,Java查找常量池中是否有相同Unicode的字符串常量,如果有,则返回其的引用,如果没有,则在常量池中增加一个Unicode等于str的字符串并返回它的引用;
所以:
String str1="string";
String str2=new String ("string");
str1==str2.intern()          返回true

posted @ 2008-11-09 10:26 Qzi 阅读(314) | 评论 (0)编辑 收藏

参考java core总结,java 5与之前的不同包括:

1.泛型编程

2.包装类的自动打包拆包

3.格式化输出:增加printf函数

4.StringBuilder类:非线程安全的StringBuffer

5.可变参数列表:声明方式public void mymethod(String arg1,Object… args),记住...

6.增强的for循环:for(type variable:数组或数组列表)

7.静态导入:import static 导入类 就可以使用本地方法一样使用导入类的静态方法

8.协变的返回类型,即override的函数可以返回原函数返回类型的子类型,而不是要求相同返回类型

9.控制台输入

10.内容窗格授权:JframeJDialogJApplet可以使用addsetLayout函数,以前需要getContentPane().add(component)getContentPane().setLayout(manager);

posted @ 2008-10-21 20:45 Qzi 阅读(235) | 评论 (0)编辑 收藏

 

测试:定义为在受控的条件下对应用程序进行操作,以对程序质量进行评估

 

质量:可以定义为产品的优点(特性)减去其中存在的问题(bug

 

测试的重要性:测试的反面是不测试,即把程序验证工作都丢到软件开发完毕或者交付给客户。辩驳观点是:越迟发现程序的问题,修复其的成本越高。

 

测试人员做什么:保证程序的bug是影响最小的bug,将程序的bug降到最小风险。

 

测试与QAQuality Assurance)的区别:QA关注软件工程的过程,通过改善过程提高软件的质量,他不对软件进行剖析以找出问题,而只是验证软件是否满足一套已定义的质量标准和用户协议。

测试更关心的是剖析软件,观察软件的运行,并在质量内部层次进行报告,发现软件的bug

 

测试人员素质:验证、检测、防范、反映。

 

bug:是没有预料到的行为,软件做了某些认为是错误的事情。

 

自动化测试:使用软件工具来代替手工进行的一系列动作,通常使用脚本或者代码驱动应用程序,可以通过可视用户界面完成,或者直接命令模拟客户端功能。

构建版本验证测试(Build verification test, BVT)针对软件最新版本而做的一些列自动化测试;回归测试(Regression testing)测试以前曾经正常工作的场景,确保代码修改后没有打破原来的功能或者产生其他方面的副作用。

posted @ 2008-10-21 20:43 Qzi 阅读(218) | 评论 (0)编辑 收藏

线程生命周期:新建线程、排队、运行、等待、死亡,明显包含了下面线程生存期的三种状态。

线程生存期三种状态:就绪、运行、等待(挂起)

与线程相关的一些函数区别:

线程暂停或者停止:stopsuspendsleepwait

成员方法stop会解除由线程获得的所有锁定,并且使线程进入死亡状态,相当于run方法的被强制中断;

成员方法suspend仍然持有线程之前的所有锁定,并且使线程进入等待状态,需要使用resume重激活;

静态方法 sleep不释放对象锁,可以指定暂停线程的mini Seconds数,暂停当前线程;

成员方法wait导致本线程放弃对象锁,进入挂起状态,并且需要通过notify或者notifyAll来使线程进入就绪状态;

 

线程池机制:

线程池管理器:创建销毁线程池、将工作线程放入线程池

工作线程:执行任务(即任务接口)的线程,在没有任务时候等待

任务队列:提供线程申请缓冲机制

任务接口:规定任务的入口、任务执行完后的收尾工作、任务的执行状态

posted @ 2008-10-21 20:43 Qzi 阅读(256) | 评论 (0)编辑 收藏

仅列出标题
共5页: 上一页 1 2 3 4 5 下一页