JAVA总结.docx
《JAVA总结.docx》由会员分享,可在线阅读,更多相关《JAVA总结.docx(30页珍藏版)》请在冰点文库上搜索。
![JAVA总结.docx](https://file1.bingdoc.com/fileroot1/2023-7/8/d0ba3ac5-7e44-4a03-b273-10075f681751/d0ba3ac5-7e44-4a03-b273-10075f6817511.gif)
JAVA总结
JAVA
1、publicclassFuncMain{//
/*publicstaticvoidmain(string[]args){//--
(1)--
System.out.println("Hellomain()method");
}*/
运行:
找不到符号
/*publicvoidstaticmain(String[]args){//--
(2)--
System.out.println("Hellomain()method");
}*/
运行:
方法声明无效,需要返回类型
/*publicstaticvoidmain(String[]args){//--(3)--
System.out.println("Hellomain()method");
}*/
运行结果:
Hellomain()method
/*publicstaticintmain(String[]args){//--(4)--
System.out.println("Hellomain()method");
}*/
运行:
缺少返回语句
}
2、publicclassFoo{
publicstaticvoidmain(Stringargs[]){
Strings=null;
System.out.println("s="+s);
}
}
改前:
可能尚未初始化变量s
s=null
3、publicclassTest{
staticints;
publicstaticvoidmain(String[]args){
Testt=newTest();
t.start();
System.out.print(s);
}
voidstart(){
intx=7;
twice(x);
System.out.print(x+"");
}
voidtwice(intx){
x=x*2;
s=x;
}
}
运行结果:
714
4、publicclassFoo{
publicstaticvoidmain(String[]args){
StringBuffera=newStringBuffer("A");
StringBufferb=newStringBuffer("B");
operate(a,b);
System.out.println(a+","+b);
}
staticvoidoperate(StringBufferx,StringBuffery){
y.append(x);
y=x;
}
}
运行结果:
A,BA
5、packagexcom;
publicclassUseful{
intincrement(intx){return++x;}
}
importxcom.*;//Needy3与Useful不在同一个包//line1
publicclassNeedy3{
publicstaticvoidmain(String[]args){
xcom.Usefulu=newxcom.Useful();//line2
System.out.println(u.increment(5));
}
}
运行结果:
6
6、(数组越界)classFork{
publicstaticvoidmain(String[]args){
if(args.length==1||args[1].equals("test")){//改为if(args.length==0
System.out.println("testcase");
}else{
System.out.println("production"+args[0]);
}
}
}
改前Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:
1
既“主线程”java.lang.ArrayIndexOutOfBoundsException异常:
1
运行结果为testcase
7、(继承与覆盖)
classClidder{
publicfinalvoidflipper(){System.out.println("Clidder");}
}
publicclassClidletextendsClidder{
publicfinalvoidflipper(){System.out.println("Clidlet");}
publicstaticvoidmain(String[]args){
newClidlet().flipper();
}
}
改前//Clidlet的flipper()无法覆盖Clidder的flipper(),被覆盖的类型为final
去掉final
run:
Clidlet
8、(long改为int)classSuper{
publicintgetLength(){return4;}
}
publicclassSubextendsSuper{
publiclonggetLength(){return5;}
publicstaticvoidmain(String[]args){
Supersooper=newSuper();
Subsub=newSub();
System.out.println(
sooper.getLength()+”,”+sub.getLength());
}
}
/Sub中的getLength()无法覆盖Super中的getLength()
//若改为int,int或long,
运行结果:
run:
4,5
9、classBase{
Base(){System.out.print(“Base”);}
}
publicclassAlphaextendsBase{
publicstaticvoidmain(String[]args){
newAlpha();
newBase();
}
}
运行结果run:
BaseBase
10、publicclassTest{
publicstaticvoidaMethod()throwsException{
try{
thrownewException();
}finally{
System.out.println(“finally”);
}
}
publicstaticvoidmain(Stringargs[]){
try{
aMethod();
}catch(Exceptione){
System.out.println(“exception”);
}
System.out.println(“finished”);
}
}
运行结果run:
finally
exception
finished
11)publicclassPass{
publicstaticvoidmain(String[1args){
intx=5;
Passp=newPass();
p.doStuff(x);
System.out.print(”mainx=“+x);
}
voiddoStuff(intx){
System.out.print(”doStuffx=“+x++);
}
}
运行结果run:
doStuffx=5mainx=5
12、(加importjava.io.IOException;
importjava.io.RandomAccessFile;)
publicclassTestIOApp{
publicstaticvoidmain(String[]args)throwsIOException{
RandomAccessFilefile=newRandomAccessFile("test.dat","rw");
file.writeBoolean(true);
file.writeInt(123456);
file.writeInt(7890);
file.writeLong(1000000);
file.writeInt(777);
file.writeFloat(.0001f);
file.seek(5);
System.out.println(file.readInt());
}
}
运行结果run:
7890
13、importjava.util.*;
publicclassTreeSet1{
publicstaticvoidmain(String[]args){
Setset=newHashSet();
set.add("alpha");
set.add("theta");
set.add("beta");
set.add("alpha");
SetsortedSet=newTreeSet(set);
Iteratoritr=sortedSet.iterator();
while(itr.hasNext()){
System.out.print(itr.next()+"");
itr.remove();
}
for(Strings:
sortedSet){
System.out.print("["+s+"]");
}
}}//main方法和TestSet类定义结束
run:
alphabetatheta
14、classMyExcepextendsException{
publicStringtoString(){return"negative";}
}
publicclassExceptionDemo{
publicstaticvoidmySqrt(inta)throwsMyExcep{
if(a<0)thrownewMyExcep();
System.out.println(Math.sqrt(a));
}
publicstaticvoidmain(String[]args){
try{mySqrt(25);mySqrt(-5);}
catch(MyExcepe){
System.out.println("Caught"+e);
}
}
}
运行结果:
5.0
Caughtnegative
15、classBread{
Stringname;
Bread(){this("汉堡");}
Bread(Stringn){
name=n;
System.out.println("Bread("+name+")");
}}//构造方法和类定义结束
classLettuce{
Lettuce(){System.out.println("Lettuce()");}
}
classPortableMeal{
PortableMeal(){System.out.println("PortableMeal()");}
}
classSandwichextendsPortableMeal{
Breadb=newBread();
Lettucel=newLettuce();
publicSandwich(){
b=newBread("全麦面包");
System.out.println("Sandwich()");
}}//构造方法和类定义结束
publicclassTestObjIniSandwich2{//public类
publicstaticvoidmain(String[]args){//main方法
newSandwich();
}}//main方法和public类定义结束
运行结果:
PortableMeal()
Bread(汉堡)
Lettuce()
Bread(全麦面包)
Sandwich()
16、publicclassTestArrayCopy{
publicstaticvoidmain(Stringargs[]){
System.out.println();
int[][]intArr1={{1,6},{2,3},{4,5}};
int[][]intArr2=newint[3][];
System.arraycopy(intArr1,0,intArr2,0,intArr1.length);//数组拷贝
intArr2[1][0]=111;
intArr2[2][1]=100;//修改intArr2[2][1]元素之值
System.out.println(intArr1[1][0]+""+intArr1[1][1]);
System.out.println(intArr1[2][0]+""+intArr1[2][1]);
}
}//main方法和public类定义结束
运行结果:
1113
4100
17、importjava.io.*;
publicclassIOReadString{
publicstaticvoidmain(String[]args){
BufferedReaderbr=newBufferedReader(new
InputStreamReader(System.in));
try{
System.out.println(br.readLine());
}catch(IOExceptione){}
}
}
输入22
输出22
18、classBase{
inti;
Base(){add
(1);}
voidadd(intv){i+=v;}
voidprint(){System.out.println(i);}
}
classExtensionextendsBase{
Extension(){add
(2);}
voidadd(intv){i+=v*2;}
}
publicclassQ073{
publicstaticvoidmain(String[]args){
bogo(newExtension());
}
staticvoidbogo(Baseb){
b.add(8);
b.print();
}
}
运行结果:
22
XML
.XQuery
xmlversion="1.0"encoding="ISO-8859-1"?
>
EverydayItalian
GiadaDeLaurentiis
2005
30.00
HarryPotter
JK.Rowling
2005
29.99
XQueryKickStart
JamesMcGovern
PerBothner
KurtCagle
JamesLinn
VaidyanathanNagarajan
2003
49.99
LearningXML
ErikT.Ray
2003
39.95
可能脚本与结果反过来
(1)【XQuery使用函数来提取XML文档中的数据,doc()用于打开"books.xml"文件:
doc("books.xml")】
下面的路径表达式用于在"books.xml"文件中选取所有的title元素:
doc("books.xml")/bookstore/book/title[/bookstore选取bookstore元素,/book选取bookstore元素下的所有book元素,而/title选取每个book元素下的所有title元素]
上面的XQuery可提取以下数据:
EverydayItalian
HarryPotter
XQueryKickStart
LearningXML
(2)下面的谓语用于选取bookstore元素下的所有book元素,并且所选取的book元素下的price元素的值必须小于30:
doc("books.xml")/bookstore/book[price<30]
上面的XQuery可提取到下面的数据:
HarryPotter
JK.Rowling
2005
29.99
☆(3)doc("books.xml")/bookstore/book[price>30]/title
上面这个表达式可选取bookstore元素下的book元素下所有的title元素,并且其中的price元素的值必须大于30。
下面这个FLWOR表达式所选取的数据和上面的路径表达式是相同的:
for$xindoc("books.xml")/bookstore/book
where$x/price>30
return$x/title
结果是:
XQueryKickStart
LearningXML
通过FLWOR,您可以对结果进行排序:
for$xindoc("books.xml")/bookstore/book
where$x/price>30
orderby$x/title
return$x/title
填空、选择、程序
1.运行Javac生成的是class文件javac-ddirectory与java-cppath
[注意:
若要将Test.class生成在指定目录下,可以使用javac-d命令,如:
javac-dc:
/e:
/project/Test.java(在c:
/目录下生成Test.class)
Javac-cp中的-cp并不是指定Test.java的目录,-cp/-classpath只能是指定类文件(.class文件)的路径
eg:
java-cpe:
/projectTest(指的是调用解释器执行e:
/project中的Test.class字节码)
【-d<目录>表示指定存放生成的类文件的位置,-cp<路径>指定查找用户类文件和注释处理程序的位置】
2、jvm自动垃圾回收JavaVirtualMachine(Java虚拟机)
3、3.Java变量命名规则(Java标识符是大小写敏感,没有最大长度限制,不能和关键字相同[不能以数字开头,要以字母、下划线、$开头)
变量(变量的定义包括变量的类型、变量名、值三部分)类型[按作用域分:
局部变量、类成员变量、方法参数、异常处理参数]
存取权限:
public、defalut、protected、private、static(静态)、final(最终、transient(短暂,暂时性变量)、volatile(易变的,用于声明一个多线程共享变量)
public:
最大的,公共的,共同访问的private:
最小的,只能在本类中访问default:
默认的,只能在本包中访问protected:
在本包,以及不同包的子类中可以访问。
[注意:
Java与C++区别:
Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理;Java提供了丰富的类库;Java实现了多线程技术;Java允许程序动态地装入运行过程中所需要的类,Java不支持结构(结构类型struct)和联合(联合类型union),所有内容封装在类中;Java不支持宏,用关键字final声明常量。
]
4、Jdbc全称区分大小写JavaDataBaseConnectivity,java数据库连接
5、Java接口中定义方法是publicadstract(抽象的)的interface
Java在接口中声明的方法是public和abstract属性(接口中只能进行方法声明,不提供方法的实现;当一个类通过关键字impleme