Java考题.docx

上传人:b****4 文档编号:27486482 上传时间:2023-07-02 格式:DOCX 页数:18 大小:164.39KB
下载 相关 举报
Java考题.docx_第1页
第1页 / 共18页
Java考题.docx_第2页
第2页 / 共18页
Java考题.docx_第3页
第3页 / 共18页
Java考题.docx_第4页
第4页 / 共18页
Java考题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Java考题.docx

《Java考题.docx》由会员分享,可在线阅读,更多相关《Java考题.docx(18页珍藏版)》请在冰豆网上搜索。

Java考题.docx

Java考题

Java考题

3、Java提供两种创建线程方式,一是实现Runabel接口,二是继承Thread类。

线程的操作代码则写于run()方法内,调用线程对象的start()

方法启动线程

11、JDBC中连接数据库将查询出来的数据放到______Result_类的对象中。

18、Java语言单行注释语句是:

//多行注释语句是:

/*……*/。

5、下列常用包中,存放用户图形界面类库的包是A。

A.java.awtB.java.langC.java.utilD.Java.io

2、Java的图形用户界面设计中,一般用到的布局管理器有(列出四种即可)___边界____,___卡片_____,___流式____,____网络_____。

5、Java的默认包是____java.lang。

8、在Java程序中定义的类有两种成员:

属性和方法。

9、Java中所有类都是类Object的子类。

14、抽象类不能实例化,最终类不能继承。

标示符

凡是可以自己起名字的地方都叫标示符,其命名规则如下:

●由字母、“_”、“$”或数字组成

●开头不能为数字

●大小写敏感,无长度限制

标示符应做到见名知意,且不能与关键字相同

Intas;intfor;int3/%s;

goto和const虽从未被使用过,但也被用作java关键字保留

变量

从本质上讲,变量其实是内存的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须先申请(声明),然后必须进行赋值(填充内容),之后才能使用。

程序的执行过程

 

java基本数据类型

4类8种

●逻辑型——boolean

●字符型——char

●整数型——byte、short、int、long

●浮点型——float、double

基本数据类型转换

boolean类型不可转换为其他的数据类型

数据类型按容量大小排序:

byte,short,char->int->long->float->double

byte,short,char三者之间不会互相转化,并且三者之间做运算时首先转换成int类型。

bytea=0,b=1,c=a+b;

容量小的可以向容量大的自动转换,容量大的转为容量小的时需强制转换,强制转换时,容量大的数据不应超过容量小的数据类型的最大表示范围

●三目条件运算符:

?

x?

y:

z;

其中x为boolean类型表达式,先计算x的值,若为true表达式的值为y,否则为z

inta=2,b=1,c=11;

a>b?

3:

c++;(c=11)

●字符串连接运算符:

+,运算符两侧的操作数中只要有一个是字符串类型,系统会自动将另一个操作数转换成为字符串然后再进行连接

inta=0;Strings=a+“”;

当使用System.out.println()语句进行打印时,无论任何类型的数据,都自动转为字符串进行打印

对象和类的概念

面向对象的思想分析问题:

(lizi)

1.考虑问题中有哪些类和对象

2.考虑这些类和对象有哪些属性

3.考虑这些类之间是什么关系定它们之间的方法。

类的成员变量和方法

成员变量可以是Java语言中任何一种数据类型和引用类型

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化

(double)

●引用类型数据占用两块内存(栈内存和堆内存),通过栈内存引用找到其指向的堆中东西

对象的创建包括:

对象的声明、类的实例化和对象的初始化三个部分。

类的构造方法(构造函数/构造器)

●使用new关键字创建一个新的对象时会自动调用其构造方法

●构造方法与类同名而且没有返回值

●使用构造方法用来初始化成员变量

●构造方法(或者方法)执行完之后,在栈内为其所分配的所有的局部变量的内存空间全部消失

●每个开发者自己创建java类后,若没有指定构造方法那么系统会添加一个默认的构造方法:

className(){}

Classa{}

a(){}

方法的重载

方法的重载是指一个类中可以定义有名字相同,但参数不同的多个方法。

两个关键字:

this,static

publicclassTest{

privatestaticinti=0;

Test(){

this.i=1;

System.out.println(i++);

}

publicstaticvoidmain(String[]args){

Testt=newTest();

}

}

Daimazhixingjieguo?

JieshiyixiathiszhideshishuibingshuomingIdezhifangzaineicundenakuaiquyu?

 

J2SDK中主要包

java.lang-包含一些java语言的核心类,如String,Math、Integer、System和Thread,提供常用功能。

