mooc零基础学习java语言习题答案

mooc零基础学习java语言习题答案
mooc零基础学习java语言习题答案

第一周

温度转换(5分)

题目内容:

写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32

其中C表示摄氏温度,F表示华氏温度。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式: (int)x;

其中x是要转换的那个浮点数。

注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求转换后的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。

输入格式:

一个整数。

输出格式:

一个整数。

输入样例:

100

输出样例:

37

程序代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// TODO Auto-generated method stub

int F;

int C;

Scanner in=new Scanner(System.in);

F =in.nextInt();

C =(F-32)*5/9;

System.out.println(C);

in.close();

}

}

第二周

1时间换算(5分)

题目内容:

UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。

有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

提醒:要小心跨日的换算。

输入格式:

一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。

输出格式:

一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。

输入样例:

933

输出样例:

133

程序代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// TODO Auto-generated method stub

int UTC;

int BJT;

int m,h;

Scanner in=new Scanner(System.in);

BJT =in.nextInt();

m =BJT%100;

h =BJT/100-8;

if(BJT>=0&&h<24&&m<60)

{

if(h<0)

{

UTC=(24+h)*100+m;

}

else

UTC =h*100+m;

System.out.println(UTC);

in.close();

}

}

}

2信号报告(5分)

题目内容:

无线电台的RS制信号报告是由三两个部分组成的:

R(Readability) 信号可辨度即清晰度.

S(Strength) 信号强度即大小.

其中R位于报告第一位,共分5级,用1—5数字表示.

1---Unreadable

2---Barely readable, occasional words distinguishable

3---Readable with considerable difficulty

4---Readable with practically no difficulty

5---Perfectly readable

报告第二位是S,共分九个级别,用1—9中的一位数字表示1---Faint signals, barely perceptible

2---Very weak signals

3---Weak signals

4---Fair signals

5---Fairly good signals

6---Good signals

7---Moderately strong signals

8---Strong signals

9---Extremely strong signals

现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。如读到59,则输出:

Extremely strong signals, perfectly readable.

输入格式:

一个整数,信号报告。整数的十位部分表示可辨度,个位部分表示强度。输入的整数范围是[11,59]内有效的数字,这个范围外的数字不可能出现在测试数据中。

输出格式:

一句话,表示这个信号报告的意义。按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里的标点符号都是英文的。

输入样例:

33

输出样例:

Weak signals, readable with considerable difficulty.

程序代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// TODO Auto-generated method stub

int RS;

int S,R;

Scanner in=new Scanner(System.in);

RS =in.nextInt();

if(RS>=11&&RS<=59)

{

S = RS/10;

R = RS%10;

switch(R)

{

case 1:

System.out.print("Faint signals, barely perceptible, ");break;

case 2:

System.out.print("Very weak signals, ");break;

case 3:

System.out.print("Weak signals, ");break;

case 4:

System.out.print("Fair signals, ");break;

case 5:

System.out.print("Fairly good signals, ");break;

case 6:

System.out.print("Good signals, ");break;

case 7:

System.out.print("Moderately strong signals, ");break;

case 8:

System.out.print("Strong signals, ");break;

case 9:

System.out.print("Extremely strong signals, ");break;

}

switch(S)

{

case 1:

System.out.print("unreadable.");break;

case 2:

System.out.print("barely readable, occasional words distinguishable.");break;

case 3:

System.out.print("readable with considerable difficulty.");break;

case 4:

System.out.print("readable with practically no difficulty.");break;

case 5:

System.out.print("perfectly readable.");break;

}

in.close();

}

}

}

第三周

1奇偶个数(5分)

题目内容:

你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。

输入格式:

一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。

输出格式:

两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。

输入样例:

9 3 4 2 5 7 -1

输出样例:

4 2

程序代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// TODO Auto-generated method stub

int m;

int n=0;

int t=0;

Scanner in=new Scanner(System.in);

m =in.nextInt();

while(m!=-1)

{

if(m%2==1)

{

n =n+1;

}

else

t=t+1;

m =in.nextInt();

}

System.out.println(n+" "+t);

in.close();

}

}

2数字特征值(5分)

题目内容:

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。

按照二进制位值将1的位的位值加起来就得到了结果13。

