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。 这次介绍的主要内容是和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程序呢?很多人并不了解。 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编写了一个能访问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(); 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修饰的成员表明它属于这个类本身,而 计算器 项目内容:编写一个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入门 (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简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口] 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"+"我说:"); 一、单选题 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()( ************************************************************************************* 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(多文件应压缩为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.*; 输出一个空格, 并且 输出一个字符' * ', 输出一个字符' +', 输出一个 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++; 如何用记事本编写一个简单的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基础知识总结 写代码: 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的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目 复习题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.只能被同一个包中的类访问 第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 、构造函数必须自己定义,不能使用父类的构造函数 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学时) 实训内容: 基础 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语言概述 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语句或者没有,必须放在所有的类定义之前;史上最全Java基础知识点归纳
《使用Java理解程序逻辑》-B试题答案_doc
一个简单的java窗体下载小程序(完整代码)
java基础知识点总结
java编写的简单的计算器程序
《Java编程基础知识点汇总及习题集》--答案
java简单聊天小程序
JAVA技术--Java基础知识常见考试题JAVA技术.doc
使用java理解程序逻辑【第一学年 第一学期】
Java程序设计上机实验
2使用JAVA理解程序逻辑讲解
如何用记事本编写一个简单的java代码
java各知识点详细总结(毕向东笔记整理)
Java基础阶段复习题2(附答案)
《使用Java理解程序逻辑》-B试题
Java程序设计实验题目
java基础刷题知识点总结
Java程序设计--复习要点