搜档网
当前位置:搜档网 › java练习题

java练习题

java练习题
java练习题

public class Multipation {

public static void main(String[] args) {

定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。SetRecord给出学号、姓名和成绩的赋值,GetRecord通过学号得到考生的成绩。

public class Student {

/**

*@param args

*/

private int ID;

private String name;

private float score;

public void SetRecord(int ID,String name,float score){

=ID;

=name;

=score;

}

public float getRecord(int ID){

if(ID==

return ;

else

return -1;

}

public static void main(String[] args) {

编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转

换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。

public class StringTest {

/**

*@param args

*/

public static void main(String[] args) {

自己设计一个坐标类,能提供以下方法如求当前坐标和其他坐标之间的距离等方法,要求所有变量为私有变量,并提供两个构造函数。

public class XYdistance {

private int x;

private int y;

XYdistance(){

setX(0);

setY(0);

}

public void setX(int x) {

= x;

}

public int getX() {

return x;

}

public void setY(int y) {

= y;

}

public int getY() {

return y;

}

public static void main(String[] args) {

lass文件中的一些数据。JVM虚拟机为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量

(String,Integer和 Floating point常量)和对其他类型,字段和方法的符号引用。对于String常量,它的值是在常量池中的。而JVM中的常量池在内存当中是以表的形式存在的,对于String类型,有一张固定长度的

CONSTANT_String_info表用来存储文字字符串值,注意:该表只存储文字字符串值,不存储符号引用。

1、String s = "abc";

创建过程分析:在class文件被JVM装载到内存中,JVM会创建一块String Pool (String缓冲池)。当执行String s = “abc”;时,JVM首先在String Pool 中查看是否存在字符串对象“abc”(如何查看呢?用equals()方法判断),如果已存在该对象,则不用创建新的字符串对象“abc”,而直接使用String Pool 中已存在的对象“abc”,然后将引用s指向该对象;如果不存在该对象,则先在String Pool中创建一个新的字符串对象“abc”,然后将引用s指向String Pool中创建的新对象。

注意:使用“字符串常量”引号创建的字符串对象时,在编译期就已经确定将该对象存储到String Pool中了。因此,String s = “abc”只会在编译期,在String Pool中创建一个对象。

例如:

Java代码

1.String s1 = "abc";

2.String s2 = "abc";

== s2);返回了一个String对象,也就是说在堆中创建了对象。这时候会不

会在池中出现"abc"这个对象呢?(question还没解决)

生成String s的过程中,编译器使用sb执行的过程:创建一个StringBuffer

对象,使用append()向此StringBuffer对象直接添加新的字符串(而不是每次

制作一个新的副本)。

对于String c = "c";String s = "a" + "b" + c;,编译器将会先将"a" + "b"

作为编译时常量,优化生成成字面常量"ab" ,然后生成一个StringBuilder对象,接着调用两次 append()方法,即:

String s = new Builder().append("ab").append(c) .toString();

对于String a = "a";String s = a + "b" + "c";,编译器分析a为引用变量,后面的"b" + "c"就不会作为编译时常量来运算了。相当于执行:

String s = new Builder().append(a).append("b") .append("c") .toString();

对于String b = "b";String s = "a" + b + "c";],这种形式的就没办法优化了,直接生成StringBuilder对象,然后调用三次 append()方法,即:

String s = new Builder().append("a").append(b) .append("c") .toString();

接着,我们再看以下代码:

Java代码

String str1 = "abc";.,只要在java里面有关键字new存在,不管内容是否相同,都表示它将生成一个新的对象,new多少次,就生成多少个对象,而且新生成的对象都是在Heap里面,所以它会在Heap里面生成一个内容为abc的对象,并且将它的地址赋给了引用s3,s3就指向刚在Heap里面生成的内容为abc 的对象。所以,当执行完语句(3)时,内存里面一共有3个对象,其中包含了在String Pool里面一个内容为abc的字符串对象和在Heap里面包含了两个内容为abc的字符串对象。

问题4:当执行完语句(4)(5)(6)后,它们的结果分别是什么?

在java里面,对象用"=="永远比较的是两个对象的内存地址,换句话说,是比较"=="左右两边的两个引用是否指向同一个对象。对于java里面的8种原生数据类型来说,"=="比较的是它们的字面值是不是一样的;对应用类型来说,比较的是它们的内存地址是不是一样的。在语句(1)(2)(3)中,由于s1、s2、s3指向不同的对象,它们的内存地址就不一样,因此可以说当执行完语句(4)(5)(6),它们返回的结果都是false。

问题5:当执行完语句(7)(8)(9)后,它们的结果分别是什么?

首先,s1这个对象指向的是堆中第一次new...生成的对象,当调用 intern 方法时,如果String Pool已经包含一个等于此 String 对象的字符串(该对象由equals(Object)方法确定),则返回指向String Pool中的字符串对象的引用。因为String Pool中有内容为abc的对象,所以()返回的是String Pool中的内容为abc的字符串对象的内存地址,而s1却是指向Heap上内容为abc的字符串

对象的引用。因而,两个引用指向的对象不同,所以,s1 == () 为false,即语句(7)结果为false。

对于(),它还是会首先检查String Pool中是否有内容为abc的对象,发现有,则将String Pool中内容为abc的对象的地址赋给()方法的返回值。因为s2和()方法的返回值指向的是同一个对象,所以,s2 == ()的结果为true,,即语句(8)结果为true。

对于(),它首先检查String Pool中是否有内容为abc的对象,发现有,则将String Pool中内容为abc的对象的赋给()方法的返回值。对于(),首先检查String Pool中是否有内容为abc的对象,发现有,则将String Pool中内容为abc的对象的地址赋给()方法的返回值。因为两者返回的地址都指向同一个对象,所以,() == ()的结果为true,,即是语句(9)结果为true。

因此,当执行完语句(7)(8)(9)后,它们的结果分别是false、true、true。

问题6:当执行完语句(13)(14) (15)(16)后,它们的结果分别是什么?

hello == "hello"引用hello指向的对象就是String Pool中的“hello”,即语句(13)的结果为true。

hello == "hel" + "lo"当加号两边都是常量值时,就会组成一个新的常量值"hello"在String Pool里面,如果String Pool已经有相同内容的就不会再创建,则直接返回String Pool里面的内容为"hello"的字符串对象的内存地址,所以,hello == "hel" + "lo"结果为true。

hello =="hel" + lo 当加号两边有一个不是常量值,会在堆里面创建一个新的"hello"对象,一个在String Pool中,一个在Heap中,故输出false 。

hel + lo 同上,输出false。

因此,当执行完语句(7)(8)(9)后,它们的结果分别是true、true、false、false。例程7:

Java代码

1.String s1 = "abc";

2.String s2 = new String("abc");

3.String s3 = new String("abc");

();ppend("a").append(new String("bc")).toString();

思考:String s = "a" + new String("b") + "c";产生了那几个对象?

解:等价于String s = new StringBuilder().append("a").append(new String("b")).append("c").toString(),会在String Pool中产生"a"、"b"、"c"三个对象,在Heap中产生"b"、"abc"两个个对象。一共5个字符串对象。

例程9:

Java代码

1.String s1 = "Hello";

2.s1 = "Java";

3.String s2 = "Hello";

4.String s3 = new String("Hello");

5.== s2);

6.== s3);

运行结果如下:

false

false

分析这段程序的执行过程:

首先在加载Java程序时,JVM会创建一片的内存空间(String Pool)专门存入string对象。

String s1 = "Hello",现在栈中创建一个字符串引用s1,然后JVM会在String Pool中查找是否存在"Hello",如果存在,则直接使用它,将其地址赋给s1,如果不存在(这时String Pool中显然不存在"Hello"),则在String Pool中创建"Hello",并将其地址赋给s1。

s1 = "Java",JVM会在String Pool中查找是否存在"Java",如果存在,则直接使用它,将其地址赋给s1,如果不存在(这时String Pool中显然不存在"Java"),则在String Pool中创建"Java",并将其地址赋给s1。而原来的字符串对象"Hello"仍然在String Pool中,没有消失,因为String对象的值是不能被修改的。这里只是改变了引用的值即引用指向的对象的地址,而没有改变它所引用的对象。

String s2 = "Hello",JVM会在String Pool里查看有没有字符串"Hello",若有,则返回它的地址给s2,否则,创建新的String对象"Hello",放到String Pool里。这里由于"Hello"对象已经创建,并存在于String Pool中,因而不需要重新创建String对象"Hello"。此时s1指向String Pool中的"Java",s2指向String Pool中的"Hello",故s1 == s2的值为false。

String s3=String("Hello"),JVM会在String Pool里查看有没有字符串"Hello",若有,直接执行new操作,若没有,则先要在String Pool中创建"Hello",然后执行new操作,由于遇到了new,还会在Heap上(不是String Pool 里)创建string对象"Hello",并将Heap上的"Hello"对象的地址赋给引用s3。所以s2 == s3将返回false,因为s2和s3不是引用同一个对象。

以上小结如理解有误,希望各位高手指教!

写代码验证静态代码块被自动执行,就算产生了类的多个实例对象,但其中的静态代码块只被执行了一次。

class Parent {

static String name = "hello";

{

"parent block");

}

static {

"parent static block");

}

public Parent() {

"parent constructor");

}

}

class Child extends Parent {

static String childName = "hello";

{

"child block");

}

static {

"child static block");

}

public Child() {

"child constructor");

}

}