你的程序要读入一个非负整数,整数的范围是[0,100000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。

提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。

输入格式:

一个非负整数,整数的范围是[0,1000000]。

输出格式:

一个整数,表示计算结果。

输入样例:

342315

输出样例:

13

程序代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

int m;

int n;

int t=0;

int s=1;

int sum=0;

int f=0;

Scanner in=new Scanner(System.in);

m =in.nextInt();

if(m>=0&&m<=1000000)

{

while(m!=0)

{

int p;

n=m%10;

if(n%2==s%2)

{

p=1;

}

else

p=0;

s=s+1;

//sum=sum+1;

f=(int) (f+p*Math.pow(10, s-2));

m=m/10;

}

}

while(f!=0)

{

int p;

p=f%10;

sum=(int) (sum+p*Math.pow(2, t));

t=t+1;

f=f/10;

}

System.out.println(sum);

in.close();

}

}

第四周

1素数和(5分)

题目内容:

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0

注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。

输入格式:

两个整数,第一个表示n,第二个表示m。

输出格式:

一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入样例:

2 4

输出样例:

15

程序代码

import java.util.Scanner;

public class Main {

public int IsOrNotprime(int x){

int j;

int n;

n= x/2;

for(j=2;j<=n;j++){

if(x%j==0)

return 0;

}

return 1;

}

public static void main(String[] args) {

int n;

int m;

int i;

int sum=0;

int j=0;

Scanner in=new Scanner(System.in);

n =in.nextInt();

m =in.nextInt();

Main s= new Main();

if(n>0&&n<=m&&m<=200)

{

for(i=2;i<=1000000;i++)

{

if(s.IsOrNotprime(i)==1)

{

j=j+1;

if(j>=n&&j<=m)

{

sum=sum+i;

}

if(j==m)

break;

}

}

System.out.println(sum);

}

in.close();

}

}

2念整数(5分)

题目内容:

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。如输入1234,则输出:

yi er san si

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:

fu er san si yi

输入格式:

一个整数,范围是[-100000,100000]。

输出格式:

表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

输入样例:

-30

输出样例:

fu san ling

程序代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

int n=in.nextInt();

int count=0;

int isZheng=0;

int v=0;

int total=n;

int isZero=0;

int isPut=1;

if(n>=-100000&&n<=100000)

{

if(n<0)

{

isZheng=1;

n=-n;

}

else if(n==0)

{

System.out.print("ling");

}

if(isZheng==1)

{

System.out.print("fu"+" ");

}

while(total!=0)

{

total/=10;

count++;

}

for(int i=count;count>0;count--) {

int mid=1;

for(int j=1;j

{

mid*=10;

}

if(isZero==1)

{

System.out.print(" ");

}

v=n/mid;

n%=mid;

if(v==0&&count==1)

{

v=n;

isPut=0;

}

isZero=1;

switch(v)

{

case 0:

System.out.print("ling");

continue;

case 1:

System.out.print("yi"); continue;

case 2:

System.out.print("er"); continue;

case 3:

System.out.print("san"); continue;

case 4:

System.out.print("si"); continue;

case 5:

System.out.print("wu"); continue;

case 6:

System.out.print("liu");

continue;

case 7:

System.out.print("qi");

continue;

case 8:

System.out.print("ba");

continue;

case 9:

System.out.print("jiu");

continue;

}

}

}

}

}

第五周

1多项式加法(5分)

题目内容:

一个多项式可以表达为x的各次幂与系数乘积的和,比如:

2x6+3x5+12x3+6x+20

现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。

程序要处理的幂最大为100。

输入格式:

总共要输入两个多项式,每个多项式的输入格式如下:

每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。

注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。

输出格式:

从最高幂开始依次降到0幂,如:

2x6+3x5+12x3-6x+20

注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。

输入样例:

6 2

5 3

3 12

1 6

0 20

6 2

5 3

2 12

1 6

0 20

输出样例:

4x6+6x5+12x3+12x2+12x+40

程序代码

import java.util.Scanner;

public class Main{

public static void main (String[] args){

Scanner in = new Scanner(System.in);

int[] array = new int[101];

int max = 0;

int times = 0;

while(in.hasNext()){

int x = in.nextInt();

int num = in.nextInt();

array[x] += num;

if(x == 0){

times++;

}

if(times == 2){

break;

}

}

for(int j = 0;j < array.length;j++){

if(array[j] != 0 ){

if(j > max){

max = j;

}

}

}

for(int i = max;i > 0; i--){

if(array[i] > 0){

if(i != max){

System.out.print("+");

}

if(array[i] != 1){

System.out.print(array[i]);

}

System.out.print("x");

//幂次为1时不用输出幂次

if(i != 1){

System.out.print(i);

}

}else if(array[i] < 0){

if(array[i] != -1){

System.out.print(array[i]);

}else{

System.out.print("-");

}

System.out.print("x");

if(i != 1){

System.out.print(i);

}

}

}

if(max == 0){

System.out.print(array[0]);

}else{

//最高幂>0,正系数先输出+

if(array[0] > 0){

System.out.print("+");

}

System.out.print(array[0]);

}

}

}

