当前位置:文档之家› 2使用JAVA理解程序逻辑

2使用JAVA理解程序逻辑

2使用JAVA理解程序逻辑
2使用JAVA理解程序逻辑

1、选出在java中有效的注释声明()

A 、// 这是注释B、*/这是注释*/

C、/ 这是注释

D、/*这是注释*/

2、在控制台运行一个java程序,使用命令正确的是()

A、java Test.java

B、javac Test.java

D、java Test D、javac Test

3、下面说法正确的是()

A、Java程序的main()方法必须写在类里面

B、Java程序中可以有很多main()方法

C、Java程序中,如果类名有public修饰,则类名必须与文件名相同

D、如果java程序的main()方法中只有一条语句,则可以不用()括起来

4、java源代码文件的扩展名为()

A、.txt

B、.class

C、.java

D、.doc

5、在控制台显示消息语句正确的是()

A、System.out.println(我是一个程序员了!);

B、System.Out.Println(“我是一个程序员了!”);

C、system.out.println(“我是一个程序员了!”);

D、System.out.println(“我是一个程序员了!”);

6、在MyEclipse中,()视图显示输出结果

A、包资源管理器

B、导航器

C、控制台

D、问题

7、假定x和y为整型,其值分别为16和5,则x/y和x%y的值分别为()和()。(选择两项)

A、3

B、2

C、1

D、3.2

8、以下()是合法的变量名。(选择两项)

A、double

B、3x

C、sum

D、de2$f

9、下列语句中()正确完成了整型变量的声明和赋值。(选择两项)

A、int count,count=0;

B、int count=0;

C、count=0;

D、int count1=0,count2=1;

10、表达式(11+3*8)/4%3的值是()

A、31

B、0

C、1

D、2

11、下面()是java关键字。(选择两项)

A、public

B、string

C、int

D、avg

12、为一个boolean类型变量赋值时,可以使用()方法

A、boolean a=1;

B、boolean a=(9>=10);

C、boolean a=”真”;

D、boolean a=false;

13、分析现下面代码,输出结果正确的是()

double d=84.54;

d++;

int c =d/2;

A、42

B、编译错误,更改为int c=(int)d/2;

C、43

D、编译错误,更改为int c==false;

14、java中关于if选择结构描述错误的是()

A、if选择结构是根据条件判断之后再做处理的一种语法结构

B、关键字if后小括号里必须是一个条件表达式,表达式的值必须为布尔类型

C、if小括号里表达式的值为false时,程序需要执行大括号里的语句

D、if语句可以和else一起使用

15、编译运行如下JA V A代码,输出结果是()

public class Test{

public static void main(String[] args){

int num=5;

if(num<=5){

num+=2;

System.out.println(num);

}

System.out.println(num+5);

}

}

A.10

B.5 10

C.7 12

D.运行出错

16、下面这段代码的输出结果为()

int year=2046;

if(!(year%2==0)){

if(year/10==0){

System.out.println(“进入了if”);

}

}else{

System.out.println(“进入了else”);

}

System.out.println(“退出”);

A.进入了if

B.退出

C.进入了else 退出

D.进入了if 退出

17、在流程图中,下面说法正确的是()

A.“菱形”表示计算步骤/处理符号

B.“长方形”表示程序开始或结束

C.“圆角长方形”表示判断和分支

D.“平行四边形”表示输入/输出指令

18、下列关于多重if选择结构的说法正确的是()

A.多个else if块之间的顺序可以改变,改变之后对程序的执行结果没有影响

B.多个else if块之间的顺序可以改变,改变之后可能对程序的执行结果有影响

C.多个else if 块之间的顺序不可以改变,改变后程序编译不用过

D.多个else if 块之间的顺序不可以改变,改变后程序编译可以通过

19、有else if块的基本选择结构是()

A.基本if选择架构

B.if-else选择结构

C.多重if选择结构

D.switch选择结构

20、些列关于if选择结构和switch选择结构的说法正确的是()

A.if-else选择结构中else语句是必须有的

B.多重if选择结构中else语句可选

C.嵌套if选择结构中不能包含else语句

D.switch结构选择中default语句可选

21、下面程序的运行结果是()

public class Weather{

public static void main(String[] args){

int shiDu=45;//湿度

if(shiDu>=80){

System.out.println(“要下雨了”);

}else if(shiDu>=50){

System.out.println(“天很阴”);

} else if(shiDu>=30){

System.out.println(“很舒适”);

} else if(shiDu>=0){

System.out.println(“很干燥”);

}

}

}

A.要下雨了

B.天很阴

C.很舒服

D.很干燥

22、在JDK1.6中,谢丽尔有关switch选择结构的说法,正确的是()。(选择两项)

A.switch选择结构可以完全代替多重if选择结构

B.当条件判断为等值判断,并且判断的条件为字符串时,可以使用switch选择结构

C.当条件判断为等值判断,并且判断的条件为字符时,可以使用switch选择结构