该包不需要引入,其里面的内容就可以使用。

本类包括的Object类是java中最原始、最重要的类,每个java类都是它的子类,它实现了每个类都必须具有的基本方法

java.awt,抽象窗口工具集。

java.applet、、java.io、java。

包含执行与网络相关的操作类

java.io包含能提供多种输入输出功能的类

java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数

除了java.lang包之外,其他的类包都不是java语言必须的,如果程序中使用到这些类包时,必须使用import语句将相应的类包导入到程序中。

Java权限修饰符publicprotectedprivatedefault

重写overwrite/override

●在子类中可以根据需要对从基类种继承来的方法进行重写

●重写方法必须和被重写方法具有相同方法名称、参数列表和返回值类型

●重写方法不能使用比被重写方法更严格的访问权限

重写方法最好是去copy父类的方法。

继承中的构造方法

子类的构造过程中必须先调用其父类的构造方法。

●如果子类的构造方法中没有显示地调用基类的构造方法,则系统默认调用基类无参数的构造方法

接口(interface)

接口的特点是:

1.可以实现多重继承

2.接口中声明的属性默认为publicstaticfinal(写不写都可以)的;也只能是publicstaticfinal的(写不写都可以)

3.接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的。

接口可以继承其他接口并添加新的属性和抽象方法

4.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。

与继承关系类似,接口与实现类之间存在多态性。

5.实现接口的类必须实现其中所有的方法,类实现接口时要使用implements关键字

数组的声明

Java中声明数组时不能指定其长度,因为数组是分配在堆上的。

Java中使用关键字new创建数组对象:

数组名=new数组元素类型[数组元素个数]。

一维数组声明

int[]var1;

intvar2[];

var2=newint[5];

intvar[5];//不合法的声明

数组对象的创建

数组初始化(动态初始化,静态初始化)

动态初始化:

数组定义与数组元素分配空间和赋值的操作分开进行,先分配空间之后在赋值

例:

int[]var;

var=newint[2];

var[0]=1;

var[1]=2;varvar

静态初始化:

在定义数组同时就为数组元素分配空间并赋值

inta[]={3,6,9};

默认初始化:

数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化,如:

inta[]=newint[5];

System.out.println(a[3]);

结果输出0

数组的引用

定义并用运算符new为之分配空间后,才可以引用数组中的每个元素,数组元素的饮用方式为:

arrayName[index]

index为数组元素下标,可以使整型常量或整型表达式。

如:

a[3],b[i],c[3*j]

数组元素下标从0开始,长度为n的数组合法下标取值范围是0~n-1

数组长度:

每个数组都有一个属性(并非方法,没有加括号)length指明它的长度:

a.length的值为数组a的长度(元素个数)。

二维数组

二维数组可以看成为数组的数组,例如

int[][]a={{1,2},{3,4,5,6},{7,8,9}};//内存分布如图

二维数组初始化按照从高维到低维的顺序,例如

inta[][]=newint[3][];

a[0]=newint[2];

a[1]=newint[3];

a[2]=newint[2];

//非法intb[][]=newint[][4];

//由二维数组在内存中存储表示可知必须给一维分配空间后

//才能给二维分配

静态初始化

int[][]a={{1,2},{3,4,5,6},{7,8,9}};

//非法int[3][2]a={{1,2},{3,4},{7,8}};

动态初始化

inta[][]=newint[2][3];

intb[][]=newint[3][];

b[0]=newint[2];

b[1]=newint[3];

b[2]=newint[5];

数组常用操作

数组的复制

对于相同类型的数组变量单纯的通过"="来完成复制操作的结果是将两个变量指向同一引用,

使用java.lang.System类中的静态方法

●publicstaticvoidarraycopy(objectsrc,intsrcPos,objectdest,intdestPos,intlength)

可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置

publicclassArrayCopy{

publicstaticvoidmain(String[]args){

String[]s={"lenovo","acer","dell","apple","HTC"};

String[]sc=newString[8];

System.arraycopy(s,0,sc,0,s.length);

for(inti=0;i

System.out.println(sc[i]);

}

}

}

还可使用Arrays类中的如下两个方法来完成数组内容的拷贝(xxx代表任意数据类型):

●publicstaticxxx[]copyOf(xxx[]original,intnewLength)

original为原数组,newLength为要拷贝的数组元素个数(或新数组的长度),当newLength的值小于原数组的长度时只复制从0号开始的部分数组元素,反之多余数组元素初始值设为0或者null

●publicstaticxxx[]copyOfRange(xxx[]original,intfrom,intto)

original为原数组,from为起始元素下标,to为结束元素下标