第六周

1单词长度(5分)

题目内容:

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。

输入格式:

输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It's great to see you here.

输出样例:

4 5 2 3 3 4

程序代码

import java.util.Scanner;

public class Main {

private static Scanner in;

public static void main(String[] args) {

in = new Scanner(System.in);

String text=new String();

do{text=in.next();

if (https://www.360docs.net/doc/f818483293.html,stIndexOf(".")==(text.length()-1)){

if(text.length()>1)System.out.print(text.length()-1);

}else{

System.out.print(text.length()+" ");

}

}while(true);

}

}

2

GPS数据处理(5分)

题目内容:

NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC 机、PDA等设备。

NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。

其中$GPRMC语句的格式如下:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

这里整条语句是一个文本行,行中以逗号“,”隔开各个字段,每个字段的大小(长度)不一,这里的示例只是一种可能,并不能认为字段的大小就如上述例句一样。

字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data (RMC)推荐最小定位信息

字段1:UTC时间,hhmmss.sss格式

字段2:状态,A=定位,V=未定位

字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

字段4:纬度N(北纬)或S(南纬)

字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

字段6:经度E(东经)或W(西经)

字段7:速度,节,Knots

字段8:方位角,度

字段9:UTC日期,DDMMYY格式

字段10:磁偏角,(000 - 180)度(前导位数不足则补0)

字段11:磁偏角方向,E=东W=西

字段16:校验值

这里,“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符(不包括这两个字符)的异或值的十六进制值。上面这条例句的校验和是十六进制的50,也就是十进制的80。

提示:^运算符的作用是异或。将$和*之间所有的字符做^运算(第一个字符和第二个字符异或,结果再和第三个字符异或,依此类推)之后的值对65536取余后的结果,应该和*后面的两个十六进制数字的值相等,否则的话说明这条语句在传输中发生了错误。注意这个十六进制值中是会出现A-F的大写字母的。另外,如果你需要的话,可以用Integer.parseInt(s)从String变量s中得到其所表达的整数数字;而Integer.parseInt(s, 16)从String变量s中得到其所表达的十六进制数字

现在,你的程序要读入一系列GPS输出,其中包含$GPRMC,也包含其他语句。在数据的最后,有一行单独的

END

表示数据的结束。

你的程序要从中找出$GPRMC语句,计算校验和,找出其中校验正确,并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。

你的程序一定会读到一条有效的$GPRMC语句。

输入格式:

多条GPS语句,每条均以回车换行结束。最后一行是END三个大写字母。

输出格式:

6位数时间,表达为:

hh:mm:ss

其中,hh是两位数的小时,不足两位时前面补0;mm是两位数的分钟,不足两位时前面补0;ss是两位数的秒,不足两位时前面补0。

输入样例:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

END

输出样例:

10:48:13

程序代码

import java.util.Scanner;

public class Main {

static String time;

public static void Input()

{

Scanner in=new Scanner(System.in);

String s;

do

{

s=in.nextLine();

if(s.contains("$GPRMC")&&s.contains(",A,"))

{

if(Check(s))

time=s;

}

}while(!s.equals("END"));

in.close();

}

private static boolean Check(String s)

{

int i;

int xor=s.charAt(1);

for(i=2;s.charAt(i)!=(int)'*';i++)

{

xor^=s.charAt(i);

}

String p=s.substring(i+1);

int w=Integer.valueOf(p,16);

return(w==xor);

}

public static int m(int a,int b)

{

int c;

c=Integer.parseInt(time.substring(a,b));

return c;

}

public static void main(String[] args) { Input();

int hh=0,mm=0,ss=0;

int j=time.indexOf(",");

hh=m(j+1,j+3)+8;

mm=m(j+3,j+5);

ss=m(j+5,j+7);

hh%=24;

if(hh>=10)

System.out.print(hh);

else if(hh==0)

System.out.print("00");

else

System.out.print("0"+hh);

if(mm>=10)

System.out.print(":"+mm);

else if(mm==0)

System.out.print(":00");

else

mooc零基础学习java语言习题答案

第一周 温度转换(5分) 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式: (int)x; 其中x是要转换的那个浮点数。 注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求转换后的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。 输入格式: 一个整数。 输出格式: 一个整数。 输入样例: 100 输出样例: 37 程序代码 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int F; int C; Scanner in=new Scanner(System.in); F =in.nextInt(); C =(F-32)*5/9; System.out.println(C); in.close(); }

} 第二周 1时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。 有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。 你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。 提醒:要小心跨日的换算。 输入格式: 一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。输出格式: 一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。输入样例: 933 输出样例: 133 程序代码 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int UTC; int BJT;

