JAVA总结.docx
《JAVA总结.docx》由会员分享,可在线阅读,更多相关《JAVA总结.docx(27页珍藏版)》请在冰点文库上搜索。
JAVA总结
JAVA
1、publicclassFuncMain{//
/*publicstaticvoidmain(string[]args){//--
(1)--
}*/
运行:
找不到符号
/*publicvoidstaticmain(String[]args){//--
(2)--
}*/
运行:
方法声明无效,需要返回类型
/*publicstaticvoidmain(String[]args){//--(3)--
}*/
运行结果:
Hellomain()method
/*publicstaticintmain(String[]args){//--(4)--
}*/
运行:
缺少返回语句
}
2、publicclassFoo{
publicstaticvoidmain(Stringargs[]){
Strings=null;
}
}
改前:
可能尚未初始化变量s
s=null
3、publicclassTest{
staticints;
publicstaticvoidmain(String[]args){
Testt=newTest();
t.start();
}
voidstart(){
intx=7;
twice(x);
}
voidtwice(intx){
x=x*2;
s=x;
}
}
运行结果:
714
4、publicclassFoo{
publicstaticvoidmain(String[]args){
StringBuffera=newStringBuffer("A");
StringBufferb=newStringBuffer("B");
operate(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
}
}
运行结果:
6
6、(数组越界)classFork{
publicstaticvoidmain(String[]args){
if(args.length==1||args[1].equals("test")){//改为if(args.length==0
}else{
}
}
}
改前既“主线程”
运行结果为testcase
7、(继承与覆盖)
classClidder{
}
publicclassClidletextendsClidder{
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();
sooper.getLength()+”,”+sub.getLength());
}
}
/Sub中的getLength()无法覆盖Super中的getLength()
//若改为int,int或long,
运行结果:
run:
4,5
9、classBase{
}
publicclassAlphaextendsBase{
publicstaticvoidmain(String[]args){
newAlpha();
newBase();
}
}
运行结果run:
BaseBase
10、publicclassTest{
publicstaticvoidaMethod()throwsException{
try{
thrownewException();
}finally{
}
}
publicstaticvoidmain(Stringargs[]){
try{
aMethod();
}catch(Exceptione){
}
}
}
运行结果run:
finally
exception
finished
11)publicclassPass{
publicstaticvoidmain(String[1args){
intx=5;
Passp=newPass();
p.doStuff(x);
}
voiddoStuff(intx){
}
}
运行结果run:
doStuffx=5mainx=5
12、(加
)
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);
}
}
运行结果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()){
itr.remove();
}
for(Strings:
sortedSet){
}
}}//main方法和TestSet类定义结束
run:
alphabetatheta
14、classMyExcepextendsException{
publicStringtoString(){return"negative";}
}
publicclassExceptionDemo{
publicstaticvoidmySqrt(inta)throwsMyExcep{
if(a<0)thrownewMyExcep();
}
publicstaticvoidmain(String[]args){
try{mySqrt(25);mySqrt(-5);}
catch(MyExcepe){
}
}
}
运行结果:
5.0
Caughtnegative
15、classBread{
Stringname;
Bread(){this("汉堡");}
Bread(Stringn){
name=n;
}}//构造方法和类定义结束
classLettuce{
}
classPortableMeal{
}
classSandwichextendsPortableMeal{
Breadb=newBread();
Lettucel=newLettuce();
publicSandwich(){
b=newBread("全麦面包");
Sandwich()");
}}//构造方法和类定义结束
publicclassTestObjIniSandwich2{//public类
publicstaticvoidmain(String[]args){//main方法
newSandwich();
}}//main方法和public类定义结束
运行结果:
PortableMeal()
Bread(汉堡)
Lettuce()
Bread(全麦面包)
Sandwich()
16、publicclassTestArrayCopy{
publicstaticvoidmain(Stringargs[]){
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]元素之值
}
}//main方法和public类定义结束
运行结果:
1113
4100
17、importjava.io.*;
publicclassIOReadString{
publicstaticvoidmain(String[]args){
BufferedReaderbr=newBufferedReader(new
InputStreamReader(System.in));
try{
}catch(IOExceptione){}
}
}
输入22
输出22
18、classBase{
inti;
Base(){add
(1);}
voidadd(intv){i+=v;}
}
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属性(接口中只能进行方法声明,不提供方法的实现;当一个类通过关键字implements声明自己使用/或实现一个或多个接口,该类必须实现该接口的所有方法[即提供方法体])
6、Thread(线程)runnable
7、AWT的页面布局方式BorderLayout
8、数组声明:
先声明后创建:
intarray[];array=newint[10];
9.字符输出流FileWriter——>OutputStreamWriter
文件数据流FileInputStream与FileOutputStream
过滤字节流FilterInputStream与FilterOutputStream
数据流(stream)分为输入流[输入流的指向称数据源(DataSource)](InputStream)和输出流[输出流的指向称数据接收器(DataSink)](OutStream)。
10、shortx[];short[]y;short[5]x2;
shortz2[5];short[]z[][];short[]y2=[5];
11、boolean[]b=newboolean[5];",则b[3]=_false_______
布尔值)包括两个值:
True和False
1、(ExtensibleMarkupLanguage,XML)
2、XMLSchema语言也称作XMLSchema定义(XMLSchemaDefinition,XSD)。
3、XSL指扩展样式表语言(EXtensible?
Stylesheet?
Language)。
XSL包括三部分:
XSLT一种用于转换XML文档的语言。
XPath一种用于在XML文档中导航的语言。
XSL-FO一种用于格式化XML文档的语言。
4.XML与HTML的主要差异:
XML不是HTML的替代。
XML和HTML为不同的目的而设计:
XML被设计为传输和存储数据,其焦点是数据的内容。
HTML被设计用来显示数据,其焦点是数据的外观。
HTML旨在显示信息,而XML旨在传输信息。
5.如果你把字符"<"放在XML元素中,会发生错误,这是因为解析器会把它当作新元素的开始
在XML中,有5个预定义的实体引用:
<<小于
>>大于
&&和号
''单引号
""引号
(注释:
在XML中,只有字符"<"和"&"确实是非法的。
大于号是合法的,但是用实体引用来代替它是一个好习惯。
)
0、xlt转换把字变红产品的例子
PRODUCTNAME
{font-family:
Arial;
font-size:
30pt;
font-weight:
bold;
color:
red;
display:
block;
paddingtop:
6pt;
paddingbottom:
6pt
}
PRICE,DESCRIPTION,QUANTITY
{font-family:
Arial;
font-size:
15pt;
color:
teal;
display:
block;
paddingtop:
2pt;
paddingbottom:
2pt
}
<?
XML版本=“1”?
>
<产品prodid=“库”=“玩具”>
<名称><名称>迷你巴士/
<说明>这是为4岁儿童玩具
以上描述><
<75>>价格价格
<量>54</数量>
产品>
</productdata>
1、CyberShoppesells