D. .当条件判断为等值判断,并且判断的条件为整型变量时,可以使用switch选择结构

23、下面这段代码的运行结果为()

int day=3;

switch(day){

case1:

case3:

System.out.println("学钢琴!")

break;;

case2:

System.out.println("学英语!")

break;;

default:

System.out.println("休息哦!");

}

A.学钢琴!

B.学钢琴!

学英语!

休息哦!

C.学钢琴

休息哦!

D.没有任何输出

24、以下说法中正确的是()。(选择两项)

A.如果while循环结构的循环条件始终为true,则一定会出现死循环

B.程序调试时假如断点会改变程序的执行流程

C.do-while循环结构的循环体至少无条件执行一次

D.while循环结构的循环体有可能一次都不执行

25、()表达式不可以作为循环条件。

A.i=5

B.i<3

C.bEqual=str.equals("q")

D.count==1

26、以下代码的输出结果是()

public class Test{

public static void main(String[] args){

int i=2;

do{

if(i$2==0){

System.out.print("*");

}else{

System.out.print("#");

}

i++;

}while(i<7);

}

}

A.***

B.#*#*#

D.*

27、对一下代码,下面说法正确的是()

int k=10;

while(k==0){

k=k-1;

}

A.循环将执行10次

B.死循环,将遗址执行下去

C.循环将执行1次

D.循环一次也不执行

28、以下代码的输出结果是()

int a=0;

while(a<5){

switch(a){

case0:

case3: a=a+2;

case1:

case2: a=a+3;

}

}

System.out.print(a);

A.0

B.5

C.10

D.其他

29、下列关于while循环,do-while循环和for循环的说法正确的是()

A.while循环有入口条件,do-while循环没有入口条件

B.do-while循环结束的条件是while后的判断语句成立

C.for循环结构中的3个表达式缺一不可

D.只有在循环次数固定的情况下,才能使用for循环结构

30、以下关于break语句和continue语句的说法正确的是()

A.continue语句的作用是结束整个循环的执行

B.在循环体内和switch结构体内可以使用break语句

C.循环体内使用break语句或continue语句的作用相同

D.在switch结构体内也可以使用continue

31、以下代码的输出结果是()

public static void main(String[] args){

for(int i=1;i<=10;i++){

if(i%2==0||i%5==0){

continue;

}

System.out.print(i+"\t");

}

}

A.1

B.1 3 4

C.1 3 5 7 9

D.1 3 7 9

32、下面循环的执行次数是()

for(int i=2;i==0;){

System.out.println(i);

i++;

}

A.2

B.1

C.0

D.无限次

33、阅读下列代码,如果输入的数字是6.则正确的运行结果是()

import java.util.*;

public class Test{

public static void main(String[] args){

Scanner in=new Scanner(System.in);

System.out.print("请输入一个1-10之间的数:");

int num=in.nextInt();

for(int i=1;i<=10;i++){

if((i+num)>10){

break;

}

System.out.println(i+"\t");

}

}

}

A.1 2 3 4 5 6

B.7 8 9 10

C.1 2 3 4

D.5 6 7 8

34、下列关于for循环结构的说法正确的是()

A.for循环结构限制性循环体,后判断表达式

B.for循环结构必须用在循环次数确定的情况

C.for循环结构中的3个表达式缺一不可

D.for循环体语句中可以包含多条语句,但要用大括号括起来

35、JA V A语言中要用变量存储学生性别,从节约空间的角度看最好选择的类型是()

A.int

B.short

C.byte

D.boolean

36、分析下面的JA V A代码片段,编译运行后的输出结果是()

for(int i=0;i<6;i++){

int k=++i;

while(k<5){

System.out.print(i);

break;

}

}

A.024

B.02

C.123

D.13

37、分析下面的JA V A程序,编译运行结果是()

public static void main(String[] args){

int i=0;

for(int i=0;i<10;i++){

if(i%2==0){

continue;

i=i+1;

if(i%5==0){

break;

}

}

}

Sytem.out.ptintln(i);

}

A.5

B.10

C.0

D.11

38、定义一个数组String[] cities={"北京","上海","天津","重庆","武汉","广州","香港"},数组中的cities[6]指的是()

A.北京

B.广州

C.香港

D.数组越界

39、下列数组的初始化正确的是()。(选择两项)

A.int score={90,12,34,77,56};

B.int[] score=new int[5];

C.int[] score=new int[5]{90,12,34,77,56};

D.int score[]=new int[]{90,12,34,77,56};

40、以下代码的输出结果是()

public class Test{

public static void main(String[] args){

double[] price=new double[5];

price[0]=98.10;

price[1]=32.18;

price[2]=77.74;

for(int i=0;i<5;i++){

System.out.print((int)price[i]+””);

}

}

}

A.98 32 77 0 0

B.98 32 78 0 0

C.98 32 78

D.编译出错

41、阅读下列代码,他完成的功能是()

String[] a={“我们”,“你好”,“小河边”,“我们”,“读书”}; for(int i=0;i

if(a[i].equals(“我们”)){

a[i]=“他们”;

}

}