零基础自学java,先看书胜过先看视频

零基础自学java,先看书胜过先看视频 近年来,Java视频逐渐取代了“书”的作用,许多初学者已经将看视频作为最主要的学习方式。然而,通过长期对java自学者的观察研究,我们发现,书和视频均有各自的作用,看书和看视频对于java学习者来说,都是不可或缺的。然而,由于现在Java 入门级视频讲的实在是浅显易懂,导致许多零基础的学生完全忽视了书的作用,这是非常不利于以后的深入学习的。 首先,看java视频是能够更快速的学习java 这一点是毋庸置疑的,为什么现在视频教程会那么的流行,因为视频教程讲的非常的生动浅显,最关键是视频教程会由老师亲自上级演示操作,这就像是上课一样,而且可以反复看,对于初学者来说,非常有用。 其次,书籍的作用在于引导和思考 对于零基础的初学者而言,视频就像是老师讲课,然而,我们从小到大的学习,都离不开图书,书籍是知识的载体,一本图书凝聚作者毕生的知识积累。对于自学者而言,一开始就看视频,会觉得视频讲的确实容易,因此容易丧失主动思考的能力。只有,你自己拿起一本java经典图书,一字一行的理解其中的技术精髓,你才能不断的思考,而这本书则是你的引导。 看书+视频+看书的学习形式最为合适 对于零基础自学者来说,视频就是你的老师,图书就是你的课本。那么,在上课之前一定要先预习,上课之后要复习并完成作业,这是一个我们习以为常的学习流程,也是非常有效的学习过程。所以,你可以先看一章或多章图书,这时候,你可能只理解了一部分,接下来,你再看视频,你会发现视频中讲了不少东西,你又会明白一部分,看

过视频后,反过来,再复习之前看过的图书,这样,你就把整个知识和原理进行了一次思考,你将最大限度的理解其中的原理,而之后,多上机练习,由此反复,循序渐进,你将会学的扎扎实实,几个月坚持下来,你必定会成为一个优秀的初级程序员,而这离一个优秀的中高级程序员之间的距离仅仅是时间问题。而一开始,你就填鸭式的被动接受,不多加思考,那么几个月下来,你只是一个马马虎虎的初级程序员,而你离一个马马虎虎的中高级程序员的距离也只是时间问题而已。 位于沈阳和平区三好街的北大青鸟,推崇技能+学历+经验的教学模式。无论是学资学历、师资力量还是专业技术在同类机构中都占据不少优势,更重要的是北大青鸟入学就签订就业协议,很大程度上解决了学员的就业难题。 北大青鸟教材在编制测试后,会进入到正式的授课中,为了能够保证北大青鸟学员所学知识的权威性和实用性,北大青鸟每18个月便会邀请行业专家和著名企业权威人士,加上北大计算机相关学院的资深教授,进行教材的升级和更新。 如果您对IT感兴趣并且励志要成为IT精英,千万不要错过北大青鸟。 详情请咨询【点击查看】

《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基础测试题及答案

一、选择题(每题2分,共40分) 1、下面哪个是Java语言中正确的标识符( C ) A、3com B、import C、that D、this 2、下面哪个语句(初始化数组)是不正确的:(B) A.int x[] = {1,2,3}; B.int x[3] = {1,2,3}; C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3}; 3、下述概念中不属于面向对象方法的是( D )。 A.对象、消息 B.继承、多态 C.类、封装 D.过程调用 4、下面的代码段中,执行之后i 和j 的值是什么? ( B ) int i = 1; int j; j = i++*2+3*--i; A.1, 2 B.1, 5 C.2, 1 D.2, 2 5、下面哪条语句把方法声明为抽象的公共方法?(B ) A.public abstract method(); B.public abstract void method(); C.public abstract void method(){} D.public void method() extends abstract; 6、下面关于java中类的说法哪个是不正确的?( C ) A.类体中只能有变量定义和成员方法的定义,不能有其他语句。 B.构造函数是类中的特殊方法。 C.类一定要声明为public的,才可以执行。 D.一个java文件中可以有多个class定义。 7、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C ) class A { int i; static String s; void method1() { } static void method2() { } } A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2() 8、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小 的变化而改变? ( B ) A、CardLayout B、FlowLayout C、BorderLayout D、GridLayout 9、下列哪个用户图形界面组件在软件安装程序中是常见的? ( C ) A.滑块 B.进度条 C.按钮 D.标签

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语言的允许的任何数据类型,包括基本类型与引用类型。 方法名:与成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总就是后执行。