数组排序

java的Arrays类中提供了两种为数组自动排序的方法:

●publicstaticvoidsort(xxx[]a)

为数组元素全部排序,结果还放在原来数组中

●publicstaticvoidsort(xxx[]a,intfromIndex,inttoIndex)

对指定下表区间fromIdex到toIndex内的数组排序,排序结果还放在原来数组中

查找指定元素

对于已排好序的数组,Arrays类中提供了两种在数组中查找指定元素的方法:

●publicstaticintbinarySearch(xxx[]a,xxxkey)

a为要搜索的数组,key为要搜索的元素,如果key在a中则方法返回其索引否则返回负数

●publicstaticintbinarySearch(xxx[]a,intfromIndex,inttoIndex,xxxkey)

在数组a当中指定的区间范围fromIndex到toIndex搜索元素key,如若存在返回其索引否则返回负数

数组填充

●publicstaticvoidfill(xxxa[],xxxvar)

该方法用指定的值var来填充数组a,执行该方法的结果是:

数组a中所有元素的值都变成var。

数组的比较

Arrays类中的equals方法用于比较两个数组的引用,如果相同返回true否则返回false

●publicstaticvoidequals(xxx[]a,xxx[]b)

 

线程状态转换

线程对象自其被创建后,一般会经历生命周期中五种不同的状态(新建状态,准备状态,运行状态,等待/阻塞状态,死亡状态),下图给出了5中状态之间的转换关系.

常用两种Container

Window:

表示自由停泊的顶级窗口,分为Frame和Dialog。

Panel:

表示不能自由停泊,必须被添加到其他Container(如window或Applet)里面。

消息对话框 

消息对话框是有模式对话框,可以调用Javax.swing包中的JOptionPane类的静态方法创建:

FlowLayout是Panel类的默认布局管理器。

BorderLayout是Frame类的默认布局管理器

JDBC操作步骤

1)引入驱动开发包

各个数据都会提供JDBC的驱动程序开发包,直接把JDBC操作所需的开发包(一般为*.jar或*.zip)引入到项目中就可以了。

具体操作为在MyEclipse中右击项目选择“BulidPath”——“ConfigureBuildPath”——“Libraries”——“AddExternalJARs…”然后选择相应的jar文件。

2)连接数据库

驱动开发包进入之后就可以在程序中编写代码连接数据库了。

数据库不同链接地址也不一样,但绝大多数数据库在进行连接时都会需要输入用户名和密码。

以MySQL数据库为例,进行数据库连接需要以下两步:

i.使用Class类的forName方法加载驱动

Class.forName("org.gjt.mm.mysql.Driver");

不同数据库的驱动程序路径不一样,MySQL中的数据库驱动路径是org.gjt.mm.mysql.Driver。

各个数据库的驱动程序路径实际上就是驱动开发包提供的类名称,采用“包.类”名称的方式,以MySQL为例,使用winrar打开驱动开发包jar文件就会看到一个名为Driver.class的文件。

ii.使用DriverManager类的getConnection方法连接数据库

StringDBURL="jdbc:

mysql:

//localhost:

3306/student";//数据库连接地址

Connectionconn=DriverManager.getConnection(DBURL,“userName”,“password”);

DBURL是数据可连接地址,指明了所需连接数据库的类型,主机地址,端口号以及数据库名。

3)使用SQL语句进行数据库操作

Statementstmt=conn.createStatement();//实例化Statement对象

stmt.execute(SQLSentence);//执行sql语句更新数据库信息

4)处理SQL语句执行结果

5)关闭数据库连接

数据库操作完毕之后需要关闭连接以释放资源。

stmt.close();//关闭操作

conn.close();//关闭数据库

99乘法表

publicclassExamp_11_4

{

publicstaticvoidmain(String[]args)

{

intx1,x2;

for(x1=1;x1<=9;x1++)

{

for(x2=1;x2<=9;x2++)

{

System.out.print(x2+"x"+x1+"="+x1*x2+"\t");

if(x1==x2)

{

break;

}

}

System.out.print("\n");

}

}

}

/*

运行结果如下:

1x1=1

1x2=22x2=4

1x3=32x3=63x3=9

1x4=42x4=83x4=124x4=16

1x5=52x5=103x5=154x5=205x5=25

1x6=62x6=123x6=184x6=245x6=306x6=36

1x7=72x7=143x7=214x7=285x7=356x7=427x7=49

1x8=82x8=163x8=244x8=325x8=406x8=487x8=568x8=64

1x9=92x9=183x9=274x9=365x9=456x9=547x9=638x9=729x9=81

*/

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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