A.查找

B.查找并替换

C.增加

D.删除

42、下面代码的运行结果是()

public class Test{

public static void main(String[] args){

int[] a=new int[3];

int[] b=new int[]{1,2,3,4,5};

a=b;

for(int i=0;i

System.out.print(a[i]+“”);

}

}

}

A.程序报错

B.1 2 3

C.1 2 3 4 5

D.0 0 0

43、以下关于二重循环的说法正确的是()

A.二重循环就是一段程序中只能有两个循环

B.while循环不能嵌套在for循环里

C.两个不重叠的循环不能嵌套在第三个循环里

D.如果一个for循环被嵌套在另一个for循环中,则两个循环中的循环变量的名称必须不同

44、下面程序段的运行结果为()

int count=0;

int i=3;

int j=0;

do{

j=1;

while(j<3){

count++;

j++;

}

i--;

}while(i>0);

count+=j;

System.out.print(count);

A.6

B.7

C.8

D.9

45、若想打印如图案,下面代码划线处应依次填入()

*

**

***

****

int j=0;

for(int i=1;i<=___;i++){

j=1;

while(j<=___){

System.out.print(“*”);

j++;

}

System.out.print(“\n”);

}

A.3 4

B.3 1

C.4 4

D.4 i

46、下面说法正确的是()

A.程序执行到break语句时一定会结束所有循环

B.程序执行到continue语句是会结束当前循环即continue语句所在的训话

C.continue和break语句可以出现在同一个循环体中

D.continue和break语句的作用相同

47、下面程序段的输出结果为()

int count=0;