Java基础知识测试__A卷_答案

考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面说法正确的是() A. JVM就是Java虚拟机,包含java核心类库// JRE: JVM+Java library。 B. JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+Tools C. JDK就是java开发环境,javac是其中的一个工具 D. 功能范围:JDK > JVM > JRE 2.下面的说法正确的是( ) A. Java 语言是面向对象的、解释执行的网络编程语言。 B. Java 语言具有可移植性,是与平台无关的编程语言。 C. Java 语言可对内存垃圾自动收集。 D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。 3.给定java代码,如下: public byte count(byte b1, byte b2){ return ____; }

要使这段代码能够编译成功,横线处可以填入 A. (byte)(b1-b2) //返回值类型为byte,要求选项结果为byte B. b1-b2 C. (byte)b1+b2 D. (byte)b1/b2 4.关于类的命名,正确说法是() A. 可以由数字和英文拉丁字母组成,且可以任意排序//数字不能开头 B. 命名要做到见名知意 C. 如果是由多个单词组成,每个单词首字母大写 D. 可以是Java已经定义过的关键字//囧 5.关于main方法说法错误的是() A.main方法是java程序执行的入口 B.main方法的方法体重至少要有一行代码//可以没有代码 C.main必须定义在一个类中 D. main方法的定义格式为:public static void main(String[] args){} 6.类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是: A. double a = fun(1,2); B. double a = fun(1.0,2.0); C. int x = fun(1,2); D. int x = fun(1.0,2.0); 7.给定java代码,如下,编译运行,结果是() public static void main(String[] args){ boolean flag; System.out.println(“flag”+flag); //局部变量需要先初始化再使用} A. 编译错误 B. 编译通过,单出现运行时错误 C. 正常运行,输出flag=false D. 正常运行,输出flag= 8.下面哪个关键字可以定义一个类()

零基础java自学教程

零基础java自学教程 java的火爆袭来,吸引了大批的初学者涉猎,想入行java,却苦于自己没有基础,担心学不好。小编告诉你,这些担心都是浮云,你只是惧怕走进一个新天地,人都是一样的,面对自己不熟悉的领域总会有莫名的恐惧感。其实来千锋学习java的大部分都是零基础,照样高薪就业。不是不可以,只是你缺乏的是勇敢迈出去的勇气。 千锋小编整理了一份关于java自学的学习路线图,希望帮助每一位想学习java的小伙伴快速成长为java开发工程师。 Java学习分为四个阶段的学习,如零开始,逐渐深入,书籍和教学视频相结合,大步走向java开发工程师。 完整的java学习路线图: 第一阶段java基础,通过对基础阶段的学习,可以让学员清晰JavaEE开发工程师的定位及发展规划,同时鼓舞学员做好迎战的心理准备。 第二阶段javaWeb,是进阶阶段,掌握Java的基本语法,数据类型及各种运算符,开始可以写一些运算相关的程序。

第三阶段java框架,框架是程序中另一种存储数据的方式,比直接使用数组来存储更加的灵活,在项目中应用十分广泛。同时,我们将深入研究其中涉及到的数据结构和算法,对学员的技术深度有了一个质的提升。 第四阶段java+云数据,亿级并发架构演进、Linux基础、搭建tomcat环境以及大数据开发云计算等高级Java教程,是Java技术的高端知识。其中穿插项目实战演练,企业真实项目供学员应用学习,进行知识体系的“二次学习”。 Java自学书籍: 《Head First Java, 2nd Edition(中文版)》这本书不仅内容丰富、有趣且通俗易懂,并且涵盖了所有Java 相关的基础知识。如果你是Java 初学者,这本书正适合你。 《Java 核心技术(卷1、2)》写作风格相比Head First 趣味性来说更显传统,所涵盖的内容包括Java 基础知识及高级应用,是对于入门来说的另一种选择。 《Java 编程思想(第4版)》必读之作,不仅涵盖所有Java 基础,对于编程思想层面的提升也有很好的帮助。 《Head First 设计模式》延续Head First 一贯生动趣味的写作风格,介绍

