1. Java 中,常量 true、false、null 都是小写。
2. 多线程是 Java 程序的并发机制,它能同步共享数据、处理不同事件。
3. 算法基本特征是可行性、确定性、有穷性、拥有足够的情报。
4. 数据库管理系统提供了数据的定义、操纵、运行控制功能。
5. 计算机软件由两部分组成,一部分是机器可执行的程序和数据,另一部分是机器不可执行的,与软件开发、运行、维护、使用有关的文档。
6. 转义字符以反斜杠(/)开头。
7. Java 原文件中最多只能有一个Public类,其他类的个数不限。
8. 在 Java 程序中,通过类的定义只能实现单重继承,但用过接口的定义可以实现多重继承关系。
9. 如果一个 Java 源程序文件中定义了4个类,则使用 Sun 公司的 JDK 编译器 javac 编译该源程序文件,将生成4个文件,扩展名为 class 的字节码文件。
10. 位运算符用来对二进制位进行操作,操作只能为 整数 和字符型数据。
11. 字符类型变量已 char 类型表示,它在内存中占 16 位 bit。
12. Java 虚拟机(JVM)的执行过程有 3 个特点:多线程、动态连接、异常处理。
13. 在 AWT 包中,创建一个具有10行、45列的多行文本区域对象 ta 的语句为 TextArea ta = new TextArea(10, 45);
14. 根据程序的结构和运行环境不同,Java 源程序分为两类,即 JavaApplicAtion 程序和 JavaApplic 程序。
15. Java 语言中的浮点类型数据根据数据储存长度和数值精度的不同,进一步分为 float 和 double 两种类型。
16. 按照变量用域分类,变量有 局部变量、类变量 和 方法参数、异常处理参数。
17. 1991 年,Sun 公司的 Jame Gosling、Bill Joe 等人,为电视、调制烤面包机等家用电器的交互操作开发了一个 Oak 软件,它是 Java 的前身。
18. 设 x = 2 则表达式 (x++)*3 的值是 6 。
19. 在 Java 的基本数据类型中,char 类型数据占 2 字节内存空间,int 型占用 4 字节内存空间。
20. catch 字句都带一个参数,该参数是某个异常的类及其变量名,chtch 用该参数去抛出异常对象的类进行 匹配。
21. 整型常量在计算中默认占 32 位。
22. Java 语言中,为将源代码翻译成字节码文件时产生的错误称为编译错误。而将程序在运行中产生的错误称为运行错误。
23. J2SDK 中 path 环境变量指定了 JDK 命令搜索路径,classpath 指定了 java 类路径。
24. Java 语言的各种数据类型之间提供了自动转换,如第一种操作数是 byte 类型,第二种操作数是 float 类型,结果是 float 类型。
25. 在线程中普通优先级的线程,其优先级默认值为 5 。
26. Java 程序包括原代码(.java 文件)、由便宜器生成的类(.class 文件)、由归档工具生成的jar(.jar 文件)、对象状态序列化(.ser)文件。
27. Socket 是用来实现客户与服务器之间的用心,Java 在 Socket 中,提供多线程机制,对实现大量客户通信提供了很好的基础。
28. Java 语言的各种数据类型之间提供了两种转换:自动转换、强制转换。
29. 在长度为 n 的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 log2n 。
30. Java 语言通过接口支持多重继承,使类具有更灵活的扩展性。
31. 软件概要设计的主要任务就是软件结构设计。
32. Java 是一个地方落程序语言,简单易学、利用了面向对象的技术基础,但又独立于硬件结构,具有移植性、健壮性、安全性、高性能。
33. 整型数分整型常量和整型变量。
34. 阻塞状态根据产生的原因可分为对象锁阻塞、等待阻塞和其他阻塞。
35. 每个 Java 应用程序可以包含许多方法,但是必须只能有一个 main 方法。
36. 线程是一个用户级的实体,线程结果驻留在用户空间中,能够被普通的相应级别方法直接访问。
37. 过滤字节流输出都是 FilterOutputStream 抽象类的子类。
38. 系统运行时,通过垃圾回收机制周期性地释放无用对象所使用的内存,完成对象的清除。
39. 继承性主要情调子类在父类的基础上取长补短,而多态性主要强调的是类与类之间的传输。
40. 在Java 语言中,所有的变量、常量、类、对象都是用标识符命名的。
41. 在面向对象的程序设计中,类描述的是具有相似性质的一组对象。
42. 在编执行 Java 的程序过程中需要用到一些工具,SUN 公司为我们提供了 JDK 工具,它主要包括:javac.exe、java.exe、javadoc.exe、javap.exe、jbd.exe。
43. RaradomAccessFile 所实现的接口是 DataInput 和 DatOatput 接口。
44. fina 属性是专门定义常值变量的保留字。
45. Java 的类库具有跨平台的特点,保证了软件的可移植性。
46. 模式/内模式映射为数据提供了物理数据独立性。
47. 变量作用域是整个类。
48. 对话框(Dialog)是 Windows 类的子类。
49. Java 语言中,后缀名为 .java 的源代码文件编译后形成后缀名为 .class 的字节码软件。
50. 设计报表时,将各种类型的文本和字段控件放在报表“设计”窗体中的各个区域内。
51. 通常,将软件的产品从提出、实现、使用、维护到停止使用退役的过程称为软件的生命周期。
52. Java 语言中 Ojbect 是所有类的根。
53. 在 32 位计算机中,一个字长等于 4 个字节。
54. 程序风格是只编写程序时所标写出的特点、习惯和逻辑思路等,遵循清晰第一、效率第二的原则。
55. Java 语言使用 Unicode 字符集,它的字母包含:'A'-'Z','a'-'z'以及序号大于 0XC0 的所有符号。
56. 字符串分为两大类,一类是字符串常量,使用 String 类的对象表示;另一类是字符串变量,使用 StringBuffer 类的对象表示。
57. Java 可以跨平台的原因是因为有 Java 虚拟机。
58. Java 中的字符串输出流都是抽象类外部命令的子类。
59. 变量是程序中的基本储存单元之一,由变量名、变量类型、变量属性、变量初始值组成。
60. 浮点型数据属于实型数据,分 float 和 double 两种类型。
61. Java 语言的执行模式是半编译和半解释型。
62. 抽象方法是一种有方法头、没有具体方法体和操作实现的方法,该方法必须在抽象类中定义。
63. 定义初始值为 10 的 10 次方的长整形变量 var 的语句是 long var (long)le10;
64. 计算机软件分为系统软件和应用软件,操作系统属于系统软件。
65. 程序设计的表示方法可以分为图形、表格和语言三类。
66. 类库主要包括核心 java 包、javax 包 和 org 扩展包。
67. 数据库管理系统常见的数据模型有层次模型、网状模型和关系模型三种。
68. E-mail 地址由用户名和域名两部分组成,这两部分的分隔符为 @。
69. 关系代表数主要运算有并、交、差、选择、投影、笛卡儿积、自然连接、0连接和改名。
70. Java 的产品主流操作系统平台是 Solaris、Windows 和 Macintosh 。
71. Swing 的事件处理机制包括事件源、事件和事件处理者。
72. 对于一个长度为 n 的线性表,用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是 (n-1)/2 。
73. URL 是 Unform Resource Locator 的缩写。
74. Java 程序的安全性体现在多个层次上,在编译层有语法检查;在解释层,有字节码校验器、测试代码段格式和规则检查,操作数堆栈的上溢或下溢,代码参数类型和法性等;在平台上,通过配置策略,可设定访问资源域,而无需区分本地或远程。
75. 接口是一种只包含抽象方法或常量的一种特出抽象类。
76. 在数据库设计中,把数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,这通常称为数据字典。
77. Java 有两类应用程序,Java Application 和 Java Applic。
78. 数据结构分为逻辑结构与储存结构,线性链表属于存储结构。
79. Java 解释器采用生成与体系结构无关的字节代码指令的技术,只需安装 Java 运行系统,就可保证 Java 程序 在网络的任何地方运行。
80. 程序设计基本结构有顺序结构、选择结构、循环结构三种。
81. 耦合和内聚是评价模块独立性的两个主要标准,其中内聚反映了模块内各成分之间的联系。
82. Java 的体系结构中,最下层是移植接口、配置器、Java OS 组成,保证了 Java 体系结构可以跨平台。
83. 设有整形数组的定义 int[] a = new int[8]; 则 a.lenglh 的值为 8 。
84. 凡生成 StringBuffer 一个对象后,还可以用 setLenglh() 方法和 ensureCapaciy() 方法来设定缓存大小。
85. Java Application 应用程序的编写和执行分三步进行:编写源代码、编译源代码、解释执行。
86. 计算机硬件由运算器、控制器、储存器、输入设备、输出设备五大部件组成。
87. 通常把用户的要求传变成软件产品的过程叫做软件开发过程。
88. Java 的数据类型必须实例化后才能使用,他们通过变量或常量来实例化。
89. 在面向对象方法中,类之间共享属性和操作的机制称为继承。
90. 在 Windows 环境下,当进行复制操作时,其复制的内容将存放在剪贴板中。
91. 变量类型有两大类,基本类型和复合类型。
92. 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的关系属于一对多(1:N) 的联系。
93. Java 语言提供了 byte、short、int、long 四种类型的整型变量。
94. 异常对象异常和被传递提交给 Java 运行系统的过程称为抛出异常。
95. J2ME 是为嵌入式和移动设备提供的 Java 平台,它的体系结构由 profiles、Configueation 和OpionalPachages 组成。
96. 变量作用域是制访问变量的范围,局部变量在方法中声明,作用域是方法代码段。
97. 若 x=5, y=10 则 x > y && x++ == y-- 的逻辑值为 False 。
98. 关系代数中,运算的三要素是指运算对象、运算符和运算结果。
99. 数据库设计分为以下六个设计阶段:需求分析阶段、数据库概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
100. 从 Windows 环境进入 MS-DOS 方式后,返回 Windows 环境的 DOS 命令为 exit 。
101. 重复结构分为当型循环和直到型循环。
102. Java 语言没有无符号整数类型、指针类型、结构类型、枚举类型,这使得 Java 变成简单易学。
103. Java 语言用字节码进行解释执行。
104. log 类整型常量书写表示时,在数字的后面加 L 或 l 。
105. 当用户在 TextField 中输入一行文字后,按回车,实现 ActionListener 接口可实现对事件的响应。
106. Java 中任何数据类型的数据(包括基本类型和组合类型)都可以通过 == 或 != 运算符来比较是否相等。
107. 符点类型数据中,flat 类型具有占内存小、运算快的优点。
108. GregorianCalendar 日历类提供日期和时间的表示,它可以格里历(即阳历)来计算。
109. 自动类型转换允许在赋值和计算时由编译系统按照指定的优先次序自动完成。它门能将数位少的数据类型向数位多的数据类型转换。
110. 在 Java 语言中,如数字后没有字母,计算机默认为 deulde 类型。
111. 算术运算符的优先级按照下面次序排列 ++ 和 -- 的级别最高,然后是 * 和 / 以及 % 而 + 和 - 的级别最底。
112. 数组、堆栈、队列和链表都是线形数据结构。
113. Java 语言是 1995 年 5 月由 Sun World 大会上发布的。从此,这一新一代的网络计算机语言受到了广泛的青睐,很快就起了 Java 的热潮。
114. Java 是一种网络编程语言,它避免了许多其他编程语言的缺点,更好地利用了当前软件新技术,是一种新概念。
115. 数据的逻辑结构有线性结构和非线性结构两大类。
116. Java 语言中,boolean 型常量只有 true 和 false 两个值。
117. 如果子类中覆盖了父类中的同名方法,则在子类中调用父类中的同名方法时用关键字 super 在一个类的内部可以直接调用本类的对象,也可以通过关键字 this 来调用。
118. 如果子类中的某个方法名、返回值类型和参数表与它的父类中的某个方法完全一样,则称子类的这个方法覆盖了父类的同名方法。
119. Java Applet 应用程序的编写和执行共分为编写代码、编写 HTML 文件调用该小程序、编译过程和解释过程四步进行。
120. System 是一个特出类,他类似一个 final 类,所有的方法都用类变量来调用。
121. 构造方法是类中的一个特殊方法,用它来定义对象的初始状态。
122. 字符变量以 char 类型表示,它在内存中占用 16 位 Bit 。
123. 捕获异常的统一出口通过 finally 从句,因此对 catch 而言,无论由那个捕获异常,最后一定执行该句。
124. 每一个 applet 必须定义为 Applet 的字类。
125. CRC 技术的全称是 CyclicRedundancyCheck 。
126. 按照线程模型,一个具体的线程也是由虚拟的 CPU、代码与数据组成,其中代码与数据构成了线程体,线程的行为由它决定。
127. Java 类库提供的 Applet 类是所有 Applet 程序根。
128. 顺序存储方法是把逻辑上相邻的结点储存到物理位置相邻的单元中。
129. 国际化命令只包含一个命令 native2ascii 该命令将包含有本地编码符的文件转换为 Unicode 编码符的文件。
130. 若 a, b 为 int 型变量且以分别赋值为 2,6 则表达式 (a++) + (++b) + a * b 的值是 (2 + 7) + 3 * 7 = 30。
131. Java 提供的类库支持 TCP/IP 协议,应用程序通过 URL 地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。
132. 在 Java 语言中提供的四种整形变量中,Byte 类型表示的数字范围最小。
133. Java 中新建的线程调用 start() 方法,如 mythread.start() 将使线程的状态从“新建状态”(new)转换为“可运行状态”。
134. Java 是区分大小写的。源文件名与程序文件名必须相同,其中扩展名为 .java 源文件中最多只有一个 public 类,其他类的个数不限。
135. 在一个类的内部,潜套定义的类称为内部类。
136. Java 的符合数据类型有:类、数组、变量。
137. E/R 图可以直接转换关系,其每个属性都对应于关系中的一个属性;E/R 图的联系转换为关系时,其属性由两部分组成:关于联系有关的键码属性(集):该联系本身的属性。。
138. 设 a = 8 则表达式 a>>>2 的值是 2 。
139. 标识符是以英文、下划线(_)、美圆符($)作为首字母的字符序列。
140. 软件可维护性度量的七个质量特征性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
141. Java 设计有自动回收垃圾功能,这不仅防止了内存地址计算错误的问题,也省去了变成时对内存进行分配的烦恼。
142. Java 中访问限定符有 public、protected、private、default 等。
143. 数据型包括简单的数据类型和复合数据类型。简单数据类型有包含数值类型、字符类型、布尔类型三大类。
144. 创建一个名为 MyPackage 的包的语句是 Package MyPackage;
145. Java 本身的编译器与 Java 语言编写,运行系统的虚拟机用 C 语言实现,这样系统本身也具有可移植性。
146. 一个类可以直接过间接的祖先中继承所有属性和方法。采用这个方法提高了软件的可重用性。
147. 给 float 型的变量赋值时,要在数字后面填加 F 或 f 。
148. 我们在Java 程序中把关键字 super 加到方法名称的面前,来实现子类调用父类的方法。
149. 数据库管理的常见数据模型有层壮、网状、和关系三种。
150. class 类是由编译器自动生成对象的一个特出类,它伴随每个类。
151. 关系操作的特点是集合操作。
152. 变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参数和异常处理参数。
153. Java 语言通过接口支持多重继承,使类继承具有更灵活的扩展性。
154. Java 源文程序文件编译后产生的文件被称为字节码文件,其扩展名为 .class 。
155. 软件工程研究的内容主要包含:软件开发技术和软件工程管理。
156. 抽象类不能实例化。
157. 字符常量是用单引号括起来的一个字符,用双引号括起来的是字符串。
158. 在 Java 的基本数据类型中,char 型采用 Unicode 编码方案,每个 Unicode 码占用 2 自己的内存空间。
159. Applet 是 Java 的一类特殊应用程序,它嵌入 HTML 中,随主页发布到因特网上。
160. Java 源代码文件夹中,可以有 0 或 N 个 import 语句。
161. JDBO 的类都被汇集在 Java.SQL 包中,在安装 JavaJDK1.1 或更高版本时会自动安装。
162. Java 语言不允许使用指针访问内存,更不允许使用指针数组访问内存。
163. setLayout() 方法是所有容器的父类 Container 的方法。
164. 定义布尔型变量的的关键字是 nicode 。
165. Thread 类是提供线程操作管理的类。
166. 字符变量以 char 类型表示,它在内存中占 16 个 bit 。
167. 计算机网络分为局域网、城域网和广域网,因特网属于广域网。
168. 程序中使用了字符串函数(如strlen),则必须包含头文件名为 String.h 。
169. 对象是一组相关变量和相关方法的封装体,是类的一个实体例。
170. Java 编写好的程序首先由编译器转换为标准字节代码,然后由 Java 虚拟机去解释执行。
171. 布尔数据一般用于逻辑判断在流程中常用。[sub][/sub]
172. 微机中 ROM 的中文意义是只读存储器。
173. 在 Java 语言中,将后缀名为 .java 的源代码文件编译后形成后缀名为 .class 的字节码文件。
174. 如果容器采用 BorderLayout 进行布局管理,在 add() 方法添加构件的时候,必须注明添加到那个位置。
175. Java 的体系结构中,最下层是移植接口,最上层是 Java 应用程序 和 Applet 小程序。
176. 八进制整数 012 表示十进制 10 。
177. Java 程序中定义接口所使用的关键字是 interface 。
178. 字符常量中,\' 表示单撇号字符,\t 表示横向跳格。
179. 下面的语句生命一个常量并被赋值:
Boolean b1=5!=8
B1 的值是 True 。
1. 下面分别用 while、do-while 和 for 语句时间 1 至 10 累计求和。请在横线处填入适当的内容完成程序。
public class Sun {
public stasic void main(String[] args[]) {
System.out.println("\\n**** while 循环 ****");
int n = 10, sum = 0;
while(n > 0) {
sun += n;
n--;
}
System.out.println("sum is" + sum);
System.out.println("\\n**** do-while 循环 ****");
n = 0; sum = 0;
do {
sum += n;
n++;
} while(0 >= n);
System.out.println("sum is" + sum);
System.out.println("\\n**** for 循环 ****");
n = 1; sum = 0;
for(; 10 >= n; n++) {
sum += i;
}
System.out.println("sum is" + sum);
}
}
2. 执行以下程序段后:a = 6,b=8 。
int a = 5, b;
b = ++a *3;
3. 下面是一个类定义,请将程序补充完整。
import java.awt.*;
impott java.applet.*;
public class myprogram extends Apple }//定义小程序的主类
Label p1;
TextField in;
public void init() {
p1 = new label("请输入一个整数");
add(p1);
in = new TextField(8);
add(in)
}
}
4. 下列程序输出的结果是 m = 0 。
class Test {
public static void main(String args[]) {
int m = 6;
do {
m--;
} while (m > 0);
System.out.println("m=" + m);
}
}
5. 下面是用户程序对 Applet 类中方法 paint() 的重新定义。根据程序功能,在指定的空白处填上适当的语句或语法成分。
public void paint(Graphics g) {
g.DrawString("你好!", 10, 20);
}
6. 请在下划线处编写适当的语句,完成此程序使它能正确的执行。
import java.io.*;
public class LeapYear {
public staic void main(Strng arge[]) throws IOException {
InputStreamReader ir;
BufferedReader in;
System.out.pringln("输入年份是:");
Sting s = in.readLine();
int year = Integer.parseInt(s);
if (year % 4 == 0 && year % 100 != 0 ||year % 400 == 0) {
System.out.println("" + year + "年是闰年");
} else {
System.out.println("" + year + "年不是闰年");
}
}
}
7. 下面是用:
RandomAccessFile oureFile;
String s = "information to Append\n mon!\n";
oureFile = new RandomAccessFile oureFile("phone.number.numbers", "rw");
模式打开访问 oureFile 文件,并将在文件末尾加信息 s 的 addFile 的源程序。请在下划线添上合适的语句程序补充完整。
import java.io.*
class addFile {
public staic void main(String args[]) throws IOException {
RandomAccessFile oureFile;
String s = "information to Append\n mon!\n";
oureFile = new RandomAccessFile oureFile("phone.number.numbers", "rw");
oureFile.writebytes(s);
oureFile.close();
}
}
8. 以下程序的输出结果为 Message four 。
int x=0, y=4, z=5;
if (x > 2) {
if (5 > y) {
System.out.println("Message one");
} else {
System.out.println("Message tow");
}
} else if(z > 5) {
System.out.println("Message three");
} else {
System.out.println("Message four");
}
9. 下面是一个类的定义,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。
Class myclass {//定义名为 myclass 的类
static int var = 666;
static int get var() {
return var;
}
}
10. 下出下面程序的运算结果 Hollo!World! 。
impor java.io.*
public class abc {
public static void main(String args[]) {
String s1 = "Hello!";
String s2 = new String("World!");
System.out.pringln(s1.concat(s2));
}
}
11. 下列程序运行的结果是 HELLO! 。
import java.io.*;
public class UpperCase {
public static void main(String[] args) {
String s1 = "Hello!";
System.out.println(s1.toUpperCase());
}
}
12. 阅读以下程序,输出结果为 21 。
class D {
public static void main(System args[]) {
int d = 21;
Dec dec = new Dec();
dec.decrement(d);
System.out.println(d);
}
}
class Dec {
public void decrement(int b) {
b = b - 1;
}
}
13. 下面是拥护程序对 Applet 类中的方法 action() 的重新定义,功能为从单行文本编辑区 input 中输入数据赋给 k。TextField 类的对象 input 和 int 型 变量 K 已在类体中正确说明。
public nicode action(Event e, Object o) {
if (e.target == input) {
k = Integer.parseInt(input.getText());
}
repaint();
return true;
}
14. 下面是一个 Java 应用程序(Application),它的功能是在屏幕上输出26个英文字母,其中每个字母间隔一个制表符,请完成该程序。
public class Calss1 {
public static void main(String args[]) {
char c = 'a';
for (int i = 1; i <= 26; i++) {
System.out.print("\t" + (C++));
}
}
}
15. 下列程序实现从控制台输入并读取输出字符串。请将程序补充完整。
import java.io.*;
public class CharInput {
public static void main(String[] args) throws java.io.IOException {
String s;
InputStreamReader ir;
BufferedReader in;
ir = new InputStreamReader(System.in);
in = new BufferedReader(ir);
while((s = in.readLine()) != null) {
System.out.println("Read:" + s);
}
}
}
16. 下面程序的运行结果是 110 110 110 110 110 。
import java.io.*;
public class ABC {
public static void main(String[] args) {
int i;
int[] a = {11, 22, 33, 44, 55, 66, 77, 88, 99};
for(i = 0; i<=a.length / 2; i++)
System.out.print(a[i] + a[a.length - i - 1] + " ");
System.out.println();
}
}
17. 下面是打印出所有和为 1000 的连续整数(如:298,299,300,301,302 等)的程序,请在下划线处编写适当 的语句,完成此程序使他能正确运行。
public class Exercise42 {
public static void main(String[] arges) {
int i;//连续整数起点
int j;//连续整数终点
int k;//循环记数用
int sum;//计算连续整数集合
for(i = 1; i <= 1000; i++) {
j = sum = i;
while(sum <= 1000) {
sum += ++j;//Sum 为若干个连续整数之和
if(sum == 1000) {
for(k = i; k <= j; k++)
System.out.print(k + ",");
System.out.println();
}
}
}
}
}
18. 阅读以下程序,请写出结果 True 。
public class EqualsMethod{
public static void main(System args[]) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));
}
}
19. 设有数组定义:int MyIntArray[] = {10, 20, 30, 40, 50, 60, 70}; 则执行以下语句后输出的记过是 280 。
int s = 0;
for(int i = 0; s.length > i; i++) {
s += MyIntArray[i];
}
System.out.println(s);
20. 设有数组定义:int a[] = {11, 22, 33, 44, 55, 66, 77, 88, 99}; 则执行下列几个语句后输出的结果是 33 66 99 。
for(int i=0; a.length > i; i++) {
if (a[i] % 3 == 0) {
System.out.println(a[i] + " ");
}
21. 阅读下列程序,输出结果为 Hello!I lik Java! 。
import java.io.*
public class abc {
public ststic void main(String args[]) {
String s1 = "Hello!";
String s2 = new String("I like Java!");
System.out.println(s1 + "" + s2);
}
}
22. 以下程序输出 结果为:Boy 。
public class Short{
Public static void main(String[] args) {
String Buffer s = new StringBuffer("Boy");
if ((s.length()<3) && (s.appeng("男孩").equals("False")));
System.out.println("结果为:"+s)
}
}
23. 下列程序段输出的结果为 Value is 2.Velue is 3. 。
int a = 2;
switch(a) {
case 2:
System.out.print("Value is 2.");
case 3:
System.out.println("Value is 3.");
break;
default:
System.out.plintln("end");
}
1、如何混合使用Jsp和SSI #include?
在JSP中可以使用如下方式包含纯HTML:
但是如果data.inc中包含JSP CODE ,我们可以使用:
<%@include file="data.inc"%>
2、如何执行一个线程安全的JSP?
只需增加如下指令
<%@ page isThreadSafe="false" %>
3、JSP如何处理HTML FORM中的数据?
通过内置的request对象即可,如下:
<%
String item = request.getParameter("item");
int howMany = new Integer(request.getParameter("units")).intValue();
%>
4、在JSP如何包含一个静态文件?
静态包含如下:<%@ include file="copyright.html" %>
动态包含如下:
5、在JSP中如何使用注释?
主要有四中方法:
1。<%-- 与 --%>
2。//
3。/**与**/
4。
6、在JSP中如何执行浏览重定向?
使用如下方式即可:response.sendRedirect("http://ybwen.home.chinaren.com/index.html");
也能物理地改变HTTP HEADER属性,如下:
<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn="/newpath/index.html";
response.setHeader("Location",newLocn);
%>
7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?
把如下脚本加入到JSP文件的开始即可:
<%
response.setHeader("Cache-Control","no-store"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
8、在JSP中如何设置COOKIE?
COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置:
<%
Cookie mycookie = new Cookie("aName","aValue");
response.addCookie(mycookie);
%>
9、在JSP中如何删除一个COOKIE?
<%
Cookie killMyCookie = new Cookie("mycookie", null);
killMyCookie.setMaxAge(0);
killMyCookie.setPath("/");
response.addCookie(killMyCookie);
%>
10、在一个JSP的请求处理中如何停止JSP的执行
如下例:
<%
if (request.getParameter("wen") != null) {
// do something
} else {
return;
}
%>
11、在JSP中如何定义方法
你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:
<%!
public String howBadFrom(HttpServletRequest req) {
HttpSession ses = req.getSession();
...
return req.getRemoteHost();
}
%>
<%
out.print("in general,lao lee is not baddie ");
%>
<%= howBadFrom(request) %>
12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪
使用URL重写即可,如下:
hello1.jsp
<%@ page session="true" %>
<%
Integer num = new Integer(100);
session.putValue("num",num);
String url =response.encodeURL("hello2.jsp");
%>
>hello2.jsp
hello2.jsp
<%@ page session="true" %>
<%
Integer i= (Integer )session.getValue("num");
out.println("Num value in session is "+i.intValue());
%>
13、在JSP中能发送EMAIL吗
可以使用SUN的专用包:sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。
<%@ page import="sun.net.smtp.SmtpClient, java.io.*" %>
<%
String from="ybwen@sina.com";
String to="hewenjun@yeah.net, lei@who.com.cn";
try{
SmtpClient client = new SmtpClient("mail.xxxxx.xxx");
client.from(from);
client.to(to);
PrintStream message = client.startMessage();
message.println("To: " + to);
message.println("Subject: Sending email from JSP!");
message.println("This was sent from a JSP page!");
message.println();
message.println("Cool! :-)");
message.println();
message.println("Good Boy");
message.println("Im in genius.com");
message.println();
client.closeServer();
}
catch (IOException e){
System.out.println("ERROR SENDING EMAIL:"+e);
}
%>
14、在SERVLET中我能调用一个JSP错误页吗
当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。
protected void sendErrorRedirect(HttpServletRequest request,
HttpServletResponse response, String errorPageURL,
Throwable e)
throws ServletException, IOException {
request.setAttribute ("javax.servlet.jsp.jspException", e);
getServletConfig().getServletContext().
getRequestDispatcher(errorPageURL).forward(request,
response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) {
try {
// do something
} catch (Exception ex) {
try {
sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex);
} catch (Exception e) {
e.printStackTrace();
}
}
}
15、JSP和APPLET如何通讯
JSP如何与EJB SessionBean通讯
下面的代码段作了很好的示范
<%@ page import="javax.naming.*, javax.rmi.PortableRemoteObject,
foo.AccountHome, foo.Account" %>
<%!
//定义一个对SessionBeanHome接口实例的全局引用
AccountHome accHome=null;
public void jspInit() {
//获得Home接口实例
InitialContext cntxt = new InitialContext( );
Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB");
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
}
%>
<%
//实例化SessionBean
Account acct = accHome.create();
//调用远程方法
acct.doWhatever(...);
// 如此等等
%>
16、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中?
可以定义一个简单的函数来达到目的,如下:
<%!
String blanknull(String s) {
return (s == null) ? "" : s;
}
%>
然后在JSP的FORM中,可以这样使用
17、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)?
现提供两个解决方案:
A:使用HTTP,
B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如:
response.setContentType("application/x-msword");
然后想输出缓冲中写一些东东即可。
18、使用useBean标志初始化BEAN时如何接受初始化参数
使用如下两标签即可:
19、使用JSP如何获得客户浏览器的信息?
使用request.getHeader(String)即可
20、能象调用子程序一样调用JSP吗?
当然可以,用
21、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS?
<%@include file="abc.jsp"%>与
前一个为静态包含,而后一个为动态包含
22、JSP的缺点?
1。对JAVA程序进行调试没有好东东
2。因大多数的servlet引擎不支持connection pooling
3。Servlet引擎没有标准
4。JSP与其它脚本语言的交互
23、JSP能进行递归调用吗?
当然可以,如对form的提交给本页
34、如何实现JSP的国际化?
为各种版本提供resource bundles属性文件即可
25、在JSP中如何写文本文件?
使用PrintWriter对象,如:
<%@ page import="java.io.*" %>
<%
String str = "print me";
String nameOfTextFile = "/usr/anil/imp.txt";
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));
pw.println(str);
pw.close();
} catch(IOException e) {
out.println(e.getMessage());
}
%>
26、如何在JSP中包括绝对路径文件?
使用URLConnection即可。
27、在servlets和JSP之间能共享session对象吗?
当然可以,
HttpSession session = request.getSession(true);
session.putValue("variable","value");
28、JavaScript的变量能复制到JSP的SESSION中吗?
29、如何设置cookie在某一时间后过期?
用Cookie.setMaxAge(int)
30、如何获得当前的sessions数?
可以使用HttpSessionBindingListeners来跟踪
31、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗?
当然可以,可以为你的JSP文件定义一个别名:/jsp/=ybwen.genius.myPreprocessingServlet,而以/jsp/为前缀的文件可以使用
32、对一个JSP页,如果多个客户端同时请求它,同步可能吗?
在jsp:useBean语法中使用beanName有何好处?
beanName使用Beans.instantiate()初始化Bean
33、当我使用
使用response.sendRedirect("newURL")
34、如何转换JSP 0.9版本的文件到JSP1.1?
可使用sed/awk即可
35、使用JSP能设置HTML FORM中输入域的焦点,不用JavaScript?
没办法
36、使用JSP连接到数据库连接缓冲池的最好方法是什么?
1.使用JDBC2。0中带有此服务的Driver
2.使用提供有此服务的Application server
3.自己写
[/url]
[url=http://www.lanyueer.com/wyzz/color.htm]
[url=http://www.lanyueer.com/wyzz/chuangkou.htm][/url]
C:printf("祝大家元旦快乐");
C++ : cout<<"祝大家元旦快乐";
QBasic : Print "祝大家元旦快乐"
Asp : Response.Write "祝大家元旦快乐"
PHP : echo "祝大家元旦快乐";
JScript: alert("祝大家元旦快乐")
VBScript:MsgBox "祝大家元旦快乐"
Jscript:document.write("祝大家元旦快乐")
Delphi: ShowMessage('元旦快乐!');
VB: Msg("元旦快乐!")
VC: MessageBox("圣元旦快乐!");
shell: echo 元旦快乐
perl: print '元旦快乐
java: System.out.println("元旦快乐");
powerBuilder:messagebox("", "祝大家元旦快乐")
C Sharp: System.Console.WriteLine("元旦快乐");
asm: .data
mess db '元旦快乐',0
.data?
StdOut dd ?
CharOut dd ?
我想干嘛要改呢,倒是不太懂也是一个原因,其实很简单,我就是不想改,我觉得没有必要,于是今天还是自己写出来个例吧:
如果如下表格代码:
![]() |
改为后div code:

"??"的地方自己填上合适的数字就可以了.
最后附上css2.0工具代码的下载:http://www.csunet.cn/cxh/downview.asp?downl_ID=5
div的属性难记问题就解决了。。。
1:配置,链接access数据库是如此简单
2 : 模板引擎Smarty深入浅出介绍
Smarty技术是PHP的精髓所在,随着PHP版本的逐渐提高,原来的很多方法也许太过时了,下面我就针对最新的PHP5.1.1版本的使用,配置说说如何配置.
下面是一步步的来的,请注意:
1: 在官方下载模板库文件: http://smarty.php.net/download.php
下载了就解压,看见一个文件夹了,是个 smarty.x.x,打开,里面有个libs 文件夹,ok,注意这个东西就是我们要的.
2: 在你的网站目录下面,比方我的php网站IIS在物理硬盘的 d:/web/web/php下面,在这个文件夹下面建立:一个文件夹 test,然后我们把刚提到的 libs文件夹复制道test 文件夹下面.{ * 请看本文最后的注释 TIPS1}
3:在test 文件夹下面再建立4个文件夹;
cache
configs
templates
templates_c
4:建立文件 text.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><{$title}></title>
</head>
<body >
<{$content}>
</body>
</html>
保存在 templates 目录下面.
5:然后建立文件模板配置文件: config.php
<?php
include "../libs/Smarty.class.php";
$NowPathArray=explode("test",str_replace("\\","/",dirname(__FILE__))) ;
@define("root_path", $NowPathArray[0]);
@define('__SITE_ROOT', root_path."test");
$tpl = new Smarty();
$tpl->template_dir = __SITE_ROOT . "/templates/";
$tpl->compile_dir = __SITE_ROOT . "/templates_c/";
$tpl->config_dir = __SITE_ROOT . "/configs/";
$tpl->cache_dir = __SITE_ROOT . "/cache/";
$tpl->left_delimiter = '<{';
$tpl->right_delimiter = '}>';
?>
保存在主目录也就是 test下面.
6 :在test新建文件test.php文件,输入:
<?php
require "config.php";
$tpl->assign("title", "测试成功了,这是标题");
$tpl->assign("content", "这是内容");
$tpl->display('test.htm');
?>
7:在浏览器测试test.php显示为:
这是内容
恭喜,配置成功.否则,失败,再检查是不是按照我说的来的.
Tips1 :为了能在网站全局使用Smarty技术,我们可以修改PHP.inc里面的
<B>
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes"
</B>
改为:
------------------->
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;d:\web\web\php\libs"
使用模板的时候,像前面一样的方式使用,不要
include "../libs/Smarty.class.php";
直接使用就行了的.
十分钟学会 xajax
learn xajax in 10 minutes(原文摘自xajaxproject 官方wiki)
译者按: xajax 最大的特点是他采用了xml response,这样我们可以用php来布置,处理异步传送数据之后,网页内容的更新。而这些操作其它的ajax 框架都是由js来完成的的。xajax 使我们只需要写一些php函数,就可以实现。
所有学好xajax的关健在于熟练掌握 xajaxresponse 类。
tutorials:learn xajax in 10 minutes
教程:十分钟学会 xajax
using xajax in a php script
一个使用的xajax的php脚本:
include the xajax class library:
调用xajax类库:
require_once("xajax.inc.php");
instantiate the xajax object:
实例化xajax对象
$xajax = new xajax();
register the names of the php functions you want to be able to call through xajax:
注册一个你想用xajax来调用的php函数名(与javascript中的函数名相对应 xajax_myfunction)
$xajax->registerfunction("myfunction");
write the php functions you have registered and use the xajaxresponse object to return xml commands from them:
编写那个你刚刚已经注册的php函数,并从中用 xajaxresponse 对象来返回xml指令集
function myfunction($arg)
{
// do some stuff based on $arg like query data from a database and
// put it into a variable like $newcontent
//对参数$arg做一些诸如:从数据库中获取数据后定义给$newcontent 变量的基本操作
// instantiate the xajaxresponse object
//实例化 xajaxresponse 对象
$objresponse = new xajaxresponse();
// add a command to the response to assign the innerhtml attribute of
// the element with id="someelementid" to whatever the new content is
// 在响应实例中添加一个命令,用来将id为someelementid的innerhtml元素属性
// 变为任何新的内容.
$objresponse->addassign("someelementid","innerhtml", $newcontent);
//return the xml response generated by the xajaxresponse object
//返回由 xajaxresponse 对象所生成的xml 响应
return $objresponse->getxml();
}
before your script sends any output, have xajax handle any requests:
在你脚本传送出任何东西前,xajax都要处理所有请求
$xajax->processrequests();
between your
在该页的和标签之间插入下列代码,使xajax实例可以自己生成所必需的js
printjavascript(); ?>
PS3安装Linux Fedora Core 6教程
下面进入正题。
[准备工作]
1,Linux Fedora Core 6 PPC版DVD ISO镜像(BT下载):
http://torrent.fedoraproject.org/torrents/Zod-dvd-ppc.torrent
下载完毕后刻盘备用。
2,下载Sony发布的Other OS安装程序:
http://www.playstation.com/ps3-openplatform/data/otheros.self
下载完毕后,找一个记忆棒,在里面建立/PS3/otheros/目录,把文件放进去。
3,下载Sony发布的Addon Packages CD:
http://dl.qj.net/PS3-Linux-Addon-Disc-PlayStation-3/pg/12/fid/11308/catid/514
下载完毕后刻盘。刻录完毕后,打开光盘的/kboot/目录,把里面的otheros.bld文件也复制到刚刚那个记忆棒的/PS3/otheros/目录中。光盘仍然备用。
4,USB键盘、鼠标准备。
[安装过程]
如果你的硬盘是买来的默认状态,请到Settings -> Format Utilities里面,格式化你的硬盘。
格式化之前请把你PS3硬盘上的东西备份一下,比如游戏存档、下载的游戏Demo、视频、MP3、照片什么的,不要格了之后再哭。
格式化时要注意选择给Linux系统分配空间,至于是给PS3留10G还是给Linux 10G就看你了。我选的是给Linux 10G。格式化完毕后会重起。
把刚刚准备好的记忆棒插入读卡器中(如果是20G版的,可能需要用U盘替代)。
正常启动到XMB界面,到Settings -> System Settings -> Install Other OS。系统会开始检测,并找到你记忆棒中储存的OtherOS安装程序。此时一路OK即可。
系统会运行otheros.self。此时继续安装。完成后系统重起。
重起之后,你就会发现PS3并没有启动到XMB界面,而是会进入一个上面有两个企鹅的图形界面。这个就是kboot命令行。在这里你就可以进行FC6的安装了。
此时,插入Linux Fedora Core 6的DVD安装盘。
在命令行输入install-fc sda,回车。此时安装程序开始运行。
首先,会提示插入FC6安装盘:
Please insert Fedore Core install DVD.
Is it OK? (y/n):
按Y回车。
下面会出现询问安装最大还是最小化的组件:
1) Fedora Core 6 minimum install
2) Fedora Core 6 maximum install
Select install system?
建议选择2,否则装出来的系统啥都干不了……按2,回车。
最后提示安装程序会删除Linux分区上的所有数据:
Caution!!. All data in in /dev/sda are removed.
IS it OK? (y/n)
按Y回车。
此时,安装正式开始。请把贱手拿开,不要按任何键。我第一次安装就是因为不小心多按了几下回车,导致在安装Addon Packages CD的时候直接跳过——直接后果是长达4小时的安装前功尽弃!!!
下面你可以该干吗干吗去了,4个小时,把Ace Combat X拿出来通一遍吧……或者拿WE10踢两三个杯赛什么的……
4个小时过去后,PS3会自动把FC6的光盘吐出,提示你插入Addon Packages CD。
Please insert a Addon Packages CD.
Is it OK? (y/n)
此时先插入光盘,等待10秒的样子让光驱准备好,然后按Y回车。
安装一通以后,会请你设置UNIX根密码什么的,按照提示输入即可。
最后会返回到kboot提示符。安装完成。此时可以输入reboot重起PS3。
重起之后,首先还是只能看到kboot的那个界面。甚至还会启动带kboot:命令提示符。但是注意上方有一条提示:commit interval 5 seconds。此时啥都不要动,静待5秒。kboot会自动结束,屏幕一黑,上方原来有两个企鹅的地方现在下面多出六个小企鹅,肚子上面写着 SPU…………这个就是代表认出PS3的CPU了吧。
一阵启动文字后再次黑屏,正式出现FC6自己的启动界面(就是会一项一项后面带绿色的[OK]的)。启动完毕后,会出现熟悉的登录提示:
localhost login:
在里面输root回车。
然后提示输入Password。
在里面输入正确的密码后回车。注:输入时系统不会显示星号代替你输入的字符,只管输就好了。
登录成功后即可到达提示符:
[root@localhost ~]#
下面要进入XWindow。
这个时候直接打startX基本上是直接花屏,因为系统不支持现在的显示模式。需要先打个命令,设置显示模式。命令详解:
ps3videomode: switch video mode dynamically
This command shows current video settings such as resolution, frame rate, color space, and so on, and switches them dynamically.
usage: ps3videomode [options] options: --help, -h print this message
--video, -v
--full, -f use full screen mode
--dither,-d use dither ON mode
Video mode ID:
0:automode
YUV 60Hz 1:480i 2:480p 3:720p 4:1080i 5:1080p
YUV 50Hz 6:576i 7:576p 8:720p 9:1080i 10:1080p
RGB 60Hz 33:480i 34:480p 35:720p 36:1080i 37:1080p
RGB 50Hz 38:576i 39:576p 40:720p 41:1080i 42:1080p
VESA 11:WXGA 12:SXGA 13:WUXGA
full screen mode:
Ping 探测是Windows系统中最常用的工具之一,它同时也是“网络流氓”寻找下手
目标的最常用的工具,当“网络流氓”一次发送的数据包大于或等于65532K时,系统
就很有可能死机,通过Ping 命令可以制造ICMP风暴,堵塞网络,所以Ping 命令对
于系统的危害不可小覤,那么我们在Windows 2000系统中,在没有防火墙保护的状态
下,如何屏蔽Ping探测,避免系统被“网络流氓”盯上呢?你可以通过以下方法来
实现。
步骤1 点击“网上邻居”,选择“属性”再指向要配置的“网卡”,再用右键选取
“属性”,再依次点“TCP/IP”->“高级”->“选项”->“TCP/IP筛选”。
步骤 2 接着在TCP端口编辑框中点击“只允许”,在下面加上需要开的端口,一般
打开80、20、21、25端口,应用于浏览网页,上传文件、收发邮件便行了。
步骤 3 编辑UDP端口,选择“全部不允许”,最右边的一个编辑框是定义IP协议过
滤的,我们选择只允许TCP协议通过,点“确定”关闭设置框。
上面设置了“只允许TCP协议通过”,只可惜微软在这里的IP协议过滤并不包括ICMP
协议 ,所以还需要在IP安全机制(IP Security)上着手。
步骤1 打开“本地安全策略”,选择“IP安全策略”,再指向“管理IP筛选器”,
在IP过滤规则:ICMP_ANY_IN,源地址选“任何IP ”,目标地址选“我的IP地址”(
本机),协议类型是“ICMP”,切换到“管理过滤器操作”,增加一个名为“Deny”
的操作,操作类型为“阻止”。
步骤2 接着再用右键选取本机的IP安全策略,选择“新建IP安全策略”,建立一个
名称为“ICMP Filter”的过滤器,通过增加过滤规则向导,我们把刚刚定义的
ICMP_ANY_IN过滤策略指定给“ICMP Filter”。
最后在操作选框中选择我们刚刚定义的Deny 操作,退出向导窗口,右击“ICMP
Filter”并启用它,现在任何地址进入的ICMP报文就都会被丢弃了。
在本地安全策略里启用新的过滤策略后,就会有一个关闭所有进入ICMP报文的过滤
策略和丢弃所有报文的过滤操作了。通过此番设置后,您就再也不用担心“网络流
氓”对系统进行骚扰了。
第二种方法:使用下面的软件。
Steganos Internet Anonym Pro 6
这是一套功能强大的网路身份隐藏工具软件,所以请使用在正当的防卫用途。我们
在网路上浏览网页或是下载各式各样的文件的同时,有成千上万的人使用监视用或
是入侵用的软件正在虎视眈眈的预备攻击我们,而这套软件就是用来防止如此攻击
或是窥视的工具软件,你可以透过这套软件很简单的隐藏自已的身份(ip)或是将我
们所经过的网站讯息、Cookkies、暂存文件都消除,所以你可以如有网路隐形人一
般的出入所有的网路,而不留痕迹
经过试用发现,自己的ip是1秒钟变化一次,哈哈,用显示ip的网站测试,我一会在
英国,一会儿在加拿大,真是好用啊!!
安装注意:安装后不要急于测试,先关闭所有的浏览器,然后重新打开。如果还没
有效果,那么重新启动,保证见效。
注册码:123-114-115-107-054
JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。
1、 JDK的下载和安装
JDK又叫做J2SE (Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html。
下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。新建环境变量CLASSPATH,增加路径.;C:\j2sdk1.4.2\lib\dt.jar;C:\j2sdk1.4.2\lib\tools.jar。这样JDK就安装好了。
2、 JDK的命令工具
JDK的最重要命令行工具:
java: 启动JVM执行class
javac: Java编译器
jar: Java打包工具
javadoc: Java文档生成器
这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。
二、 JDK Documentation
Documentation 在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。
三、 Java应用的运行环境
Java的应用可以简单分为以下几个方面:
1、 Java的桌面应用
桌面应用一般仅仅需要JRE的支持就足够了。
2、 Java Web应用
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
Browser层:浏览器显示用户页面
Web层:运行Servlet/JSP
DB层:后端数据库,向Java程序提供数据访问服务
3、 Java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
Browser层:浏览器显示用户页面
Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
Web层:运行Servlet/JSP
EJB层:运行EJB,完成业务逻辑运算
DB层:后端数据库,向Java程序提供数据访问服务
4、 Java嵌入式应用
Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。
书籍篇
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。
很多人学习Java是从《Thinking in Java》这本书入手的,但是这本书是不适合初学者的。正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
在所有的Java书籍当中,其实真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation 里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍 Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过 Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册。有了 Documentation,什么其他的书籍都不需要了。
过程篇
学习Java的第一步是安装好JDK,写一个Hello World程序。其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下。《Thinking in Java》这本书上面是讲了这些概念的。
第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材。比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。你们要了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That′s all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查 Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住 3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.*;
java.net.*;
javax.naming.*;
这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。
方法篇
Java 作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。
举个例子,我们都编过Hello World程序:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的 public取掉,再试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个 String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。
虽然这样比较费时间,不过一个例子程序这样反复破坏几次之后。就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。
另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。
所以其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,强烈推荐你看看JDK基础类库的Java 源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下 Sun是怎么写Java程序的,规范是什么样子的。打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。
资源篇
1、 http://java.sun.com/ ;(英文)
Sun的Java网站,是一个应该经常去看的地方。不用多说。
2、 http://www-900.ibm.com/developerWorks/cn/ ;
IBM的developerWorks网站,英语好的直接去英文主站点看。这里不但是一个极好的面向对象的分析设计网站,也是Web Services,Java,Linux极好的网站。强烈推荐!!!
3、 http://www.java-cn.com/ ;(中文)
JAVA 中文站,目前国内资料最全、会员最多的JAVA技术网站,人气极高。有《JAVA电子书库》、《JAVA视频库》(国内唯一)、《JAVA技术文摘库》、《JAVA源代码库》、《JAVA工具库》、《招聘求职广场》等主要栏目,还有一些专家栏目。目前会员有5万多,VIP会员近1000人。无论是菜鸟还是老鸟,都能在此网站中找到自己所需要的东东!! 最强烈推荐!!!!!!
4、 http://www.javaworld.com/ ;(英文)
关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用,这里比较好。
11、 http://sourceforge.net/ ;
SourgeForge是一个开放源代码软件的大本营,其中也有非常非常丰富的Java的开放源代码的著名的软件。
同学们,这是我写的一个计算器的源代码,希望可以给你们以启迪。
另外,这仅仅是一个参考,还有很大的提升空间,具体怎么提升请自己仔细思考后把它改写出来,用EMAIL的形式发给我。
一个优秀的程序员就是通过不断的读别人写的经典代码,重写别人的代码(相当于小学时候默写课文那样),然后修改和优化别人的代码,并能凭自己的能力独立(也就是说,不拘泥于别人的思想和套路,而非不跟别人协作,一个懂得协作并非常默契的团队才是程序员发挥自己个人能力的天堂,个人英雄主义是不适用于程序开发的)写出自己的优秀代码。
好了,不罗嗦了,自己研究代码吧:
Calculator.java
//用于算术运算的抽象类,由ComputeCalculator类进行继承
public abstract class Calculator {
public Calculator() {
}
public abstract void add(); //加法方法
public abstract void minus(); //减法方法
public abstract void multiply(); //乘法方法
public abstract void divide(); //除法方法
public abstract void paramPass(char param); //算术符号
}
ComputeCalculator.java
//Calculator的子类,用于实现具体算法
public class ComputeCalculator extends Calculator {
public double ary0; //定义一个变量用于第一个参数
public double ary2; //定义一个变量用于第二个参数
public char ary1; //定义一个变量用于运算符号
public ComputeCalculator(double DoubleNum1, double DoubleNum2) {
this.ary0 = DoubleNum1;
this.ary2 = DoubleNum2;
}
public void paramPass(char param) {
this.ary1 = param;
switch (ary1) { //运算符号合法性的判断,如果合法则进行相应的运算
case '+': //加法运算
add();
break;
case '-': //减法运算
minus();
break;
case '@': //乘法运算
multiply();
break;
case '/': //除法运算
divide();
break;
default: //运算符号不合法
System.out.println("您输入的运算符号错误,请将第二个参数改为+、-、@、/四种运算符号中的一种!");
}
}
public void add() { //加法运算方法
System.out.println("计算结果为:" + ary0 + " + " + ary2 + " = " +
(ary0 + ary2));
}
public void minus() { //减法运算方法
System.out.println("计算结果为:" + ary0 + " - " + ary2 + " = " +
(ary0 - ary2));
}
public void multiply() { //乘法运算方法
System.out.println("计算结果为:" + ary0 + " * " + ary2 + " = " +
(ary0 * ary2));
}
public void divide() { //除法运算方法
if (ary2 == 0) { //除数为0的情况
System.out.println("被除数为0,无法进行计算");
} else { //正常的除法运算
System.out.println("计算结果为:" + ary0 + " / " + ary2 + " = " +
(ary0 / ary2));
}
}
}
Js.java
//main()方法所在类,程序入口点,也是对前面两个类的调用和逻辑处理
public class Js {
public Js() {
}
public static void main(String[] args) {
try { //异常处理
double a; //定义一个变量用于接收第一个参数
double c; //定义一个变量用于接收第三个参数
char ch[] = (args[1]).toCharArray(); //定义一个变量用于接收第二个参数
Calculator compute ; //调用类,以进行计算
a = Double.parseDouble(args[0]); //接收第一个参数,并进行数据类型转换
if (a >= Double.MIN_VALUE && a <= Double.MAX_VALUE) { //判断参数内容是否合法
c = Double.parseDouble(args[2]); //接受第三个参数,并进行数据类型转换
if (c >= Double.MIN_VALUE && c <= Double.MAX_VALUE) { //判断参数内容是否合法
compute = new ComputeCalculator(a, c);
compute.paramPass(ch[0]); //对第二个参数进行合法性判断
} else { //如果第三个参数不合法,则提示错误
System.out.println("您输入的格式错误,请将第三个参数改为阿拉伯数字");
}
} else { //如果第一个参数不合法,则提示错误
System.out.println("您输入的格式错误,请将第一个参数改为阿拉伯数字");
}
} catch (Exception e) { //处理异常
System.out.println("第1个参数应该为0到9之间的阿拉伯数字");
System.out.println("第2个参数应该为运算符号(+、-、@、/)");
System.out.println("第3个参数应该为0到9之间的阿拉伯数字");
System.out.println("请重新输入数据并计算");
}
}
}
/*转贴请保留以下信息*/
作者:张杰
URL:http://spaces.msn.com/members/newbdez33/
http://www.phpboom.com/
由于工作需要,需要使用PHP实现对网站内大量数量进行全文检索,
而且目前最流行的全文检索的搜索引擎库就是Lucene了,
它是Apache Jakarta的一个子项目,并且提供了简单实用的API,
用这些API,就可以对任何基本文本的数据(包括数据库)进行全文检索。
因为PHP本身就支持调用外部Java类,所以先用Java写了一个类,
这个类通过调用Lucene的API,实现了两个方法:
* public String createIndex(String indexDir_path,String dataDir_path)
* public String searchword(String ss,String index_path)
其中createIndex是创建索引方法,
传入了两个参数分别是indexDir_path(索引文件的目录),dataDir_path(被索引的文件目录),返回被索引的文件列表字符串,
另一个是searchword,通过传入的关键字参数(ss)对索引进行检索,index_path就是索引文件的目录。返回所有检索到的文件。
这里是源代码,很简单,大家可以参考一下:TxtFileIndexer.java
而PHP程序就调用这两个方法,实现对Lucene的调用,从而达到全文检索的目的。
PHP的调用方法如下:
先创建一个我们写的TxtFileIndexer类的实例,
$tf = new Java('TestLucene.TxtFileIndexer');
然后就按正常PHP类的调用方法的方式进行调用,首先创建索引:
$data_path = "F:/test/php_lucene/htdocs/data/manual"; //定义被索引内容的目录
$index_path = "F:/test/php_lucene/htdocs/data/search"; //定义生成的索引文件存放目录
$s = $tf->createIndex($index_path,$data_path); //调用Java类的方法
print $s; //打印返回的结果
这次再试试检索:
$index_path = "F:/test/php_lucene/htdocs/data/search"; //定义生成的索引文件存放目录
$s = $tf->searchword("here is keyword for search",$index_path);
print $s;
另外要注意Java类的路径,可以在PHP里设置
java_require("F:/test/php_lucene/htdocs/lib/"); //这是个例子,我的类和Lucene都放到这个目录下
这样就可以了,是不是很简单。
PHP源代码:test.php
接下来我把环境配置说一下,
首先需要有Java SDK,是必须的,我使用的是1.4.2版的,其它版本应该也没问题。
PHP5,试过PHP4,应该可以。
由于PHP5带的Java扩展没调通,并且以前用过调用Java效率很低,很慢,所以使用了 Php/Java Bridge 这个项目。
1.下载JavaBridge
URL:http://sourceforge.net/projects/php-java-bridge/
目前版本是
php-java-bridge_3.0.8_j2ee.zip
解包后把
JavaBridge\WEB-INF\cgi\java-x86-windows.dll
JavaBridge\WEB-INF\lib\JavaBridge.jar
复制到 c:\php\ext 目录下,并把
java-x86-windows.dll 改名为 php_java.dll
2.修改php.ini(例)
extension=php_java.dll
[Java]
java.class.path = "C:\php\ext\JavaBridge.jar;F:\test\php_lucene\htdocs"
java.java_home = "C:\j2sdk1.4.2_10"
java.library.path = "c:\php\ext;F:\test\php_lucene\htdocs"
3.重启Apache即可。
4.可以找一些文件进行索引
在test.php里可以修改索引文件和数据文件的路径。
TxtFileIndexer.java的37行限制了只索引html后缀的文件,有需要也可以修改。
根据目前的情况(JavaBridge支持Linux和Freebsd),完全可以在
linux或freebsd/apache2/php4/lucene/JavaBridge
环境下运行。
本文章可能会随时更新,另外这里可以访问:
用PHP调用Lucene包来实现全文检索
我的MSN是 z33
欢迎技术探讨:)
package test;
public class Vector{
public Vector(){
System.out.println(
"my.Vector");
}
}
在C:\DOC下有一个TEST目录,生成Vector.class 。Vector.java和Vector.class都置于TEST
目录内。
然后我再编译下面的语句:
import test.*;
public class LibTest{
public static void main(String[] args){
Vector v=new Vector();
}
}
则出现如现错误:
C:\DOC\TEST javac LibTest.java
LibTest.java:5: cannot access Vector
bad class file: .\Vector.class
class file contains wrong class: test.Vector
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Vector l=new Vector();
^
1 error
然而我把import test.*;改为import.Vector;则能成功编译。望各位大虾帮忙解决。
在CLASSPATH中加上.;.代表当前目录,如果不加,编译器在编译LibTest.java时,找test包就不会在当前目录内找,因为找不到,加上就可以了。
加上也不行啊。早就加了。就是不行。
classpath=.;C:\DOC
本人解决方法:
注意目录结构
作为package, test.java 应放C;\doc\test目录中
Libtest.java放在c:\doc下,
classpath设为".;c:\doc\;"
然后
1. c:\doc>javac test\*.java
2. c:\doc>javac *.java
3. c:\doc>java Libtest //ok
D:\Javawork\jt>javac LibTest.java
LibTest.java:4: cannot access Vector
bad class file: .\Vector.java
file does not contain class Vector
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Vector v = new Vector();
^
1 error
(你的文件没有问题,主要是你的classpath里面有了test目录的java文件。。。)
出现这个问题,你要注意各个文件放的目录,千万不要在不同的目录里面里面有重复的文件。。。。
千万要注意编译顺序啊。。。
不知道说清楚了没有。。。。。要是看到我操作就好了。,。

