JAVA程序设计学习笔记.docx

上传人:b****5 文档编号:7471068 上传时间:2023-01-24 格式:DOCX 页数:26 大小:32.58KB
下载 相关 举报
JAVA程序设计学习笔记.docx_第1页
第1页 / 共26页
JAVA程序设计学习笔记.docx_第2页
第2页 / 共26页
JAVA程序设计学习笔记.docx_第3页
第3页 / 共26页
JAVA程序设计学习笔记.docx_第4页
第4页 / 共26页
JAVA程序设计学习笔记.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

JAVA程序设计学习笔记.docx

《JAVA程序设计学习笔记.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计学习笔记.docx(26页珍藏版)》请在冰豆网上搜索。

JAVA程序设计学习笔记.docx

JAVA程序设计学习笔记

JAVA程序设计(学习笔记)

(一)

第1章 Java环境

1.1Java沿革

    Sun(SunMicrosystems)公司在1995年5月23日正式推出Java,如今Java可用于制作动态网页、企业应用程序设计、全球信息网服务端程序设计等.

1.2Java类库

  Java的程序是由许多的类组成的,类中包含许多的数据及处理这些数据的方法,理论上这些类您都可以自行设计,事实上Java程序设计师们都利用现成的Java类库(classlibraries),这些类库称为JavaAPI.

1.3Java的语言特征

    ·简单

      Java是一种类似C++而比较安全、简单、容易使用的语言,它抛弃了C++中不好用的部分,例如不使用goto语句、不使用指针、不使用多重继承.

  ·Java是一种面向对象的程序语言

      面向对象程序设计(ObjectOrientProgramming)的三个特性是:

      1.数据封装(encapsulation):

        将数据分成私用(private)、保护(protected)、公用(public),实现数据保密的目的.

   2.继承(inheritance):

        有继承关系后,父类(superclass)中的数据(data)或方法(method)其子类(subclass)就可继承使用,子类的子类也可继承使用,实现数据重复(reuse)使用的目的。

   3.多态(polymorphism):

        同样名称的方法,其程序代码不同。

假如父类中有一个叫show()的方法,用于显示生日数据,子类也有一个show()的方法,用于显示电话号码数据,这两个方法都称为show(),但作法不同,程序代码当然不同,子类的show()方法将覆盖父类的show()方法,称为多态,或称同名异式。

  ·Java是一种分布式程序语言

      Java是特地为互联网设计的,当然支持网络上的的应用程序,它是一种分布式程序语言,它有一个庞大的网络类库,支持各种网络阶层的联系。

使用Java要取得远端主机上的文件是很容易的。

    ·Java是一种跨平台的语言程序

      Java源文件经过编译后产生类文件,类文件是一种虚拟的机器代码(pseudocode)称为字节代码(bytecode),必须经过解译程序解译才能执行,因为字节码跟计算机的厂牌无关,所以只要那台计算机安装JAVA解译程序便可执行JAVA程序。

    ·Java是一种多线程语言

      Java语言内建多线程(multi-thread)的功能,在同一个程序中,某一段程序代码设为T1线程,同一段程序或另一段程序代码设为T2线程,则T1与T2线程各自独立执行,JAVA支持许多个线程同时执行。

  ·Java是一种网络语言

      Java的程序能够从网络的URL(UniversalResourceLocator)全球资源地址取得您所要的资源,包括数据文件、影像文件、声音文件等到您的计算机,并加以处理,所以说JAVA是一种网络语言。

  ·Java是一种WEB程序语言

   Java的程序编译后可将类文件及相对应的网页文件放置于网络服务器上,在网络上任何计算机均可通过支持JAVA的浏览器加以执行。

JAVA的APPLET程序是用户端(client)执行程序,但servlet程序存于网络服务器上,是服务端(server)执行程序。

1.4Java系统的取得与安装

    Java系统一般包含四个部分:

    JAVA环境(environment)

        JAVA语言(language)

        JAVAAPI应用程序接口(ApplicationProgrammingInterface)

        JAVA类别库(classlibraries)

    JDK 是JavaDeveloper'sKit的简称,意即Java的开发工具,这是旧的称呼,新的称呼为Java2SDK。

Java2SDK包含这四个部分。

    Java2SDK开发工具可从SUN公司网站下载,目前JAVA的正式版为JDK1.4,简称为J2SE。

  您执行j2sdk-1_4_0_01-windows-i586.exe后,自动安装完JAVA环境,同时也自动安装了JDBC。

若您将JAVA安装于c:

\jdk目录中,那么您在c:

\jdk中将发现一个src.jar的压缩文件,这是J2SE源程序的压缩文件,可使用WinZip软件将它解压后存入c:

\jdk中,那么c:

\jdk\src\java目录就是整个JAVA程序套件了。

整个JAVA的执行文件存于c:

\jdk\bin目录中,类文件存于c:

\jdk\lib\tools.jar,为了操作方便,可将这些路径加入自动批处理文件:

        @echooff

        prompt$p$g

        path.;c:

\jdk\bin;

        setclasspath=.;c:

\jdk\lib\tools.jar;

    若自动批处理文件中已有PATH,可将;.;c:

\jdk\bin;附加在原来PATH尾末;若已有setclasspath,可将;.;c:

\jdk\lib\tools.jar;附加到classpath尾末。

1.5JAVA编译程序

  编译程序javac.exe用于将JAVA源程序编译成节节码的.class类文件给支持JAVA的浏览器                                                                                                                                                                                                                                                                                                                                                                                                                                      5.   将i加入总和sum

  6.   将i加上1

  7.输出n和总和sum

    [程序Sum.java]

    publicclassSum

    {

        publicstaticvoidmain(Stringargs[])

        {

          intn=Integer.parseInt(args[0]);

          intsum=0;

          inti=1;

          while(i<=n)

          {

              sum=sum+i;

              i++;

          }

          System.out.println("n="+n+" sum="+sum;);

        }

    }

    [执行结果]

    c:

\javacSum.java

    c:

\javaSum100

    c:

\n=100sum=5050

Java程序设计学习笔记

(二)

4.8do语句

  do{

        statements;

    }while(Boolean);

4.9for语句

    for(initexpr1;testexpr2;incrementexpr3){

        statements;

    }

4.10switch语句

  switch(expr1){

    caseexpr2:

        statements;

        break;

    caseexpr3:

        statements;

        break;

    default:

        statements;

        break;

    }

  例:

从命令行输入一个整数n,当n的值为1、2、3、4时,求n的n次方的值。

  [演算法]

    1.将命令行输入的整数字符串转换为数值n

  2.检查n值

  3.  若n值为1,则result=n

    4.    若n值为2,则result=n*n

    5.    若n值为3,则result=n*n*n

    6.    若n值为4,则result=n*n*n*n

    7.    若n值为其它值,则result=0

    8.输出n及结果result

    [程序Switch.java]

    publicclassSwitch

    {

      publicstaticvoidmain(Stringargs[])

      {

          intn=Integer.parseInt(args[0]);

          intresult;

          switch(n)

          {

            case1:

              result=n;

              break;

            case2:

              result=n*n;

              break;

            case3:

              result=n*n*n;

              break;

            case4:

              result=n*n*n*n;

            default:

              result=0;

              break;

          }

          System.out.println("n="+n+"result="+result);

      }

    }

4.11break语句

  例:

从命令行输入一个整数n,若小于或等于5,则求1+2+...+n的和,否则只累加至5。

  [演算法]

    1.将从命令行输入的整数字符串转换为数值n

  2.设总和sum的初值为0

  3.设索引i的初值为1,条件为i<=n,增值为1

  4.  将i加入总和sum

    5.    若i=5则跳至下一步骤

  6.输出n及总和sum

    [程序Break.java]

  publicclassBreak

    {

      publicstaticvoidmain(Stringargs[])

      {

          intn=Integer.parseInt(args[0]);

          intsum=0;

          for(inti=1;i<=n;i++)

          {

              sum=sum+i;

              if(i==5)break;

          }

          System.out.println("n="+n+"sum="+sum);

      }

    }

4.12continue语句

    continue语句do、for、while语句本体中,忽略其后的那些语句,然后继续执行do、for或while语句。

  例:

求奇数之和,从命令行输入一个整数n,求1+3+5+...+n的和。

  [演算法]

    1.将从命令行输入的整数字符串转换为数值n

  2.设总和sum的初值为0

  3.设索引i的初值为1,条件为i<=n,增值为1

  4.  若(i%2)==0则忽略循环内其后的语句

  5.  将i加入总和sum

  6.输出n及总和sum

    [程序Continue.java]

    publicclassContinue

    {

      publicstaticvoidmain(Stringargs[])

      {

          intn=Integer.parseInt(args[0]);

          intsum=0;

          for(inti=1;i<=n;i++)

          {

              if((i%2)==0)continue;

              sum=sum+i;

          }

          System.out.println("n="+n+"sum="+sum);

      }

    }

4.13return语句

  return语句,中止方法的执行并返回调用程序。

  程序Return.java第5行调用sum()方法,并将参数2和5传到sum()方法中相对应参数a和b,第8-12行为sum()方法,将参数值a和b相加后返回a+b到调用程序Return.java的result,属于传值调用,将其和2+5=7返回。

  【程序Return.java】

  publicclassReturn

    {

      publicstaticvoidmain(Stringargs[])

      {

          intresult=sum(2,5);

          System.out.println("sum(2,5)="+result);

      }

      staticintsum(inta,intb)

      {

          return(a+b);

      }

    }

4.14throw语句

    throw语句用于产生一个例外并丢出一些信息。

“运算式”必须能够产生一个对象的参考地址,该对象必须是Throwable的子类对象。