《java语言基础》考试题

java 语言基础》练习题 、单项选择题 1.Java 是从()语言改进重新设计。 A.Ada B.C++ C .Pasacal D.BASIC 答案: B 2.下列语句哪一个正确() A.Java 程序经编译后会产生machine code B.Java 程序经编译后会产生byte code C.Java 程序经编译后会产生DLL D .以上都不正确 答案: B 3.下列说法正确的有() A . class 中的constructor 不可省略 B. constructor必须与class同名,但方法不能与class同名 C.constructor 在一个对象被new 时执行 D .一个class 只能定义一个constructor 答案: C 4.提供Java 存取数据库能力的包是() A .java.sql B .java.awt C .https://www.360docs.net/doc/f818483293.html,ng D .java.swing 答案: A 5.下列运算符合法的是() A .&& B .<> C .if D .:=

答案: A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后, C 的值是() A . 0 B . 1 C. -1 D .死循环 答案: C 7 .下列哪一种叙述是正确的() A .abstract 修饰符可修饰字段、方法和类 B .抽象方法的body 部分必须用一对大括号{ } 包住 C .声明抽象方法,大括号可有可无 D .声明抽象方法不可写出大括号 答案: D 8 .下列语句正确的是() A .形式参数可被视为local variable B .形式参数可被字段修饰符修饰 C .形式参数为方法被调用时,真正被传递的参数 D .形式参数不可以是对象 答案: A

(完整word版)[零基础学JAVA]JavaSE面向对象部分-15.面向对象高级(03)

上季内容回顾: 1、super与this关键字 2、方法的重载与覆写 本季主要知识点: 1、final关键字 2、简单了解一下抽象类与接口(是JAVA中最重要的部分) final关键字 终结器—— final 1、被final标记的类不能被继承 final class A { }; class B extends A { }; 验证一下: 2、被final标记的方法不能被子类覆写 final class A { public final void print(){}

}; class B extends A { public void print(){} }; 3、被final标记的变量就成为常量,如果成为常量,则以后不能修改 class A { final String NAME= "Hello"; public final void print() { NAME = "World"; } }; 之前在声明变量的时候是第一个单词的首字母小写,之后每个单词的首字母大写。如果使用final声明常量,则所有单词的字母都要大写。 重点:全局常量: · static:是所有对象共享的 · final:是一个常量 · public:表示可以让外部看见 public static final String FLAG = "https://www.360docs.net/doc/f818483293.html,"; 全局常量

抽象类 抽象类:包含一个抽象方法的类就称为抽象类。 抽象方法:只声明而未实现的方法称为抽象方法。 方法没有方法体(方法体:“{}”),则称为是一个抽象方法。 除了抽象方法之外其他的定义如同普通类一样。 抽象类 = 普通类的功能 + 抽象方法 abstract class A { public static final String FLAG = "https://www.360docs.net/doc/f818483293.html,"; public void print() { //有方法体,所以是一个普通方法 System.out.println("Hello World~~~"); } //此处定义了一个抽象方法 public abstract void fun(); }; public class Demo04 { public static void main(String args[]) { A a = new A(); } };

Java基础语法考试题

学士后Java阶段测试-U1单元-笔试试卷1 考试时间 60分钟 选择题(共50题,每题2分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()(多选)。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重 载。(多选) public class Test{ public void cal(int x, int y, int z) {} ________________ } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面Java代码的运行结果是()。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { health = 10; sex = "雄"; System.out.println("执行构造方法。");

超级经典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的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢?

Java语言程序设计基础教程习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章 Java程序设计概述 练习思考题 1、 Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、 Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、 public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

Java语言编程基础知识

Java语言编程基础知识 Java语言编程基础知识 学习Java要掌握不同数据类型的变量定义与使用,掌握不同运 算符的运算规则,掌握流程控制语句的执行流程,编写方法的声明 与调用,创建数组并访问数组元素等知识。那么Java语言编程基础 知识有哪些呢,一起来看看! 1)注释 在程序开发工程中,用于解释和说明程序的文字我们称之为注释,Java中的注释分为以下几种:单行注释、多行注释、文档注释。 2)关键字 了解Java关键字的含义及特点,掌握关键字使用的注意事项。 3)标识符 了解什么是标识符,标识符的组成规则,以及标识符使用时的注意事项。 4)常量与变量 理解常量与变量的含义,并掌握常量与变量的区别、变量的定义格式以及变量的赋值。 5)数据类型 掌握Java语言的'数据类型,如基本数据类型:byte、short、int、long、float、double、char、boolean,以及引用类型:类、 接口、数组。 6)运算符