testme.html
code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>
ajax
</title>
<script language="javascript">
function createRequest(){
if(typeof XMLHttpRequest!="undefined") {
return new XMLHttpRequest();
}else if(typeof ActiveXObject!="undefined"){
var xmlHttp_ver = false;
var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
if(!xmlHttp_ver){
for(var i=0;i<xmlHttp_vers.length;i++){
try{
new ActiveXObject(xmlHttp_vers[i]);
xmlHttp_ver = xmlHttp_vers[i];
break;
}catch(oError){;}
}
}
if(xmlHttp_ver){
return new ActiveXObject(xmlHttp_ver);
}else{
throw new Error("Could not create XML HTTP Request.");
}
}else{
throw new Error("Your browser doesn't support an XML HTTP Request.");
}
}
var xmlHttp;
function sendPostRequest()
{
xmlHttp = createRequest();
var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单
var url = "http://localhost/phpwork/phpajaxtest.php";//要发送到的URL
var queryString = "shownum" + "=" + shownum;
//向服务端发送请求
xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理
xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showData
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的
xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);
}
function showData()
{
var msg=document.getElementById("status");
//第4步
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
//只有当readyState为4并且status为200时,才表示符合要求
//下面这一句话,就相当于上面说的第5步,处理返回的结果
msg.innerHTML = xmlHttp.responseText;
}
}
else
{
switch(xmlHttp.readyState)
{
case 0:
msg.innerHTML="未初始化...";
break;
case 1:
msg.innerHTML="加载中...";
break;
case 2:
msg.innerHTML="连接完成...";
break;
case 3:
msg.innerHTML="交换数据...";
break;
default:
break;
}
}
}
</script>
</head>
<body>
<div>要发送的数据:<input name="shownum" type="text" id="shownum" value="root">
<input type="button" name="search" value="发送" onClick="sendPostRequest()">
(输入root,xdy108)</div>
<div id="status"></div>
</body>
</html>
phpajaxtest.php
code:
<?php require_once('Connections/conn.php'); ?>
<?php
$colname_Recordset1 = "-1";
if (isset($_POST['shownum'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['shownum'] : addslashes($_POST['shownum']);
}
mysql_select_db($database_conn, $conn);
$query_Recordset1 = sprintf("SELECT `Host`, `User`, Password, Select_priv FROM `user` WHERE `User` = '%s'", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<table border="1">
<tr>
<td>Host</td>
<td>User</td>
<td>Password</td>
<td>Select_priv</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_Recordset1['Host']; ?></td>
<td><?php echo $row_Recordset1['User']; ?></td>
<td><?php echo $row_Recordset1['Password']; ?></td>
<td><?php echo $row_Recordset1['Select_priv']; ?></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
conn.php
code:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conn = "localhost";
$database_conn = "mysql";
$username_conn = "root";
$password_conn = "12345";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
?>
user.sql
code:
# phpMyAdmin SQL Dump
# version 2.5.7
# http://www.phpmyadmin.net
#
# 主机: localhost
# 生成日期: 2006 年 12 月 13 日 05:58
# 服务器版本: 5.0.19
# PHP 版本: 5.1.2
#
# 数据库 : `mysql`
#
# --------------------------------------------------------
#
# 表的结构 `user`
#
CREATE TABLE `user` (
`Host` char(60) collate utf8_bin NOT NULL default '',
`User` char(16) collate utf8_bin NOT NULL default '',
`Password` char(41) character set latin1 collate latin1_bin NOT NULL default '',
`Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Insert_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Update_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Delete_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Drop_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Reload_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Shutdown_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Process_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`File_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Grant_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`References_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Index_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Alter_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Show_db_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Super_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_tmp_table_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Lock_tables_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Execute_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Repl_slave_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Repl_client_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Show_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Alter_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_user_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`ssl_type` enum('','ANY','X509','SPECIFIED') character set utf8 NOT NULL default '',
`ssl_cipher` blob NOT NULL,
`x509_issuer` blob NOT NULL,
`x509_subject` blob NOT NULL,
`max_questions` int(11) unsigned NOT NULL default '0',
`max_updates` int(11) unsigned NOT NULL default '0',
`max_connections` int(11) unsigned NOT NULL default '0',
`max_user_connections` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';
#
# 导出表中的数据 `user`
#
INSERT INTO `user` VALUES ('localhost', 'root', '*00A51F3F48415C7D4E8908980D443C29C69B60C9', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0);
INSERT INTO `user` VALUES ('localhost', 'xdy108', '001002', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0);
发现输入xdy108,root的时候能无刷新返回,否则如xdy,ro等就会无返回结果,其原因是用了:WHERE `User` = '%s'", $colname_Recordset1);没有用like.
如下图:

code:
import java.sql.*;
public class MysqlConn {
static{
try {
Class .forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.print("Sucess loading JDBC_ODBC Bridge Drive...");
}
catch (Exception e){
System.out.print("Erro loading JDBC-ODBC Bridge Driver...\n");
e.printStackTrace();
}
}
public static void main(String[] args) {
try{
Connection con1=DriverManager.getConnection("jdbc:odbc:choa_samples","root","12345");
}
catch(SQLException e){
e.printStackTrace();
}
}
}
Script: /blog/index.php
SQL: SELECT * FROM `boblog_blogs` WHERE `property`<>'3' ORDER BY `sticky`DESC, `pubtime` DESC LIMIT 0,
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Errno.: 1064
搞得我郁闷死了,竟然发现有人说是boblog_blogs的表出现错误,我把所有的表都修复了,然后还是不对,然后再用google搜索,然后我发现好像不行,访问不了,然后我就用baidu看了一下,发现使我感到很郁闷。。。
饭后想不通,然后继续baidu,最后我发现bo-blog里面有如下问题。。。
解决方法也很简单:
将安装包内install\copy下的mod_config文件上传覆盖FTP里/data目录下的同名文件即可恢复,(最好是将mod_config.php del掉然后呢,就弄ftp上去,我是这样弄得。。。)