public class TextStatic {

public static void main(String[] args) { // TODO Auto-generated method stub

new Child();// 语句(*)

new Child();

}

}

运行结果:

parent static block

child static block

parent block

parent constructor

child block

child constructor

parent block

parent constructor

child block

child constructor

分析:当执行new Child()时,它首先去看父类里面有没有静态代码块,如果有,它先去执行父类里面静态代码块里面的内容,当父类的静态代码块里面的内容执行完毕之后,接着去执行子类(自己这个类)里面的静态代码块,当子类的静态代码块执行完毕之后,它接着又去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法,这个就是一个对象的初始化顺序。

总结:

对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。

注意:子类的构造方法,不管这个构造方法带不带参数,默认的它都会先去寻找父类的不带参数的构造方法。如果父类没有不带参数的构造方法,那么子类必须用supper关键子来调用父类带参数的构造方法,否则编译不能通过。

Java课程标准

《Java程序设计》课程标准 一、课程概述 (一)课程性质 本课程是软件技术专业的一门专业核心课程,也是计算机网络专业、计算机应用专业的必修课程。根据高职高专的教学目的和要求,通过对本课程的学习,使学生掌握面向对象程序设计的思想和基本方法,逐步形成面向对象的思维方式,能够熟练使用JDK开发环境进行Java程序设计和调试,具备基本的Java平台下软件项目开发技能,初步具备现代企业对Java软件开发工程师的岗位技术要求,并能在今后的学习和工作中,结合自己的专业知识,开发相应的计算机应用程序,同时,为以后的学习和应用打下基础。 (二)课程定位 本课程是计算机软件技术专业的专业核心课程,是理论与实践相结合的课程,实践性很强,本课程的前导课程有《C语言程序设计》,《数据结构》等基础课程,它为学习本课程提供编程基础理念和知识,后续课程有《J2EE》、《移动应用开发》,地位十分重要。 (三)课程设计思路 本课程标准按照“校企合作、工学结合、专业教育与职业教育融通”的改革思路,根据“工作过程系统化课程开发”的思路和学生的认知规律,通过对软件开发过程的深入分析,在对软件开发所涵盖的岗位群进行工作任务与职业能力分析的基础上,确定以具有代表性的典型工作任务为中心,实际项目为载体,对课程知识进行序化和重构,对教学内容进行重新