熟练掌握Java中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。 7)流程控制语句 了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构,并能够通过流程控制语句实现特定的功能。 8)方法 掌握方法的定义及格式,并能正确的调用方法,理解方法的调用过程,同时清楚方法的注意事项;掌握方法重载及其特点。 9)数组 了解数组的概念,掌握数组的定义格式、静态初始化、动态初始化,并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找,以及二维数组的定义格式及初始化。

中南民族大学Java语言程序设计期末试卷A卷

科目序号:6002 A卷 《Java语言程序设计》期末试卷 (试卷总分:100分,考试时间:120分钟,答案写在答卷纸上) 一.判断题(每题1分,共10分) 1.无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件。(X )2.Java的各种数据类型所占用的内存长度与具体软硬件环境有关。(X )3.静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。(O )4.与C语言不同的是,Java语言中的数组元素下标总是从1开始。(X )5.在Java的方法中定义一个常量要用const关键字。(X )6.Java有两类程序:Java Application和Java Applet,其中Java Applet程序只能在图形界面中工作,而Java Application程序只能在字符界面中工作。(X)7.在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。(X )8.程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(X )9.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out 和标准错误输出System.err。(O )10.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。(O ) 二.单项选择题(每题2分,共40分) 1.编译Java Applet 源程序文件产生的字节码文件的扩展名为( B)。 A、java B、class C、html D、exe 2.Java application中的主类需包含main方法,main方法的返回类型是什么?(D ) A、int B、float C、double D、void 3.以下哪个方法用于定义线程的执行体?( C ) A、 start() B、init() C、run() D、synchronized() 4.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?(D ) A、init() B、start() C、destroy() D、stop() 5.下面哪个不是Java中的容器? ( A ) A、Canvas B、ScrollPane C、Applet D、Dialog 6.以下标识符中哪项是不合法的( A ) A、const B、$double C、hello D、BigMeaninglessName 7.以下哪个关键字可以用来为对象加互斥锁?(D )

零基础学java从哪儿开始

零基础学java从哪儿开始 面对未知的行业,人们的第一反应应该是:拒绝踏入。因为学习真的是一个痛苦的过程。想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的。面对勇敢自学的java小伙伴们,千锋小编疯狂为你们打CALL,并为你准备了一些java重要的技术点,是需要重点学习的技术哦! 1、多线程并发 多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu 使用率,提升整体系统效率,特别是在有大量IO操作阻塞的情况下;但是它也是一柄双刃剑,如果用不好,系统非但提升不大,或者没有提升,而且还会带来多线程之间的调试时等问题。 在多线程中内容有很多,只是简单说明一下Java中初步使用多线程需要掌握的知识点,以后有机会单独再详细介绍一些高级特性的使用场景。 多线程的实现和启动 callable与runable区别 syncrhoized,reentrantLock各自特点和比对

线程池 future异步方式获取执行结果 concurrent包 lock 2、网络 Java中也是提供了可以直接操作TCP协议、UDP协议的API。在需要强调网络性能的情况下,可以直接使用TCP/UDP进行通讯。在查看Tomcat等的源码中,就可以看到这些相关API的使用情况。不过一般也比较少会直接使用TCP,会使用诸如MINA、Netty这样的框架来进行处理,因为这个方面的开发涉及不多,所以就不再详细罗列了。 3、时间日期处理 几乎对于每个应用来说,时间日期的处理也是绕不过去的,但是JDK8之前的时间相关API用法并不友好。在那个时代,可以选择Joda等时间框架。到了JDK8发布之后,全新的时间API基本融合了其他框架的优点,已经可以很好的直接使用了。 对于Java开发者来说,需要熟练地使用API来对时间和日期做相关的处理。 4、XML解析/JSON解析 其实这两块内容都不是J2SE里面的内容,但是在日常开发中,和其他程序交互,和配置文件交互,越来越离不开这两种格式的解析。 不过对于一个开发者来说,能够了解一些XML/JSON具体解析的原理和方法,有助于你在各个具体的场景中更好的选择合适你的方式来使得你的程序更有效率和更加健壮。

java基础测试题