for(int i=0;i<3;i++){

for(int j=0;i<3;j++){

f(j==0){

ontinue;

else{

ount++;

break;

}

}

}

System.out.println(count);

A.1

B.3

C.6

D.9

48、()是拥有属性和方法的实体(选择两项)

A.对象

B.类

C.方法

D.类的实例

49对象的静态特征在类中表示为变量,称为类的()

A.对象

B.属性

C.方法

D.数据类型

50一个汽车Car类,包含的属性有:颜色(color),型号(type),品牌(brand)。现在要在main()方法中创建Car类型的对象,下面的代码中,正确的是()

A.Car myCar=new Car();

myCar color=”黑色”;

B. Car myCar=new Car();

myCar.brand=”宝马”;

C.Car myCar;

myCar.brand=”宝马”;

D. Car myCar=new Car();

color=”蓝色”;

51、下面关于雷和对象的说法中错误的是()

A.类是对象的类型,它封装了数据和操作

B.类是对象的集合,对象是类的实例

C.一个类对象只有一个

D.一个对象必属于某个类

52、以下代码中,存在错误的代码行是()

public class Person{

public String name;//名字

public int age;//年龄

//输出基本信息

public showInfo(){ //1

System.out.println(“姓名:”+name+”年龄:”+age);

}

}

public class Test{

public static void main(String[] args){

Person person=new Person(); //2

https://www.doczj.com/doc/586395861.html,=”李小龙”; //3

person.age=”20”; //4

person.showInfo(); //5

}

}

A.1和2

B.2和3

C.1和4

D.4和5

53、下列代码中正确的是()(选择两项)

A.public String foo(){

return “我爱中国”;

}

B. public void foo(){

return “我爱中国”;

}

C. public String foo(){

String s=”我爱中国”;

return s;

}

D. public void foo(){

String s=”我爱中国”;

return s;

}

54、给定的JA V A代码如下所示,则编译运行后,输出结果为()

public class Test{

int i;

public int aMethod(){

i++;

return i;

}

public static void main(String[] args){

Test test=new Test();

test.aMethod();

System.out.println(test.aMethod());

}

}

A.编译出错

B.0

C.1

D.2

55、下列JA V ADoc注释正确的而是()

A./*演示排序算法*/

B.//演示排序算法*/

C./**演示排序算法*/

D./*演示排序算法**/

56、阅读下面的代码:

import java.util.*;

public class Foo{

public void calc(){

Scanner input=new Scanner(System.in);

int i=input.nextInt();

for(int p=0;p

num++;

}

System.out.println(num);

}

public static void main(String[] args){

Foo foo=new Foo();

foo.calc();

}

}

如果从控制台输入的值为10,程序运行的结果是()

A.9

B.8

C.10

D.编译出错

57、关于类的描述正确的是()(选择两项)

A.在类中定义的变量成为类的成员变量,在别的类中可以直接使用

B.局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中

C.使用别的类的方法仅仅需要引用方法的名字即可。

D.一个类的方法使用该类的另一个方法时可以直接引用方法名

58、MyDate类位于包mypackage中,在它的方法getCurrentTime()中,调用CurrentTime类中的方法getTime(),CurrentTime位于包javagroup.time中,下列代码中正确的是()

A、import javagroup.time.*;

packge mypackge;

public class Mydate{

public void getCurrentTime(){

CurrentTime ct=new CurrentTime();

ct.getTime();

}

}

B、import javagroup.time.*;

packge mypackge.*

public class Mydate{

public void getCurrentTime(){

CurrentTime ct=new CurrentTime();

ct.getTime();

}

}

C、package mypackage.Mydate;

public class Mydate{

public void getCurrentTime(){

javagroup.time.CurrentTime ct=new CurrentTime();

ct.getTime();

}

}

D、package mypackage;

import javagroup.time.*;

public class Mydate{

public void getCurrentTime(){

CurrentTime ct=new CurrentTime();

ct.getTime();

}

}

59、以下关于Java包说法错误的是()

A、包允许将类组合成较小的单元,便于找到和使用相应的软件。

B、Java中的包其实类似Windows中的目录,它是为了更好的保护类,数据和方法等

C、不同的包中不能出现类名相同的类

D、使用packae声明包,使用import引入包。

60、在Java中,方法change()定义如下:

public int change(int i){

return i=i+1;

}

则如下段代码的输出结果为()

int i=0;

i=change(1);

System.out.print(i);

A.0

B.1

C.2

D.代码i=change(1)存在错误

61、给定如下JA V A程序的方法定义,则以下()可以放在方体中。public String change(int i){

//方法体

}

A.return 100;

B.return 'a';

C.return i+"";

D.return i;

62、给定JA V A代码如下所示,则编译运行后,输出结果是()public class Test{

int i;

public int aMethod(){

i++;

return i;

}

public static void main(String[] args){

Test test=new Test();

test.aMethod();

System.out.println(test.aMethod());

}

}

A.0

B.1

C.2

D.3

63、在JA V A中,以下()选项的内容是合法的包名。

A. com.jb.chap

B. .jp.chap

C. com.jp.chap.

D. com.jb.*

64、运行下列程序段,s2的结果是()

String s1=new String("abc");

String s2="ef";

s2=s1.toUpperCase().concat(s2);

s2=s2.substring(2,4);

A.Cef

B.cef

C.Ce

D.Bce

65、运行下面的程序段,输出结果是()String s1=new String("abc");

StringBuffer s2 =new StringBuffer("abc");

s2.append(s1);

s1=s2.toString();

s1.concat("abc");

System.out.println(s1);

A.abc

B.abcabc

C.编译错误

D.abcabcabc

66、阅读下面的代码,其中错误代码是()public class Demo{

public void showFavor(StringBuffer thing){

System.out.println(thing);

}

public static void main(String[] args){

StringBuffer myFavor="足球";

showFavor(StringBuffer myFavor);

}

}

A.无

B.第一行

C.第三行和第四行

D.第二行和第三行

67、阅读下列代码,输出结果中包含()字符串public class Demo{

public static void main(String[] args){

String s1=new String("-");

String s2="abc";

double a=8.98;

if(s2.equals("Abc")){

s1=s1+".e1";

}else{

s1=s1+".e2";

}

if(e2.length()==3){

s1=s1+".e3";

}

if(a<=8){

s1=s1+".e4";

}

System.out.println(s1);

}

}

A.-.e4

B.-.e1.e3

C.-e2.e3

D.-.e1

68、下列关于字符串的叙述中错误的是()(选择两项)

A.字符串是对象

B.String对象存储字符串的效率比StringBuffer高

C.可以使用StringBuffer sb="这里是字符串"声明并初始化StringBuffer对象sb

D.String类提供了许多用来操作字符串的方法:连接、提取、查询

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

《使用Java理解程序逻辑》-B试题答案_doc

b卷 二、多选题 三、填空题 1、int x=10,y=10; System.out.println(x--); System.out.println(--y); 该程序的运行结果是10和9。 2、Java程序中的单行注释符是 // ,多行注释符是/**/ 。 3、Java中用于定义小数的关键字有两个: float 和 double ,后者精度高于前者。 4、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 final(最终)方法是不能被当前类的子类重新定义的方法。 5、假设x=13,y=4,则表达式x%y != 0的值是 true ,其数据类型是 boolean 。 四、编程题 1、按以下要求编写程序 (1) 创建一个Rectangle类,添加width和height两个成员变量 (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积 (3) 编程利用Rectangle输出一个矩形的周长和面积 解答: public class Rectangle { float width, height; public Rectangle(float width, float height) { this.width = width; this.height = height; } public float getLength(){ return (this.width + this.height) * 2; } public float getArea(){ return this.width * this.height; }

一个简单的java窗体下载小程序(完整代码)

首先,这只是一个很简单的程序,所以大神请绕道。 心血来潮,用java编写了一个能访问http链接,并能下载文件的窗体小程序。实测能够正确下载17M的压缩包,图片,文档,html等。但是因为程序效率低下,于是没有继续测试更大的压缩文件(问题可能在于保存输入流到缓冲区的数组)。 程序已打包jar可执行文件,并将代码一齐打包到jar中。为方便使用jar,使用word 文档对象包装了它,将下面的对象(显示为一个图标)拖到桌面或者其他文件夹,即可得到该程序: java下载小程序.jar 也可以右击,激活内容,直接运行。 程序运行效果如图: 该测试链接来自pc6,下载结果为:

文件顺利打开。 程序主要使用了url访问http地址,并获取输入流,创建本地文件,输出读取的数据到本地文件中。其他部分则是窗体。 以下是全部代码: 同样是word对象,直接拖到桌面即可。 显示窗体的ui包: DownloadWin.java MainWin.java 分割字符串的util包: SplitString.java 监听事件的listener包: DownloadListener.java

其中,ui包: MainWin.java package 下载.ui; public class MainWin { public static void main(String[] args) { DownloadWin win = new DownloadWin("下载"); } } DownloadWin.java package 下载.ui; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import 下载.listener.DownloadListener; public class DownloadWin extends JFrame{ /** * */ private static final long serialVersionUID = -7226361346020458023L; private JTextField httpLine; private JTextField savePath; private JButton btnDownload; private JLabel lineLabel; private JLabel saveLabel; private static JLabel infoLabel; public DownloadWin(String title) { init();

java基础知识点总结

Created by AIwen on 2017/5/14. java是面向对象的程序设计语言;类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、和多态。java提供了private、protected、和public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量和和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)和对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、和方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以是public、protected、private其中之一,或者省略构造器名:构造器名必须和类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再是构造器。 实际上类的构造器是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值是隐式的。 java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再和后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以是java语言允许的任何数据类型,包括基本类型和引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static和final最多只能出现其中的一个,和abstract组合起来使用。也可省略。 返回值类型:可以是java语言的允许的任何数据类型,包括基本类型和引用类型。 方法名:和成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总是后执行。 static是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static修饰的成员表明它属于这个类本身,而

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

java简单聊天小程序

网络编程java简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口] By 刘汪洋 写入正确的ip地址即可正常用当然目前只停留在命令行界面 还没有写成可视化窗口界面 运行时请带上参数 如java TransServer 张三 Java TransClient 李四 ( 和刘正南在局域网试验的截图成功 这是修改后的 加上了姓名! ) (修改前的截图)

代码: 客户端: package com.baidu.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import https://www.doczj.com/doc/586395861.html,.Socket; import https://www.doczj.com/doc/586395861.html,.UnknownHostException; // 简单聊天小程序客户端 public class TransClient { public static void main(String[] args)

{ if(args[0]==null) args[0] = "他"; startClient(args[0]); } private static void startClient(String name) { Socket sk = null; BufferedReader bufr = null; try { sk = new Socket("127.0.0.1",10000);// 1 创建 socket服务 bufr = new BufferedReader(new InputStreamReader(System.in));// 2 获取录入键盘 PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 3 获取输出流true表示自动刷新 BufferedReader bufIn = new BufferedReader(new InputStreamReader(sk.getInputStream()));// 4 获取输入流 // 5 发送获取 String text_send = ""; String text_get = ""; String ServerName = ""; System.out.print("聊天已开启..."+"\r\n"+"我说:");

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

使用java理解程序逻辑【第一学年 第一学期】

************************************************************************************* Start 第一章 1.开发JA V A程序的步骤: a.编写源程序,以java作为后缀 b.编译源程序,以class作为后缀,即字节码文件 c.运行字节码,得到运行结果 编译 需要用到java为我们提供的一个编译器 编译器 是一个软件 编译语法: javac.exe 源文件名称 javac 源文件名 运行 需要用到java为我们提供的一个解释器 解释器 是一个软件 运行语法: java.exe 字节码文件名称 java 字节码文件名称 2.控制台输出语句: System.out.println("内容"); System.out.print("内容"); 区别: a.是否换行: System.out.println("内容"); 输出"内容"和一个换行 System.out.print("内容"); 仅仅输出"内容" b.可否不输出"内容"

System.out.println(); 仅仅输出一个换行 System.out.print(); 错误的 注意: 当输出的"内容"是数字时,可以不用添加双引号"" 3.常见的转义符: \n 将光变移动到下一行的第一格 \t 将光变移动到下一个水平制表位置 4.注释: 作用 为某些关键或核心代码添加说明的一种方式, 便于程序的阅读和维护,总之,注释是给程序员看的。 分类 单行注释: 语法://注释的内容 多行注释: 语法:/*注释的内容*/ 应用场景 当注释的内容比较少时,一般采用单行注释 当注释的内容比较多时,一般采用多行注释 5.Java代码书写规范: a.结束}必须和开始{所在行的首字符纵向对齐; b.开始{不建议单独起一行,而是放在上一行代码的最后,并且在开始{之前输入一个空格; c. 当上一行有开始{时,下一行代码在上一行代码的首字母基础上缩进一次Tab键; d. 当上一行没有开始{时,下一行代码与上一行代码的首字母纵向对齐 ************************************************************************************* 第二章 1.什么是变量 内存地址的别名就是变量 2.为什么需要变量 内存地址不好记忆

Java程序设计上机实验

班级号一学号_姓名一题号java(多文件应压缩为rar): 实验1:熟悉上机环境,编写并运行简单的java程序(3学时)实验目的 (1)熟悉Java程序开发环境J2SDK+JCreator的安装及使用 ⑵熟悉Java Application 和Applet程序的结构及开发步骤 ⑶熟练掌握if语句的使用 ⑷掌握Math.sqrt()等常用数学函数的用法 ⑸熟悉System.out.print()的用法 实验内容及要求 按Java Application 和Applet两种方式分别编写程序,求 一元二次方程ax2+bx+c=0的根(系数在程序中给定),并输出。 思考并验证 (1)分别给定以下几组系数,给出输出结果 a=1,b=5,c=3 a=4, b=4, c=1 a=2, b=3, c=2 : + i ________ +_ _______ i ⑵如果程序的public类的类名和源文件的文件名不一样会有什

么问题? (3) 将类的public 修饰去掉是否可行?接着再将类名换为其它是 否可行?这说明了什么? (4) 将程序中main 前面的public 去掉,重新编译执行你的程序,你看到 了什么信息? (5) 将程序中main 前面的static 去掉,重新编译执行你的程序,你看到 了什么信息?为什么? (6) 本次上机中,你还遇到了什么问题,是如何解决的?

班级号一学号_姓名一题号java (多文件应压缩为rar ): 实验 2:控制流程 1(3 学时 ) 实验目的 (1) 进一步熟悉使用 if 语句 (2) 掌握循环语句实现循环的方法 实验内容及要求 输出时,只使用下面的语句: System.out.print( “ ”); // 不换行 System.out.print( “* ”); // 并且不换行 System.out.print( “+”); // 并且不换行 System.out.println( “*”;) // 并换行 编写程序输出(注:在图形的中心处有一个加号 ' +'): 思考并验证 下面程序片段给出了从键盘输入一个整数的方法: import java.io.*; 输出一个空格, 并且 输出一个字符' * ', 输出一个字符' +', 输出一个

2使用JAVA理解程序逻辑讲解

1、选出在java中有效的注释声明() A 、// 这是注释B、*/这是注释*/ C、/ 这是注释 D、/*这是注释*/ 2、在控制台运行一个java程序,使用命令正确的是() A、java Test.java B、javac Test.java D、java Test D、javac Test 3、下面说法正确的是() A、Java程序的main()方法必须写在类里面 B、Java程序中可以有很多main()方法 C、Java程序中,如果类名有public修饰,则类名必须与文件名相同 D、如果java程序的main()方法中只有一条语句,则可以不用()括起来 4、java源代码文件的扩展名为() A、.txt B、.class C、.java D、.doc 5、在控制台显示消息语句正确的是() A、System.out.println(我是一个程序员了!); B、System.Out.Println(“我是一个程序员了!”); C、system.out.println(“我是一个程序员了!”); D、System.out.println(“我是一个程序员了!”); 6、在MyEclipse中,()视图显示输出结果 A、包资源管理器 B、导航器 C、控制台 D、问题 7、假定x和y为整型,其值分别为16和5,则x/y和x%y的值分别为()和()。(选择两项) A、3 B、2 C、1 D、3.2 8、以下()是合法的变量名。(选择两项) A、double B、3x C、sum D、de2$f 9、下列语句中()正确完成了整型变量的声明和赋值。(选择两项) A、int count,count=0; B、int count=0; C、count=0; D、int count1=0,count2=1; 10、表达式(11+3*8)/4%3的值是() A、31 B、0 C、1 D、2 11、下面()是java关键字。(选择两项) A、public B、string C、int D、avg 12、为一个boolean类型变量赋值时,可以使用()方法 A、boolean a=1; B、boolean a=(9>=10); C、boolean a=”真”; D、boolean a=false; 13、分析现下面代码,输出结果正确的是() double d=84.54; d++;

如何用记事本编写一个简单的java代码

如何用记事本编写一个简单的j a v a代码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

一:怎么用记事本写第一个java代码 第一步:新建txt文档 首先我们在F盘新建一个txt文档,并命名为,如下图所示: 第二步:编写代码 我们双击打开:如下图所示 第三步:编写好代码 我们在记事本中写代码,写好后如下所示:

然后我们同时按Ctrl+s键保存,然后关闭记事本即可 上面的源代码如下: public class Test{//这里的Test为类名,这里类名要与我们刚才新建的记事本的名字必须一致,首字母大写 public static void main(String[] args){//java中的主函数的写法 "HelloWorld");//java中的输出语句写法 } } 第三步:打开控制台界面 我们在计算机中,打开如下图界面,

然后在这里,输入cmd,并按回车,然后弹出如图所示

第四步:在控制台中运行并输出 我们用鼠标点击一下里面黑色部分,然后输入F:然后回车,然后再输入javac 然后回车,最后输入java Test,就可以看到结果了,如下图所示:

红色圈出来部分就是结果了 二:温馨提示: 1,上面演算中在控制台中首先输入F:的原因是因为我在F盘建立一个文本文档,并命名为,如果你是把你的文档文档建立在D盘,则应该输入D: 以此类推。 2,如果你是在F盘下的CH文件夹建立一个记事本,并命名为,则输入的情况如下, cd CH表示转到CH这个文件夹下,然后再输入回车,再输入java Test 就可以看到运行结果了

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目

Java基础阶段复习题2(附答案)

复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

《使用Java理解程序逻辑》-B试题

第1页/共 6 页 第2页/共6 页 学校 淄博职业学院 班级 学号 姓名______________________ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆装◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆订◆◆◆◆◆◆◆◆◆◆◆◆◆线◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ XXX 学院2010-2011学年第二学期 《使用Java 语言理解程序逻辑》期末考试试卷(B 卷) 使用班级:P2010软件1-2班,试卷印刷95份 命题教师:《使用Java 语言理解程序逻辑》命题组 考核方式:闭卷笔试 考试时间:100分钟 说明:本试卷以********作为考查重点。旨在加强学生对于Java 语言的重视,提高学生对于Java 语言掌握的熟练程度。试题大都来源于企业选拔标准,具有较高的实用性。 本试卷卷面共6页,包括附加题在内共35个题目和1个附加题,请勿遗漏。 一、单项选择题(共20题,每题2分,共40分) 1、不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected 2、为AB 类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB 作为 前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 3、以下哪一个不是JAVA 的标准数据流( )。 A. 标准输出数据流 B. 标准输入数据流 C. 标准错误数据流 D. 标准运算数据流 4、用abstract 定义的类( ) A 、可以被实例化 B 、不能派生子类 C 、不能被继承 D 、只能被继承 5、设有对象x 具有属性a 则访问该属性的方法为( ) A 、a.x B 、a.x() C 、x.a D 、x.a() 6、continue 语句( ) A 、只中断最内层的循环 B 、只中断最外层的循环 C 、只中断所在层循环中的当次循环 D 、只中断某一层的循环 7、以public 修饰的类如:public class Car{…} 则Car( ) A 、可被其它程序包中的类使用 B 、仅能被本程序包中的类使用 C 、不能被任意其它类使用 D 、不能被其它类继承 8、Java 中,哪种不可以用来限制存取权限的关键字( ) A 、public B 、protected C 、extends D 、private 9、对Java 运算符,下面说法正确的是( ) A 、不具有优先级的区别 B 、相同优先级的运算符,计算顺序是从右到左 C 、圆括号具有最高优先级 D 、”+”号的优先级高于”&&” 10、Java 源文件和编译后的文件扩展名分别为( ) A 、.class 和 .java B 、.java 和 .class C 、.class 和 .class D 、.java 和 .java 11、Java 语言中创建一个对象使用的关键字为 ( ) A 、class B 、interface C 、new D 、create 12、对于可以独立运行的Java 应用程序,下列( )说法是正确的。 A 、无须main 方法 B 、必须有两个main 方法 C 、可以有多个或零个main 方法 D 、必须有一个main 方法 13、设x=5 则y=x-- 和y=--x 的结果,使y 分别为( ) A 、5,5 B 、5,6 C 、5,4 D 、4,4 14、设有对象x 具有属性a 则访问该属性的方法为( ) A 、a.x B 、a.x() C 、x.a D 、x.a() 15、设数组Array 由以下语句定义 int age=new int[10]; 则数组的第一个元素的正确引用方法为( ) A 、age[1] B 、Age[0] C 、age[] D 、age[0] 16.下列说法哪个正确? ( ) A .不需要定义类,就能创建对象 B .对象中必须有属性和方法 C .属性可以是简单变量,也可以是一个对象 D 、属性必须是简单变量 17.关于继承的说法正确的是: ( ) A 、子类将继承父类所有的属性和方法。 B 、子类将继承父类的非私有属性和方法。 C 、子类只继承父类public 方法和属性 D 、子类只继承父类的方法,而不继承属性 18.关于构造函数的说法哪个正确? ( ) A 、一个类只能有一个构造函数 B 、一个类可以有多个不同名的构造函数 C 、构造函数与类同名 D 、构造函数必须自己定义,不能使用父类的构造函数

Java程序设计实验题目

1.Java程序设计基础 实训项目一:Java开发环境安装与使用(2学时) 实训内容: (1)下载并安装JDK; (2)安装Java集成开发环境JCreator; (3)第1个java程序“Hello World”程序的编辑、编译与运行。 实训要求: 掌握Java开发环境的安装与配置,了解JCreator中ConfigureàoptionsàJDK Profiles的设置;掌握Java应用程序的编写、编译、运行过程。 实训项目二:Java基础应用(2学时) 实训内容: 编写简单的Java程序,将多种类型变量通过各种运算符组成不同的表达式,并将运算结果赋值给同类型的变量,使用print方法输出各变量的值。 实训要求: 掌握Java语言的各种数据类型;熟悉运算符和表达式的用法;学会编写完成一定目标的简单程序。 实训项目三:Java流程控制(2学时) 实训内容: (1)使用分支语句编写简单的Java程序,完成对某个实际问题的判断处理。 (2)使用循环语句编写简单的Java程序,解决需要重复处理的实际问题。 实训要求: 掌握条件语句的使用;掌握循环语句的使用;锻炼运用所学的知识解决实际问题的能力;了解常用的累加和、数学函数图形打印等基本问题的解决方法。 实训项目四:数组(2学时) 实训内容: (1)编写简单的Java程序,验证数组的声明、创建和使用。 (2)编写简单的Java程序,使用数组解决排序、查找等问题。 实训要求: 掌握一维数组、多维数组声明、创建和使用;掌握利用一维数组解决实际问题的方法;了解多维数组的应用。 2.类和对象、包、接口 实训项目五:类与对象的基本操作(2学时) 实训内容: 按照面向对象编程思想编写简单的类,对客观事物进行描述,类的定义包含成员变量声明及成员方法声明与实现,并创建对象进行类的测试。 实训要求: 掌握面向对象编程的思想;掌握类的定义、变量声明、方法声明及实现;掌握对象的创建。实训项目六:构造方法与方法重载(2学时) 实训内容: 编写含有构造方法与成员方法类,实现构造方法与成员方法的重载,编写该类的测试类。实训要求: 掌握构造方法的定义;理解构造方法的原理;掌握方法重载的实现;理解静态多态的概念。实训项目七:类的继承与多态(2学时) 实训内容:

java基础刷题知识点总结

基础 1.object类的方法有哪些 clone() protect 创建并返回一个对象的副本 equals()用来比较某个对象是否与调用此方法的对象相等 finalize() protect getClass() 返回一个对象的运行时类 hashCode()返回一个对象的hash值 notify()唤醒在此对象监听器上等待的单个线程。如果有多个,则随机唤醒一个 notifyAll()唤醒在此对象监听器上等待的所有线程 registerNatives() 本地私有方法,在类初始化是会调用此方法 toString() 返回当前对象的字符串表示 wait()使当前线程处于等待直到其他线程调用这个对象的notify或notifyAll方法或者超过指定的时间量 2.接口和抽象类的区别 1.首先描述接口和抽象类的特性 抽象类:是子类通用特性的集合 接口:是抽象方法的集合l 从某种意义上说抽象类包含了接口的所有功能。但是通过实现接口可以实现多继承

什么时候用抽象类和接口 1.如果一些方法必须提供默认的实现,就必须用抽象类,比如在dao层,每个类都有增删查改这几个操作,我们可以把这些操作写在抽象类里,并让抽象类提供默认的实现。 否则的话用接口 2.假如要实现多继承,则必须要用接口,java不支持多继承但是可以通过实现多个接口来解决 3.如果基本功能在不断改变,那么就用抽象类。如果不断改变基本功能并且使用接口,子类就必须不停的更改 03.抽象类是否有构造方法 抽象类有构造方法只是抽象类不能够实例化 4.Final finally finalize()方法的区别 5.Sleep()和wait()的区别 ①这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 ②锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS 分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。 Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。 ③使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,配合synchronized实现等待通信机制,而sleep可以在任何地方使用。 synchronized(x){ x.notify() //或者wait() }

Java程序设计--复习要点

Java程序设计__复习要点 第一讲Java语言概述 1、Java语言的特点:简单、完全面向对象;平台无关性;多线程;直接支持分布式的网络应用,高效的网络编程;可靠性;安全性。 2、运行机制:Java程序是半编译半解释的。Java源程序经编译器编译后产生字节码,Java解释器解释执行字节码。 3、Java程序的开发流程: (1)安装JDK,设置环境变量; (2)编写Java源程序:文件以.java作为后缀; (3)javac将源程序编译成字节码文件(.class文件); (3)由运行系统解释和执行字节码文件。 4、Java程序的分类:分两类 (1)Java application(Java应用程序):能独立运行的应用程序,有控制台和图形用户界面两种运行方式。main()方法是类首先执行的方法,语句必须写在类的方法中。编写完源代码首先通过javac编译,生成.class字节码文件,通过Java解释器(如java.exe)来运行字节码文件。 (2)Java applet(Java小应用程序):Applet是可以嵌入Web页面的最小应用,不能独立运行,必须嵌入到超文本(*.html)中,由浏览器中的Java解释器解释执行。对于Applet源程序,首先要编译生成字节码文件,再将字节码文件嵌入到超文本中。 简而言之: application:应用程序,编译:javac 源文件名;运行:java 字节码文件(含主函数) Applet:嵌入网页中运行的小应用程序,需有相应的html文件; 5、一个完整的Java源程序结构: package语句:该部分至多只有一句,必须放在源程序的第一句; import:该部分可以有若干import语句或者没有,必须放在所有的类定义之前;

相关主题
文本预览
相关文档 最新文档