组合,让学生在完成具体项目的过程中来构建相关理论知识,并发展职业能力。课程内容突出对学生职业能力的训练,理论知识的选取紧紧围绕工作任务完成的需要来进行,同时又充分考虑高等职业教育对理论知识学习的需要,并融合计算机程序设计员国家职业资格证书对知识、能力和素质的要求。以培养岗位职业能力为主线,按照典型任务序化知识,并将知识融入任务情景之中。以工作任务为中心整合理论与实践,实现理论与实践的一体化。项目的设计由简单到复杂,理论知识采取循环式教学。 本课程在第二学年上学期开设,总学时为146课时、学分数为5分。本课程采用“任务驱动,案例教学,一体化课堂”的教学模式开展教学。 课程内容由理论教学、实验教学和实训教学三部分组成,其中理论教学60学时,实验教学60学时,实训教学26学时,实践和理论教学的比例大为1:1,是一门以实践为主的课程。 本课程的授课全部安排在设施先进的理实一体化多媒体机房进行,教学中以学生为中心,教师全程负责讲授知识、答疑解惑、指导任务设计,充分调动师生双方的积极性,达成教学目标。 本课程改革传统的考试评价方式,采用形式多样的考核评价模式,由实训作品展示代替期末考试,更注重过程性考核。 二、课程目标 本课程的总体目标是:培养学生具备从事Java编程所必需的基本知识和基本技能,初步形成解决实际问题的能力,并形成良好的编程习惯,培养学生的自主学习和创新能力,为从事程序设计和开发工作打下坚实基础。 (一)课程工作任务目标 1、基本知识教学目标: ●通过讲授,使学生 ◆熟练掌握赋值语句、注释语句、运算符、数据常用类型等语言基础; ◆熟练掌握程序结构及基本语句的用法; ◆掌握常用函数、数组的概念及其用法; ◆熟练类、对象、接口等概念及其定义、应用; ◆熟练掌握封装、继承、多态的作用及使用方法; ◆掌握组件和事件的概念,学会常用组件的常用方法; ◆熟练掌握应用程序的设计;

java实训报告总结

java实训报告总结 java实训报告总结 作为就业培训,项目的好坏对培训质量的影响十分大,常常 是决定性的作用。这篇文章是关于在学习JAVA软件开发时练习项 目的总结,简单总结为以下几点:作为就业培训,项目的好坏对 培训质量的影响十分大,常常是决定性的作用。这篇文章是关于 在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:1、项目一定要全新的项目,不能是以前做过的2、项目一定要企 业真实项目,不能是精简以后的,不能脱离实际应用系统3、在开发时要和企业的开发保持一致4、在做项目的时候不应该有参考代码长话短说就是以上几点,如果你想要的了解,可以继续往后看。一:项目的地位因为参加就业培训的学员很多都是有一定的计算 机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕 业的学生,多少都有一些基础。他们欠缺的主要是两点:(1)不 能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是 皮毛,不能满足就业的需要。(2)没有任何实际的开发经验,完 全是想象中学习,考试还行,一到实际开发和应用就歇菜了。解 决的方法就是通过项目练习,对所学知识进行深化,然后通过项 目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的 实际要求。二:如何选择项目项目既然那么重要,肯定不能随随 便便找项目,那么究竟如何来选择呢?根据Java的研究和实践经

验总结,选择项目的时候要注意以下方面:1:项目不能太大,也 不能太小这个要根据项目练习的阶段,练习的时间,练习的目标 来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。2:项目不能脱离实际应用系统项目应该 是实际的系统,或者是实际系统的简化和抽象,不能够是没有实 战意义的教学性或者是纯练习性的项目。因为培训的时间有限, 必须让学员尽快地融入到实际项目的开发当中去。任何人接受和 掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。 3:项目应能覆盖所学的 主要知识点学以致用,学完的知识点需要到应用中使用,才能够 真正理解和掌握,再说了,软件开发是一个动手能力要求很高的 行业,什么算会了,那就是能够做出来,写出代码来,把问题解 决了,你就算会了。4:最后综合项目一定要是实际应用系统学员 经过这个项目的练习,就要走上实际的工作岗位了,如果这个系 统还达不到实际应用系统的标准,学员练习过后也还是达不到企 业实际的需要,那么这个培训应该说质量就不高了。理想的状况 是这个项目就是实际项目,到时候学员就业到另外一个公司,不 过是换个地方干活而已,完全没有技能上的问题。 123456下一页java实训报告总结 三:Java怎么选择项目这个不是靠想象,而是根据实际的情 况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。我们可以采用

java模拟试题附答案(一)

scjp模拟试题(一) Question No: 1 1.public class test ( 2. public static void main (String args[]) { 3. int i = 0xFFFFFFF1; 4. int j = ~i; 5. 6. } 7. ) What is the decimal value of j at line 5? A. 0 B. 1 C. 14 D. –15 E. An error at line 3 causes compilation to fail. F. An error at line 4 causes compilation to fail. 答案: C Question No: 2 Given: Integer i = new Integer (42); Long 1 = new Long (42); Double d = new Double (42.0); Which two expressions evaluate to True? (Choose Two) A. (i ==1) B. (i == d) C. (d == 1) D. (i.equals (d))