一、选择题 1、下面哪个是Java语言中正确的标识符(a) A、3com B、import C、that D、this 2、下面哪个语句(初始化数组)是不正确的:(b) A.int x[] = {1,2,3}; B.int x[3] = {1,2,3}; C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3}; 3、下述概念中不属于面向对象方法的是( a)。 A.对象、消息 B.继承、多态 C.类、封装 D.过程调用 4、下面的代码段中,执行之后i 和j 的值是什么? ( a ) int i = 1; int j; j = i++*2+3*--i; A.1, 2 B.1, 5 C. 2, 1 D. 2, 2 5、下面哪条语句把方法声明为抽象的公共方法?(a)A.public abstract method(); B.public abstract void method(); C.public abstract void method(){} D.public void method() extends abstract; 6、下面关于java中类的说法哪个是不正确的?(c)

A.类体中只能有变量定义和成员方法的定义,不能有其他 语句。 B.构造函数是类中的特殊方法。 C.类一定要声明为public的,才可以执行。 D.一个java文件中可以有多个class定义。 7、假设A类有如下定义,设a是A类的一个实例,下列语 句调用哪个是错误的?(d) class A { int i; static String s; void method1() { } static void method2() { } } A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2() 10、在Java 中如果要在字符串类型对象s=“JAVA”,中找 出‘V’出现的位置可使用下面哪个方法:(b) A.mid(2,s); B.charAt(2); C.s.indexOf(‘V’); D.indexOf(s,’V’); 13、给出下面代码: public class Person{ static int arr[] = new int[10];

学习java最好的方法

学习java最好的方法 学习java最好的方法其中动手是最为重要的了。有人总结学好java没有别的窍门就是"编程,编程,再编程",本人认为很有道理,很多人学计算机技术就是看书、听课,当时是明白了,过不了多长时间马上就忘记。如果不愿意敲键盘,就干脆不学。有时候即使所敲的代码你不明白,可以先运行,看看结果,增加些感性认识,然后上升到理性的认识。特别是在大家做考题的时候,很多东西,概念,你只要随便敲一个程序做做实验就能很深刻的理解,但很多人都是不愿意动手,试问这样的学习效率能高吗,要想深入的掌握java技术可能吗?动脑,动嘴,就是要多想问题,多思考,有不懂的问题就大声说出来,多向老师和同学请教,不要把问题烂在肚子里,学会沟通很重要。很多人通常是不动脑筋想问题,也就提不出问题。还有一些人怕自己提出的问题傻,怕人笑话。其实it行业技术面很广,工作了5、6年的人说出一些傻话来也是正常的。 静心很重要。现在社会很浮躁,it行业更浮躁,这种心态是学不好东西的。有些学习java的学生,给他们讲java基础等,他们说太基础了,不愿学。让讲高级点的,老师就教他们jvm原理,对象的内存布局,他们说直接教jdbc吧,ok,老师就带他们做一个小程序一个简单的mis系统,结果有些人连java大小写要区分都不知道。很多学生让直接让讲jsp,struts,spring,说热

门。我说你学会了基本的东西,代码写多了,spring之类东西是很容易的,否则就是本末倒置。当然有些人情况特殊,急着工作,那去学jsp,servlet,jdbc很容易,也好找工作,但基础最后还是要补的。很多人java做了几年了,连多态,线程都没搞明白。我觉得理解是需要时间的,一下不能理解,多看看,甚至多背几遍就理解了。读书千遍,其义自见,现在也管用。 而且我觉得初学时候要不求甚解,多做,多敲代码。等你做的足够多的时候,见多识广的时候,概念,理论的东西就很容易理解了。java的精华就在面向对象思想,好比指针是c语言的精华一样,多花点心思就能掌握。学习实际上是一件乐中有苦,苦中作乐的事情,不是一蹴而就的,需要同学们按下浮躁的心,踏踏实实的把基础打牢然后进阶学习才能在这条道路上越走越远。 浅谈java学习方法和后期面试技巧一、java基础部分:java基础的时候,有些知识点是非常重要的,比如循环系列。for,while,do-while.这方面只要大家用心点基本没什么难点。 二、面向对象:oop面向对象的时候,偏重理论,相信这方面的文章也很多,大家可以多看看,在这就不说了。重点掌握面向对象的三大特征和基本原理。 三、java核心一:这方面主要偏重api,所以在学习了这章的时候,一定要对照api去学习,多看api,主要就是方法多,string 和集合的方法最为重要。后面将为大家提供本人整理的部分笔记。 四、java核心二:主要讲解了异常,线程和io流,其实个人认为重点掌握线程就行,对于流和异常多写就行,线程偏重理论也最为重要。

相关文档
最新文档