例如:

  thrownewDividedByZero();

    DividedByZero()类继承自ArithmeticException,属于Throwable派生类,故newDividedByZero()所建立的为Throwable派生类对象。

  程序ThrowTest.java中dividedByZero例外,显示“除以零所产生的例外”信息。

程序中第12行divide(9,3)计算9除以3得结果3,但第13行divide(7,0),因除数为0所以产生例外。

 【程序ThrowTest.java】

    classDividedByZeroextendsArithmeticException

    {

        publicDividedByZero()

        {

            super("除以零所产生的例外。

");

        }

    }

    publicclassThrowTest

    {

        publicstaticvoidmain(Stringargs[])

        {

            System.out.println("divide(9,3)="+divide(9,3));

            System.out.println("divide(7,0)="+divide(7,0))

        }

        publicstaticintdivide(inta,intb)

        {

            if(b!

=0)

              return(a/b);

            else

              thrownewDividedByZero();

        }

    }

4.15try语句

    try语句用于捕捉由“try程序模块”语句所丢出的例外。

其格式为

  try

    try程序模块

  catch(例外类名称 识别字)

  catch(程序模块)

    catch(例外类名称 识别字)

  catch(程序模块)

    ...

    finally

    finally程序模块

  “try程序模块”的语句逐一执行直到完成或产生例外时,若“try程序模块”执行完毕,这时若有finally子句则执行“finally程序模块”,若无finally子句则执行try语句的下一个语句。

若“try程序模块”执行而产生例外(exception)时,则执行catch子句中相同例外类名称的“catch程序模块”,若找不到相同的例外类名称则执行较高层次的例外处理后再执行“finally程序模块”。

  程序TryTest.java在第9行将“123”转换整数成功,但第11行将“abc”转换成整数时却失败,产生NumberFormatException的例外,被catch抓到后在屏幕显示“abc不能转换成整数!

”信息。

 【程序TryTest.java】

    publicclassTryTest

    {

      publicstaticvoidmain(Stringargs[])

      {

          inta;

          Strings="abc";

          try

          {

              a=Integer.parseInt("123");

              System.out.println("a="+a);

              a=Integer.parseInt(s);

          }

          catch(NumberFormatExceptione)

          {

              System.out.println("NumberFormatException:

"+s+"不能转换成整数!

");

          }

      }

    }

4.16synchronized语句

  synchronized语句使你可以锁定对象,让指定的程序代码执行时不受干扰,而不需调用对象的synchronized方法。

synchronized语句有两个部分,一个是被锁定的对象,一个是得到锁定要执行的程序模块。

  被锁定的对象通常是对象参考地址,程序模块是锁定执行的语句。

  例如程序SynTest.java中第6行的a数组对象就是我们要锁定的对象,大括号组(第8-10行)为程序模块,也就是得到锁定要执行的语句程序模块,要将一万个整数元素值设置为其索引值,然后输出数组对象中的第1234元素值。

一般而言要处理这么大量的数据总要花费一些时间,若不锁定的话,当处理一半时别的线程来取a数组对象,很可能取得未设置的错误数据,因此使用synchronized将它锁定,要全部执行完任务才能释出。

  【程序SynTest.java】

    publicclassSynTest

    {

      staticinta[]=newint[10000];

      publicSynTest()

      {

          synchronized(a)

          {

            for(inti=0;i

            {

                  a[i]=i;

            }

          }

      }

      publicstaticvoidmain(Stringargs[])

      {

          newSynTest();

          System.out.println("a[1234]="+a[1234]);

      }

    }

Java,程序设计学习笔记(三)

第5章基本输入与输出

5.1System类

    在System类中声明三个类数据域(datafield),即System.in、System.out及System.err。

类数据域System.in为InputStream类的对象,用于系统输入字节数据流,一般指键盘而言。

类数据域System.out为PrintStream类的对象,用于系统输出字节数据流,一般指屏幕而言。

类数据域System.err为PrintStream类的对象,用于系统错误信息的输出,一般指屏幕而言。

    publicfinalclassSystem

    {

      publicfinalstaticInputStreamin=nullInputStream();

      publicfinalstaticPrintStreamout=nullPrintStream();

      publicfinalstaticPrintStreamerr=nullPrintStream();

      publicstaticvoidexit(intstatus);

      ...

    }

5.2字符输入

    从字符输入数据流读取文字资料,使用缓冲器以提高效率,可读入到字符变量、字符数组或字符列。

    一般而言,对Reader对象提出读取要求时会引起另一个读取要求,通常使用FileReader对象或InputStreamReader对象,例:

    BufferedReaderbr=newBufferedReader(newFileReader("test.txt"));

    读入text.txt文本文件字符数据流,使用缓冲区方式读入。

InputStreamReader是字节数据流与字符数据流之间的一座桥梁。

它读入字节数据流,然后根据字符编码规则交它们转换成字符。

    字符编码规则可明确指定或使用该平台预设的字符编码规则。

每一次使

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1