E. (d.equals (i)) F. (i.equals (42)) 答案: D, E Question No: 3 Exhibit : 1. public class test ( 2. private static int j = 0; 3. 4. private static boolean methodB(int k) ( 5. j += k; 6. return true; 6. ) 7. 8. public static void methodA(int i) { 9. boolean b: 10. b = i < 10 | methodB (4); 11. b = i < 10 || methodB (8); 12. } 13. 14. public static void main (String args[] ) ( 15. methodA (0); 16. system.out.printIn(j); 17. ) 18. ) What is the result? A. The program prints “0” B. The program prints “4” C. The program prints “8”

计算机java实习日记

计算机java实习日记 【篇一:计算机毕业实习日记34篇】 实习日记 一 20010-4-1星期四 实习的第一天,感觉心里空空的,毕竟昔日在学校的作息时间,一 下子被工作所取代,还真有点不适应。其实在此之前我也作好了进 入社会的准备,以前经历过一次毕业,现在总比第一次毕业时“无所 适从”的感觉要好很多,心态也放得更为平和。如果真要说点与众不 同的话,那就是明显感觉到:多了一些信心与实在。 二 2010-4-2星期五 今天下班后回宿舍上机调试程序,一个java网站,用tomcat作服 务器,在被浏览器加载的时候总是无法显示出来,页面提示出错信息:500错误。到服务器日志查找原因,有一个“数据加载失败”的提示。数据库用的是sql server2000,原以为是tomcat配置文件的问题,到网上查了很多相关资料,改了又改一直没搞定,头都大了, 一直到12点才郁闷的关机睡觉! 三 2010-4-5星期一 工作也两三天了,员工也已熟悉,可惜他们都不是编程高手,要不 我就可以直接向他们问一些我在做网站时遇到的难题了。唉,谁叫 我找一个与专业不怎么相干的单位来实习呢!可说归说,事还得做:与客户交谈,打电话询问相关事宜,遇到好心的客户还好,不会刁 难你,要是来了一个挑三检四的就不好应付了,至少你得耍点小聪明,当然不能惹客户不高兴,要不过后会接到老板的“呼叫”的。其 实最简单的对付办法也很简单:你只管顺着客户的意思,点头即可!四 2010-4-6星期二 最近到网上找了些视频资料,看后很过瘾,可看归看,一动手写代 码就伤神了。忘说内容了,其实看的就几个与java编程相关的开源 框架(struts+spring+hibernate)而已,不过涉及到的东西就多了,开发平台用的是eclipse+myeclipse,这个还好应付,装上设一下 环境变量就搞定,跟jdk差不多。难的是在这之上的插件的应用,要

java课程教学大纲

课程教学大纲编写体例: 《java语言程序设计》课程教学大纲(供计算机科学与技术专业使用) 一、前言 《Java语言程序设计》是计算机科学与技术专业的一门专业课程。Java语言是面向对象技术成功应用的著名范例,集平台无关特性、安全机制、高可靠性和内嵌的网络支持于一身的特色使之成为当前编写网络程序的首选工具之一。 本课程选用教材为《Java2实用教程》(耿祥义等编著清华大学出版社),主要介绍Java编程的基础知识和Java的面向对象编程。学生在学习本课程之前应具备计算机操作知识及一定编程基础。 前期课程:计算机基础知识、C++程序设计、数据结构教学任务与目标:通过教学,使学生能够熟练掌握面向对象编程的技术,能运用java程序设计语言编写应用程序,培养学生的实践能力和创新能力。 总学时:54。 学分: 主要教学形式:课堂教学、实验教学 二、教学内容与要求 第一章Java语言入门 (一)教学目的与要求

1、了解Java的发展历史 2、掌握Java语言的特点 3、熟悉Java的开发过程与运行环境 (二)教学内容 本章主要讲述了java 语言产生的背景、面向对象程序设计的特点、应用java语言进行程序设计的开发环境和过程等。并举例说明。 (三)教学形式与方法 课堂讲授结合多媒体影视课件教学、并在课堂进行实例演示。 第二章标识符、关键字和数据类型(一)教学目的与要求 1、了解标识符、关键字的概念 2、熟悉Java中标识符的命名规则 3、掌握Java语言的基本数据类型并会灵活运用 (二)教学内容 对照C语言学习java语言程序中的标识符和关键字的概念、意义等,详细学习java中的八种基本数据类型 (三)教学形式与方法 课堂讲授结合多媒体影视课件教学、并在课堂进行实例演示。 第三章运算符、表达式和语句 (一)教学目的与要求 1、了解运算符、表达式和语句的概念 2、掌握Java语言的语句的基本语法

java实训报告

工业职业技术学院 (JAVA实训报告) (2014 ~ 2015 学年第 2 学期) 实训地点:建设实训室 指导教师:洋、春宏 专业班级:软件3131 学生:25号王军琦 2015年7月10日

目录 实训题目 (2) 实训容 (2) 1需求分析 (2) 1.1功能需求分析 (2) 1.2性能需求分析 (3) 2 数据库设计 (3) 3系统实现 (7) 3.1登录窗体和系统主界面设计 (7) 3.2添加用户界面 (9) 3.3修改用户界面 (11) 3.5查询用户界面 (15) 实习心得 (18) 参考文献 (19)

