JAVA程序设计学习笔记.docx
- 文档编号:7471068
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:26
- 大小:32.58KB
JAVA程序设计学习笔记.docx
《JAVA程序设计学习笔记.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计学习笔记.docx(26页珍藏版)》请在冰豆网上搜索。
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是字节数据流与字符数据流之间的一座桥梁。 它读入字节数据流,然后根据字符编码规则交它们转换成字符。 字符编码规则可明确指定或使用该平台预设的字符编码规则。 每一次使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序设计 学习 笔记