实训题目 学生信息管理系统 实训容 1需求分析 学生信息管理系统,是对学生的个人信息,课程信息,成绩信息以信息的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少人力资源局限性导致的储存信息量大,信息存储错误,混淆等问题,合理进行信息存储,是学校能够合理录入学生的个人自料,学期成绩情况,以及课程安排,为学校师生的工作提供方便。 1.1功能需求分析 学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息,课程信息等。对于学校来讲,学生信息管理系统是不可缺少的组成部分,他有效的管理学生档案,对学校学生的变动和统计起着重要的管理作用。 本系统根据学校管理的实际要求,结合学生信息管理的实际流程要,需实现以下功能: (1)能够对学生的有关资料进行输入,查询,修改,删除。 (2)能够为学校提供强大的查询功能,以使管理人员了解和掌握学生的具体情况。 (3)能够对数据库和登陆记录进行清理。 (4)可以对用户进行修改密码,新增用户。

模拟售票系统java编程

/* 项目:用多线程设计一个模拟火车站售票大厅的工作情形。 问题描述:火车站有许多售票窗口,有些开放,有些不开放。顾客进入火车站售票厅后,到某个售票窗口排队等候,排到了就办理业务,然后离去。如图2.1所示。 */ /* *共有五个类: *SimulateRailwayStation:具体运行主类; *RailwayStation:火车站售票大厅类 *Agent类:代表火车站售票窗口类; *Customer类:顾客类; *List类:存储类 */ import java.util.Date; import java.awt.*; import java.awt.event.*; public class SimulateRailwayStation extends Frame implements ActionListener { //预设火车站售票大厅有10个售票窗口 protected static final int NUM_AGANTS=10; //预设目前正在售票的窗口为6个 protected static final int NUM_INITIAL_AGANTS=6; //设置每个窗口办理售票业务的时间 protected static final int BUSINESS_DELAY=6000; //设置有10辆火车的座位可以出售 protected static final int MAX_TRAIN_NUM=10; //设置每个窗口从一个顾客完成到下一个顾客开始的时间间隔 protected static final int MAX_NO_CUSTOMERS=200; //定义按钮,手动添加顾客。 private Button addcus=new Button("添加顾客"); //定义按钮,模拟顾客自己离开 private Button delcus=new Button("顾客离去"); //定义按钮,增加售票窗口 private Button addagent=new Button("增加售票窗口"); //定义按钮,关闭售票窗口 private Button delagent=new Button("关闭售票窗口"); //10辆火车班次的信息 protected static String[] train_num={"南京->北京,46次","南京->上海,34次","南京->福州,231次","南京->杭州,65次","南京->武汉,112次","南京->成都,77次","南京->天津,21次","南京->徐州,134次","南京->乌鲁目齐,335次","南京->合肥,456次"}; //与上面的信息对应的每辆火车的票务信息 protected static int[] tickets={50,70,50,50,50,120,60,100,50,50};

java实习周记 篇

第一周实习第一个礼拜,算是适应期。主要了解一些公司的背景、产品、发展方向等。刚到实习公司,不是像学校里的朝九晚五,而是朝八晚九。我们不可能简单的了解一些企业文化,简单的学学新的知识就可以了,我们的这个实习必将是一个繁忙的实习,也必将是一个充实的,进步的实习。来到这里,我们要忘掉大学里自由的作息时间,克服困难,养成良好的工作生活习惯?。基于各方面的原因,虽然在去之前我们做了比较充足的准备,但还是遇到了一些困难,例如学习时间长,实战比较繁多,但时间又比较的短,难以保证按时按质按量完成。下午下了班,员工们都回去了,我还在那儿练习,一直到晚上9点,才能回住处休息。中午也没有休息的地方,只能趴在电脑前休息一会,一两周下来,相当地疲惫。但我们都明白自己来实习的任务,都坚持着完成自己的任务和使命。这个星期熟悉了工作环境、java编程的环境配置。等慢慢熟悉起来,做起事情也越来越顺手了.简单的总结为几个字,那就是:多看,多问,多观察,多思考! 第二周 实习第二个礼拜,主要是熟悉java的基础语法,把基础打扎实,以后在开发中才能如鱼得水。学习总结如下几点: 1、类之间的关系:关联、聚合、继承、实现和多态。 2、基本数据类型:整数型、浮点型、字符型、布尔型。 3、常用逻辑语句和循环语句:switch只支持int类型判断,没有写break易穿透至下一个循环,jdk7.0貌似增强了支持数据类型。Break:强行退出循环;Continue:跳出当前循环。 5、修饰符:pbulic,private,protected,default。设置访问权限。 6、Static关键字:静态修饰符,它修饰的方法、类和变量可以全局调用。

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

java模拟试卷3与答案

复习题 3 一、选择题 1. JDK 提供的编译器是(B)。 (A ) java.exe(B ) javac.exe (C) javap.exe( D) javaw.exe 2.以下作为 Java 程序入口的 main 方法声明正确的( C)。 (A ) public void main(String args[]) (B ) public int main(String args[]) (C) public static void main(String args[]) (D ) public static int main(String args[]) 3.以下标识符错误的是( C )。 (A )Public( B)张三( C) class(D ) main 4.java 中定义字符串 String s= ”pzhu”,下面操作可以取得字符串长度的是( A )。 (A ) s.length()( B) s.length( C)s.size()( D) length(s) 5.如下定义数组,操作正确的是(D)。 int a[]={1,2,3}; (A ) a[3]=100(B ) a[0].length( C)a++( D) a.length 6.如下定义二维数组操作错误的是()。 int a[][]={{1,2},{3}}; (A ) a[0][1]=200( B) a[0].length( C) a[1][1]=100( D) a.length 7. 以下数据类型存储空间最大的是(B)。 (A ) byte( B) long(C) float(D ) char 8. 面向对象的三大特性,不包括如下( A)。 (A )异常( B)封装(C)继承(D )多态 9、关于类的定义以下说法错误(B)。 (A )类定义使用class 关键字( B)每个类中必须有一个main 方法 (C)一个包可以包含多个类( D) java 中所有类都是Object 类的子类 10. 关于构造方法以下说法错误的是(D)。 (A)构造方法名必须与类名一致(B)构造方法可以重载 (C)构造方法是通过new 来调用(D)每个类都必须编写构造方法代码 11.关于继承如下说法错误的是(C)。 (A) Java 是单继承的(B)通过extends 来定义继承 (C)所有父类方法都可以被override的(D)继承呈现的是 is a 的关系 12.以下代码执行的结果是 ( C )。 System.out.println(" 攀枝花学院 pzhu".length()); (A)编译错误(B)运行错误(C) 9(D) 14 13. 用来存储键值对的容器是 ()。 (A )ArrayList( B ) LinkedList(C) HashSet( D) HashMap 14、 java 中用来抛出异常的关键字是( C )。 (A) try(B) catch(C) throw(D) throws 15.关于 finally块中的代码,以下说法不正确的是(A)。 (A ) try 块中的 return 语句会中断finally 块中语句的执行 (B )无论 finally 块前的语句运行是否产生异常,其中的语句都会执行 (C) finally 块中的语句通常中用作资源的清理 - 1 -

java开发实习周记25篇

java开发实习周记25篇 第一周 实习第一个礼拜,算是适应期。主要了解一些公司的背景、产品、发展方向等。刚到实习公司,不是像学校里的朝九晚五,而是朝八晚九。我们不可能简单的了解一些企业文化,简单的学学新的知识就可以了,我们的这个实习必将是一个繁忙的实习,也必将是一个充实的,进步的实习。来到这里,我们要忘掉大学里自由的作息时间,克服困难,养成良好的工作生活习惯。基于各方面的原因,虽然在去之前我们做了比较充足的准备,但还是遇到了一些困难,例如学习时间长,实战比较繁多,但时间又比较的短,难以保证按时按质按量完成。下午下了班,员工们都回去了,我还在那儿练习,一直到晚上9点,才能回住处休息。中午也没有休息的地方,只能趴在电脑前休息一会,一两周下来,相当地疲惫。但我们都明白自己来实习的任务,都坚持着完成自己的任务和使命。这个星期熟悉了工作环境、java编程的环境配臵。等慢慢熟悉起来,做起事情也越来越顺手了.简单的总结为几个字,那就是:多看,多问,多观察,多思考! 第二周 实习第二个礼拜,主要是熟悉java的基础语法,把基础打扎实,以后在开发中才能如鱼得水。学习总结如下几点: 1、类之间的关系:关联、聚合、继承、实现和多态。 2、基本数据类型:整数型、浮点型、字符型、布尔型。

3、常用逻辑语句和循环语句:switch只支持int类型判断,没有写break易穿透至下一个循环,jdk7.0貌似增强了支持数据类型。 4、break:强行退出循环;continue:跳出当前循环。 5、修饰符:pbulic,private,protected,default。设臵访问权限。 6、static关键字:静态修饰符,它修饰的方法、类和变量可以全局调用。 7、final关键字:禁止重写。 8、this关键字:指向自身引用。 9、string:是不可变的字符序列。(两个string变量必须用copy的方式在内存中new出新的数据块) 10、stringbuffer:是可变的字符序列,可以直接添加字符。 第三周 实习第三个礼拜,主要是熟悉java的高级语法(核心) 继承:子类继承父类的所有属性和方法,如果方法和属性被private修饰,子类则无法读取。子类使用super关键字继承。父类无法调用子类方法。构造方法:方法名称必须与类名相同,且没有返回值。object类是所有类的父类,即java中的根类。无参构造方法默认继承object的。(构造方法的重载,实现不同参数的构造) 重载:方法相同,参数类型不同,数量不同。构造方法中也

java-课程标准

国家改革发展示范校重点建设项目 专业建设 课程标准 课程名称: java语言 适用专业:计算机 负责人: 二○一三年六月

《java语言》课程标准 课程代码课程类别基础课 课程类型理实一体课课程性质必修 课程学时60 开设学期 1 适用专业计算机合作开发企业 执笔人王德明审核人 1.课程定位与设计思路 本课程设计是坚持以就业为导向,与校企合作、工学结合的办学模式紧密结合,在教学中坚持以学生为主体的现代教学理念,以技能学习为核心,以学生获得职业能力为目标,提高学生的自主学习能力,为其胜任岗位工作和可持续发展打基础。 本课程的教学重点和难点是软件的选择和做出正确的评价,特别是选择软件部分更为重要。在教学中通过采取不同的教学方法好手段,在不同的课堂教学,解决重点和难点问题。 课堂教学设计中,注意教学内容、教学方法、教学手段、教学地点、教学模式、教学组织形式之间的协调、适应关系,教学内容的选择与实际工作过程相结合,教学的方法选择与学生的实际情况相符合,教学组织形式与教学地点相符合。灵活运用教学方法,根据教学内容、学生特点选择合适的教学方方法,本课程除常用的讲授法外,还设计、应用项目教学法、四阶段教学法等方法。 在学生学习过程中,针对每一本部分内容都进行考试考核,对学生在专业能力、方法能力、社会能力等方面进行评价。主要采取闭卷笔试、开卷笔试、口试、操作考核、报告、汇报等不同的考核方式。对每个学生都由企业、教师、学生进行评价,实现全员的多主体评价。采用百分制。 2.课程目标 培养学生能够独立编写JAVA程序,解决在使用运用计算机过程中出现的常见问题,提高学生对计算机的使用能力,使学生具有利用所学知识解决学习、工作、生活中常见问题的能力,为考试及其职业生涯的发展和终身学习奠定基础。 2.1知识目标 使学生掌握JAVA语言的的发展、环境构建、语法基础、面向对象程序设计、

java实训报告总结(精)

java实训报告总结 作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习java软件开发时练习项目的总结,简单总结为以下几点: 作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习java软件开发时练习项目的总结,简单总结为以下几点: 1、项目一定要全新的项目,不能是以前做过的 2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统 3、在开发时要和企业的开发保持一致 4、在做项目的时候不应该有参考代码 长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。 一:项目的地位 因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。

他们欠缺的主要是两点: (1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。 (2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。 解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。 二:如何选择项目 项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据java的研究和实践经验总结,选择项目的时候要注意以下方面: 1:项目不能太大,也不能太小 这个要根据项目练习的阶段,练习的时间,练习的目标来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。 2:项目不能脱离实际应用系统

项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。 3:项目应能覆盖所学的主要知识点 学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。 4:最后综合项目一定要是实际应用系统 学员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。 三:java怎么选择项目

JAVA模拟键盘鼠标操作

//可以在eclipse下直接运行的示例程序: package key_robot; import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; public class key_robot { public key_robot() { } // 鼠标单击,要双击就连续调用 private static void pressMouse(Robot r, int m, int delay) { r.mousePress(m); r.delay(10); r.mouseRelease(m); r.delay(delay); } // 键盘输入方法 private static void pressKeys(Robot r, int[] ks, int delay) { for (int i = 0; i < ks.length; i++) { r.keyPress(ks[i]); r.delay(10); r.keyRelease(ks[i]); r.delay(delay); } } public static void main(String[] args) throws Exception { final Robot rb = new Robot(); new Thread() { public void run() { rb.delay(2000); // 模拟回车 rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); } }.start();

java模拟试题(带答案)

判断题 1.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√)2.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一 个各属性与赋值对象相同的新对象。(×) 3.所谓抽象类就是包含有抽象方法的类。(×) 4.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准 输出System.out和标准错误输出System.err。(√)5.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是 正确的。(×)6.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序 不一定终止运行。(√) 7.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。 (×) 8.一个容器中可以混合使用多种布局策略。(×) 9.Java中,并非每个事件类都只对应一个事件。(√) 10.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节 码文件。(√) 11.Java Applet是由独立的解释器程序来运行的。(×) 12.Java的字符类型采用的是ASCII编码。(×) 13.Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。(√) 14.System类不能实例化,即不能创建System类的对象。(×) 15.用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。(√)填空题 1 java 源程序编译命令是 javac 2 java 应用程序中有一个main()方法,它前面有三个修饰符是 public , static , void 3 java语言数据类型可分为两大类,一类称为基本数据类型 ,另一类称为引用数据类型 4 在转向语句中, continue 语句使得程序结束本次循环,回到循环的条件测试部分继续执行。 5设x为float型变量, y为 double型变量, a为 int型变量,已知 x=2.5f,a=7 ,y=4.22 则表达式x+a%3*(int)x%(int)y的值为 4.5 6设x为float型变量, y为 double型变量, a为 int型变量,b 为long 型变量,c为char 型,则表达式x+y*a/x+b/y+c 的值为 double 类型 7设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120 。 int s = 0 ;

JAVA实习周记25篇

第一周 实习第一个礼拜,算是适应期。主要了解一些公司的背景、产品、发展方向等。刚到实习公司,不是像学校里的朝九晚五,而是朝八晚九。我们不可能简单的了解一些企业文化,简单的学学新的知识就可以了,我们的这个实习必将是一个繁忙的实习,也必将是一个充实的,进步的实习。来到这里,我们要忘掉大学里自由的作息时间,克服困难,养成良好的工作生活习惯。基于各方面的原因,虽然在去之前我们做了比较充足的准备,但还是遇到了一些困难,例如学习时间长,实战比较繁多,但时间又比较的短,难以保证按时按质按量完成。下午下了班,员工们都回去了,我还在那儿练习,一直到晚上9点,才能回住处休息。中午也没有休息的地方,只能趴在电脑前休息一会,一两周下来,相当地疲惫。但我们都明白自己来实习的任务,都坚持着完成自己的任务和使命。这个星期熟悉了工作环境、java编程的环境配置。等慢慢熟悉起来,做起事情也越来越顺手了.简单的总结为几个字,那就是:多看,多问,多观察,多思考!

第二周 实习第二个礼拜,主要是熟悉java的基础语法,把基础打扎实,以后在开发中才能如鱼得水。学习总结如下几点: 1、类之间的关系:关联、聚合、继承、实现和多态。 2、基本数据类型:整数型、浮点型、字符型、布尔型。 3、常用逻辑语句和循环语句:switch只支持int类型判断,没有写break易穿透至下一个循环,jdk7.0貌似增强了支持数据类型。Break:强行退出循环;Continue:跳出当前循环。 5、修饰符:pbulic,private,protected,default。设置访问权限。 6、Static关键字:静态修饰符,它修饰的方法、类和变量可以全局调用。 7、Final关键字:禁止重写。 8、This关键字:指向自身引用。 9、string:是不可变的字符序列。(两个string变量必须用copy的方式在内存中new出新的数据块) 10、stringBuffer:是可变的字符序列,可以直接添加字符。

java模拟试卷及答案及解析4

复习题4 一、选择题 1.在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送( D ) A、调用语句 B、命令 C、口令 D、消息 2.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点:( B ) A、安全性 B、多线程 C、跨平台 D、可移值 3.编写和运行Java applet程序与编写和运行Java application程序不同的步骤是:( B ) A、编写源代码 B、编写HTML文件调用该小程序,以.html为扩展名存入相同文件夹 C、编译过程 D、解释执行

4.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。( B ) A、8 B、16 C、32 D、64 5.关于下列程序段的输出结果,说法正确的是:( D ) public class MyClass{ static int i; public static void main(String argv[]){ System.out.println(i); } } A、有错误,变量i没有初始化。 B、null C、1 D、0 6.下列代码的执行结果是:( B ) public class Test3{ public static void main(String args[]){ System.out.print(100%3);

. System.out.print(","); System.out.println(100%3.0); } } A、1,1 B、1,

C、1.0,1 D、1.0,1.0 7.下列程序段的输出结果是:( B ) void complicatedexpression_r(){ int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); } A、true B、false C、1 D、0 8.给出下列代码片段:( D ) if(x>0){System.out.println("first");} else if(x>-3){ System.out.println("second");} else {System.out.println("third");} 请问x处于什么范围时将打印字符串“second”? A、x>0 B、x>

大学生暑假java实习日记三篇

大学生暑假java实习日记三篇 篇一 大学生活临近了尾声,这短短的三年,却是我的人生中弥足珍贵的时光。在这三年里,我从一个莽撞少年成长为一名合格的大学生,用脱胎换骨来形容并不为过。总结过去可以拨开时间的迷雾,清晰的回首所走过的路,从而为将来的人生旅程准备一些经验和教训。 大学生活主线是学习。大学学习是迥然不同于以往的一种新形式,它赋予了学习者更大的自主性和更广阔的思维空间,同时也对学习者提出了更高的要求。在这种半开放式的教学模式下,要求学习者必须有明确的学习目的,有更强的选择辨别能力和更强的自学能力。对于这个方面,我应该感谢大学这四年的学习生涯,在这期间的历次挫折与成功,使我真正知道了怎样进行自我学习,怎样有选择有目的的学习,随之而来的是自己自学能力和学习效率的提高。而学习之外的课外科技活动的参与,同时也是对所学知识的一种巩固和加强,它不仅提高了我的动手能力,拓宽了我的知识面,而且在不断的探索过程中,也促使自己学习更多更新的东西,这更进一步丰富了自己的理论知识。 实习是每一个大学毕业生必须拥有的一段经历,它使我们在实践中了解社会、在实践中巩固知识;实习又是对每一位大学毕业生专业知识的一种检验,它让我们学到了很多在课堂上根本就学不到的知识,既开阔了视野,又增长了见识,为我们以后进一步走向社会打下坚实的基础,也是我们走向工作岗位的第一步。 通过此次实习,让我学到了很多课堂上更本学不到的东西,仿佛自己一下子成熟了,懂得了做人做事的道理,也懂得了学习的意义,时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的,只要勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的重任,看清了自己的人生方向,也让我认识到了文秘工作应支持仔细认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到什么事都要总代表地去思考,多听别人的建议,不要太过急燥,要对自己所做事去负责,不要轻易的去承诺,承诺了就要努力去兑现。单位也培养了我的实际动手能力,增加了实际的操作经验,对实际的文秘工作的有了一个新的开始,更好地为我们今后的工作积累经验。 我知道工作是一项热情的事业,并且要持之以恒的品质精神和吃苦耐劳的品质。我觉得重要的是在这段实习期间里,我第一次真正的融入了社会,在实践中了解社会掌握了一些与人交往的技能,并且在次期间,我注意观察了前辈是怎样与上级交往,怎样处理之间的关系。利用这次难得的机会,也打开了视野,增长了见识,为我们以后进一步走向社会打下坚实的基础。

Java实习报告心得总结

Java实习报告心得总结 Java实习的开展能使实习生们在编程的理论知识上有所巩固和深化。下面是xx推荐给大家的,希望能带给大家帮助。 篇一:1、传统的错误观念 以前以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那如何定位如何解决通通跟一样能力有关,debug追踪能力,也称调试.在项目组工作不愁源码,但问题是蛋糕摆在面前,你如何去消化 有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题.但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然而然,那段“源码”才真正属于你. 2、如何调试追踪 如果你能在短短的时间内就看到问题点在那,放下断点去追踪,出去找工作,绝对没问题.出现问题的时候,不要光看代码,要用实际行动去追踪运行期间的具体值,那是最好途径.eclipse是个很爽的idea,这点做的很好.例如页面内容显示不是自己想要的数据,我们要先从数据库查询语句去

下手,设置断点,一步一步step over,让sql字段(存取最终sql语句的字符串)运行到有值,inspect进去看,如果还看不出来,就点击它,copy后在sql客户端去实际运行,看看实际查询出来的表是什么,如果是对的,有可能就是页面调用的错误或者action逻辑的传值问题. 页面错误的调试,基本方法是用右键点击实际页查看源代码,copy 到editplus,就能看到具体错误发生在那几行.通常有几种常见的错误,.例如.缺少对象这种很多时候是有些被你调用的字段有可能为空的情况出现的,可以加if(xxx=null)语句加保护.追踪的方法基本就是用alert语句,放在有可能出错的地方.毕业实习总结 3、一些习惯 遇到问题先自己思考,无从下手再找高手帮忙看看,注意他帮你看的思路,别在一旁闲着,看多了自己也会了,不然你一辈子都停留在那种水平,从人身上学到的东西远远比书多的多. 解决了一个问题后,要去究根问底去找到问题产生的起因,以防你下次遇到类似的问题再浪费同样的时间. 把代码写的漂亮,注释,空行,规范一样不能少,可读性是放在第一位.曾经看过一个高手写的代码,真的一看就是不同水平的人写的,几乎很完美,读起来很流畅,方便自己也方便别人.

相关主题