当前位置:文档之家› CoreJava练习及参考答案

CoreJava练习及参考答案

CoreJava练习及参考答案
CoreJava练习及参考答案

1,编写程序,判断给定的某个年份是否是闰年。

闰年的判断规则如下:

(1)若某个年份能被4整除但不能被100整除,则是闰年。

(2)若某个年份能被400整除,则也是闰年。

import java.util.Scanner;

class Bissextile{

public static void main(String[] arge){

System.out.print("请输入年份");

int year; //定义输入的年份名字为“year”

Scanner scanner = new Scanner(System.in);

year = scanner.nextInt();

if (year<0||year>3000){

System.out.println("年份有误,程序退出!");

System.exit(0);

}

if ((year%4==0)&&(year%100!=0)||(year%400==0))

System.out.println(year+" is bissextile");

else

System.out.println(year+" is not bissextile ");

}

}

2,给定一个百分制的分数,输出相应的等级。

90分以上 A级

80~89 B级

70~79 C级

60~69 D级

60分以下 E级

import java.util.Scanner;

class Mark{

public static void main(String[] args){

System.out.println("请输入一个分数");

//定义输入的分数为“mark”,且分数会有小数

double mark;

Scanner scanner = new Scanner(System.in);

mark = scanner.nextDouble();

//判断是否有输入错误。

if(mark<0||mark>100){

System.out.println("输入有误! ");

System.exit(0);

}

/*判断分数的等级

90分以上者A级, 80~89分者 B级,70~79分者 C级, 60~69者 D级,60分以下E级 */

if (mark>=90) System.out.println("this mark is grade \'A\' ");

else if (mark>=80) System.out.println("this mark is grade \'B\' ");

else if (mark>=70) System.out.println("this mark is grade \'C\' ");

else if (mark>=60) System.out.println("this mark is grade \'D\' ");

else System.out.println("this mark is grade \'E\' ");

}

}

3,编写程序求1+3+5+7+……+99 的和值。

class he{

public static void main(String[] args){

int number = 1; //初始值1,以后再+2递增上去

int sum = 0;

for ( ; number <100; number+=2 ){ sum += number; }

System.out.println("1+3+5+7+……+99= " +sum);

}

}

4、利用for循环打印 9*9 表?

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

//循环嵌套,打印九九乘法表

public class NineNine{

public static void main(String[]args){

System.out.println();

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

for(int k=1;k<10;k++) { //老师的做法,判断语句里的 k<=j,省去下列的if 语句。

if (k>j) break; //此处用 continue也可以,只是效率低一点

System.out.print(" "+k+"X"+j+"="+j*k);

}

System.out.println();

}

}

}

6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,

例如: 153 = 1*1*1 + 3*3*3 + 5*5*5

class DafodilNumber{

public static void main(String[] args){

System.out.println("以下是所有的水仙花数");

int number = 100; // 由于水仙花数是三位数,故由100开始算起

int i, j, k; // i j k 分别为number 的百位、十位、个位

for (int sum; number<1000; number++){

i=number/100; j=(number-i*100)/10; k=number-i*100-j*10;

sum=i*i*i+j*j*j+k*k*k;

if (sum==number) System.out.println(number+" is a dafodil number! ");

}

}

}

7、求 a+aa+aaa+.......+aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定。

import java.util.Scanner;

class Multinomial{

public static void main(String[] args){

int a; //定义输入的 a

int howMany; //定义最后的一项有多少个数字

Scanner scanner = new Scanner(System.in);

System.out.println("请输入一个 1~9 的 a 值");

a = scanner.nextInt();

System.out.println("请问要相加多少项?");

howMany = scanner.nextInt();

int sum=0;

int a1=a; // 用来保存 a 的初始值

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

sum+= a;

a = 10*a +a1; // 这表示a 的下一项

// 每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;注意,这时的 a 已经变化了。

}

System.out.println("sum="+sum);

}

}

8、求 2/1+3/2+5/3+8/5+13/8.....前20项之和?

class Sum{

public static void main(Sting[] args){

double sum=0;

double fenZi=2.0, fenMu=1.0; //初始的分子 (fenZi)=2,分母(fenMu)=1 for(int i=1; i<=20; i++){

sum += fenZi / fenMu ;

fenMu = fenZi; //下一项的分母=上一项的分子

fenZi += fenMu; //下一项的分子=上一项的分子加分母

}

System.out.println("sum= "sum);

}

}

9、利用程序输出如下图形:

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

class Asterisk{

public static void main(String[] args){

for (int i=1; i<=13; i+=2){

for(int j=1; j<=i && i+j<= 14; j++){

System.out.print("* ");

}

System.out.println(); // 换行

}

}

}

11、计算圆周率

PI=4-4/3+4/5-4/7.......

打印出第一个大于 3.1415小于 3.1416的值

class Pi {

public static void main(String[] args){

double pi =0; //定义初始值

double fenZi = 4; //分子为4

double fenMu = 1; //第一个4,可看作分母为1 的分式,以后的分母每次递增2 for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确度小些

pi += (fenZi/fenMu) ;

fenZi *= -1.0; //每项分子的变化是+4,-4,+4,-4 ....

fenMu += 2.0; //分母的变化是1,3,5,7, .... 每项递加2

}

System.out.println(pi);

}

}

输出结果为pi = 3.1415926525880504,应该不精确

12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值

1 1

2

3 5 8 13 21 34

规律:一个数等于前两个数之和

//计算斐波那契数列(Fibonacci)的第n个值

public class Fibonacci{

public static void main(String args[]){

int n = Integer.parseInt(args[0]);

int n1 = 1;//第一个数

int n2 = 1;//第二个数

int sum = 0;//和

if(n<=0){

System.out.println("参数错误!");

return;

}

if(n<=2){

sum = 1;

}else{

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

sum = n1+n2;

n1 = n2;

n2 = sum;

}

}

System.out.println(sum);

}

}

//计算斐波那契数列(Fibonacci)的第n个值

//并把整个数列打印出来

public class FibonacciPrint{

public static void main(String args[]){

int n = Integer.parseInt(args[0]);

FibonacciPrint t = new FibonacciPrint(); for(int i=1;i<=n;i++){

t.print(i);

}

}

public void print(int n){

int n1 = 1;//第一个数

int n2 = 1;//第二个数

int sum = 0;//和

if(n<=0){

System.out.println("参数错误!");

return;

}

if(n<=2){

sum = 1;

}else{

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

sum = n1+n2;

n1 = n2;

n2 = sum;

}

}

System.out.println(sum);

}

}

13、求1-1/3+1/5-1/7+1/9......的值。

a,求出前50项和值。

b,求出最后一项绝对值小于1e-5的和值。

15、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: *

***

*****

*******

*********

//打印金字塔图案

public class PrintStar{

public static void main(String args[]){

int col = Integer.parseInt(args[0]);

for(int i=1;i<=col;i++){//i表示行数

//打印空格

for(int k=0;k

System.out.print(" ");

}

//打印星星

for(int m=0;m<2*i-1;m++){

System.out.print("*");

}

System.out.println();

}

}

}

16、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和

打印出所有的可能

//任何一个大于六的偶数可以拆分成两个质数的和

//打印出所有的可能

public class Gedebahe{

public static void main(String args[]){

int num = Integer.parseInt(args[0]);

if(num<=6){

System.out.println("参数错误!");

return;

}

if(num%2!=0){

System.out.println("参数错误!");

return;

}

Gedebahe g = new Gedebahe();

//1不是质数,2是偶数,因此从3开始循环

for(int i=3;i<=num/2;i++){

if(i%2==0){//如果为偶数,退出本次循环

continue;

}

//当i与num-i都为质数时,满足条件,打印

if(g.isPrime(i) && g.isPrime(num-i)){

System.out.println(i+" + "+(num-i)+" = "+num);

}

}

}

第4章数组

1. 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,

最小值,平均值,和值,并输出出来。

class ArrayNumber{

public static void main(String[] args){

int[] arrayNumber;

arrayNumber = new int[10];

System.out.println("以下是随机的10个整数:");

// 填入随机的 10个整数

for (int i =0; i

arrayNumber[i] = (int)(100*Math.random());

System.out.print(arrayNumber[i]+" ");

}

System.out.println();

int max = arrayNumber[0];

int min = arrayNumber[0];

int sum = 0;

for (int i =0; i

if(max < arrayNumber[i])

max = arrayNumber[i]; //求最大值

if(min > arrayNumber[i])

min = arrayNumber[i]; //求最小值

sum += arrayNumber[i];

}

System.out.println("其中Max="+max+",Min="+min+",Sum="+sum+",Avg="+sum/10.0);

}

}

2.定义一个int型的一维数组,包含10个元素,分别赋值为1~10,然后将数组中的元素都向前移一个位置,

即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。

3. 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数,

将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。

4. (选做)承上题,将这40个成绩按照从高到低的顺序输出出来。

5,(选做)编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值

为5,4,3,2,1。

6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。再定义一个

int型数组b,包含10个元素。统计a数组中的元素对10求余等于0的个数,保存到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。

class Remain{

public static void main( String[] args){

int[] a = new int[100];

//保存100个随机4位数到 a 中

for (int i = 0; i < a.length; i++){

a[i] = (int) (1000*Math.random());

}

//统计 a 数组中的元素对 10 求余的各个的数目

int[] b = new int[10];

int k,sum;

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

for (k=0,sum=0; k < a.length; k++){

if ((a[k]%10)==j) sum++;

}

b[j] = sum;

System.out.printf("b[%d]=%d\n",j,b[j]);

}

}

}

7,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课按存储顺序依次为:core C++,coreJava,Servlet,JSP和EJB。

(1)循环给二维数组的每一个元素赋0~100之间的随机整数。

(2)按照列表的方式输出这些学员的每门课程的成绩。

(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。

(4)要求编写程序求所有学员的某门课程的平均分。

class Student{

public static void main(String[] args ){

int[][] mark = new int[20][5];

// 给学生赋分数值,随机生成

for ( int i = 0; )

}

}//未完成

8,完成九宫格程序

在井字形的格局中(只能是奇数格局),放入数字(数字由),使每行每列以及斜角线的和都相等

经验规则:从 1 开始按顺序逐个填写; 1 放在第一行的中间位置;下一个数往右上角45度处填写;

如果单边越界则按头尾相接地填;如果有填写冲突,则填到刚才位置的底下一格;

如果有两边越界,则填到刚才位置的底下一格。

个人认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写,而且

填的时候还可以把头尾对应的数填到对应的格子中。(第 n 个值跟倒数第 n 个值对应,格局上以最中

间格为轴心对应)

这样就可以同时填两个数,效率比之前更高;其正确性有待数学论证(但多次实验之后都没发现有错)。

九宫格的 1 至少还可以填在另外的三个位置,只是接下来的填写顺序需要相应改变;

再根据九宫格的对称性,至少可以有8种不同的填写方式

import java.util.Scanner;

class NinePalace{

public static void main(String[] args){

// 定义 N 为九宫格的行列数,需要输入

System.out.println("请输入九宫格的行列规模(只能是奇数的)");

Scanner n = new Scanner(System.in);

int N;

//判断格局是否奇数(可判断出偶数、负数及小数)

double d;

while (true){

d = n.nextDouble();

N = (int)d;

if ((d-N)>1.0E-4||N%2==0||N<0)

{System.out.println("输入出错,格局只能是正奇数。请重新输入");} else break;

}

//老师的九宫格填写方法

int[][] result = new int[N][N]; //定义保存九宫格的数组

int row = 0; //行初始位置

int col = N/2; //列初始位置,因为列由0开始,故N/2是中间位置

for (int i=1; i<=N*N; i++){

result [row][col] = i;

row--;

col++;

if (row<0&&col>=N){col--;row+=2;} //行列都越界

else if (row<0){ row = N-1;} //行越界

else if (col>=N){col = 0;} //列越界

else if (result[row][col] != 0){col--;row+=2;} //有冲突

}

//打印出九宫格

for (int i=0; i

for(int j=0; j

System.out.println();

}

//我个人的填格方式

int[][] result2 = new int[N][N]; //为免冲突,重新 new 一个数组

result2[N/2][N/2] = (N*N+1)/2; //先把中间值赋予中间位置

row = 0; //定义行及列的初始赋值位置。之前赋值的for对两个值有影响,故需重新定位

col = N/2;

for (int i=1; i<=N*N/2; i++){

result2[row][col] = i;

//下面这句是把跟 i 对应的值放到格局对应的位置上

result2[N-row-1][N-col-1] = N*N+1-i;

row--;

col++;

if (row<0){ row = N-1;} //行越界

else if (col>=N){col = 0;} //列越界

else if (result2[row][col] != 0){col--;row+=2;} //有冲突

//这方法不可能出现行列两边都越界的情况,详情需要数学论证

}

System.out.println();

//再次打印出九宫格,以对比验证

for (int i=0; i

for(int j=0; j

System.out.println();

}

}

}

9,求一个3*3矩阵对角线元素之和

10,打印杨辉三角

11. 约梭芬杀人法

把犯人围成一圈,每次从固定位置开始算起,杀掉第7个人,直到剩下最后一个。

11_2、用数组实现约瑟夫出圈问题。 n个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,剩下的人继续开始从1报数,直到所有的人都出圈为止。对于给定的n,m,求出所有人的出圈顺序。

12. 判断随机整数是否是素数

产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?public class PrimeTest{

public static void main(String args[]){

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

int num = (int)(Math.random()*1000);

PrimeTest t = new PrimeTest();

if(t.isPrime(num)){

System.out.println(num+" 是素数!");

}else{

System.out.println(num+" 不是素数!");

}

System.out.println();

}

}

public boolean isPrime(int num){

for(int i=2;i<=num/2;i++){

if(num%i==0){

System.out.println(num+"第一个被"+i+"整除!"); return false;

}

}

return true;

}

}

冒泡排序法:

//按从大到小的排序

int tmp = a[0];

for (int i=0; i < a.length; i++){

for (int j=0; j < a.length - i -1; j++){

if (a[j] < a[j+1]) {

tmp = a[j];

a[j] = a[j+1];

a[j+1] = tmp;

}

}

}

day06 练习

某公司的雇员分为以下若干类:

Employee:这是所有员工总的父类,属性:员工的姓名和生日月份。

方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,

则公司会额外奖励100元。

SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160

小时的部分按照1.5倍工资发放

属性:每小时的工资、每月工作的小时数

SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定

属性:月销售额、提成率

BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,

工资由底薪加上销售提成部分属性:底薪。

public class TestEmployee{

public static void main(String[]args){

Employee[] es = new Employee[5];

es[0] = new Employee("赵君",2);

es[1] = new SalariedEmployee("宋婕", 1, 8000);

es[2] = new HourlyEmployee("王超", 5, 10, 300);

es[3] = new SalesEmployee("秋娥", 2, 200000, 0.05);

es[4] = new BaseSalarySalesEmployee("郭镫鸿", 1, 1000000, 0.1, 10000); int month = 2;//本月为2月

System.out.println("宇宙集团"+month+"月工资表:");

for(int i=0; i

System.out.println(es[i].getName()+":"+es[i].getSalary(month));

}

}

}

class Employee{

private String name;

private int birth;

public String getName(){

return name;

}

public Employee(String name, int birth){

https://www.doczj.com/doc/db10932781.html, = name;

this.birth = birth;

}

public double getSalary(int month){

if(month==birth){

return 100;

}

return 0;

}

}

class SalariedEmployee extends Employee{

private double salary;

public SalariedEmployee(String name, int birth, double salary){

super(name, birth);

this.salary = salary;

}

public double getSalary(int month){

return salary + super.getSalary(month);

}

}

class HourlyEmployee extends Employee{

private double hourSalary;

private int hour;

public HourlyEmployee(String name, int birth, double hourSalary, int hour){ super(name, birth);

this.hourSalary = hourSalary;

this.hour = hour;

}

public double getSalary(int month){

if(hour<=160){

return hourSalary*hour+super.getSalary(month);

}else{

return

160*hourSalary+(hour-160)*hourSalary*1.5+super.getSalary(month);

}

}

}

class SalesEmployee extends Employee{

private double sales;

private double pre;

public SalesEmployee(String name, int birth, double sales, double pre){

super(name, birth);

this.sales = sales;

this.pre = pre;

}

public double getSalary(int month){

return sales*pre+super.getSalary(month);

}

}

class BaseSalarySalesEmployee extends SalesEmployee{

private double baseSalary;

public BaseSalarySalesEmployee(String name, int birth, double sales, double pre, double baseSalary){

super(name, birth, sales, pre);

this.baseSalary = baseSalary;

}

public double getSalary(int month){

return baseSalary+super.getSalary(month);

}

}

/**

* 在原有的雇员练习上修改代码

* 公司会给SalaryEmployee每月另外发放2000元加班费,给

* BasePlusSalesEmployee发放1000元加班费

* 改写原有代码,加入以上的逻辑

* 并写一个方法,打印出本月公司总共发放了多少加班费

* @author Administrator

*

*/

public class EmployeeTest {

/**

* @param args

*/

public static void main(String[] args) {

Employee e[] = new Employee[4];

e[0] = new SalariedEmployee("魏威",10,5000);

e[1] = new HourlyEmployee("段利峰",8,80,242);

e[2] = new SalesEmployee("林龙",11,300000,0.1);

e[3] = new BasedPlusSalesEmployee("华溪",1,100000,0.15,1500);

for(int i=0;i

System.out.println(e[i].getName()+": "+e[i].getSalary(11));

}

//统计加班费

int result = 0;

// for(int i=0;i

// if(e[i] instanceof SalariedEmployee){

// SalariedEmployee s = (SalariedEmployee)e[i];

// result += s.getAddtionalSalary();

// }

// if(e[i] instanceof BasedPlusSalesEmployee){

// BasedPlusSalesEmployee b = (BasedPlusSalesEmployee)e[i]; // result += b.getAddtionalSalary();

// }

// }

for(int i=0;i

result += e[i].getAddtionalSalary();

}

System.out.println("加班费: "+result);

}

}

interface AddtionalSalary{

int getAddtionalSalary();

}

class Employee implements AddtionalSalary{

private String name;//员工姓名

private int birth;//员工生日月份

public Employee(String name,int birth){

https://www.doczj.com/doc/db10932781.html, = name;

this.birth = birth;

}

public int getSalary(int month){

int result = 0;

if(month==birth)

result = 100;

return result;

}

public String getName(){

return name;

}

public int getAddtionalSalary(){

return 0;

}

}

class SalariedEmployee extends Employee{

private int salaryPerMonth;

public SalariedEmployee(String name,int birth,int salaryPerMonth){

super(name,birth);

this.salaryPerMonth = salaryPerMonth;

}

public int getSalary(int month){

return this.salaryPerMonth + super.getSalary(month)+

this.getAddtionalSalary();

}

public int getAddtionalSalary(){

return 2000;

}

}

class HourlyEmployee extends Employee{

private int salaryPerHour;

private int hoursPerMonth;

public HourlyEmployee(String name,int birth,int salaryPerHour,int hoursPerMonth){

super(name,birth);

this.salaryPerHour = salaryPerHour;

this.hoursPerMonth = hoursPerMonth;

}

public int getSalary(int month){

int result = 0;

if(this.hoursPerMonth<=160){

result = hoursPerMonth*salaryPerHour;

}else{

result = 160*salaryPerHour +

(int)((hoursPerMonth-160)*1.5*salaryPerHour);

}

return result+super.getSalary(month);

}

}

class SalesEmployee extends Employee{

private int sales;

private double rate;

public SalesEmployee(String name,int birth,int sales,double rate){

super(name,birth);

this.sales = sales;

this.rate = rate;

}

public int getSalary(int month){

return (int)(sales*rate)+super.getSalary(month);

}

}

class BasedPlusSalesEmployee extends SalesEmployee{

private int basedSalary;

public BasedPlusSalesEmployee(String name,int birth,int sales,double rate,int basedSalary){

super(name,birth,sales,rate);

this.basedSalary = basedSalary;

}

public int getSalary(int month){

return this.basedSalary+super.getSalary(month) +

this.getAddtionalSalary();

}

public int getAddtionalSalary(){

return 1000;

}

}

java小试题

1. 关于Java语言的特征,描述正确的是 A. 支持跨平台(Windows,Linux,Unix等) B. GC(自动垃圾回收),提高了代码安全性 C. 支持类似C的指针运算操作 D. java语言是面向对象的语言 解答:ABD 范围:corejava 难度:3 2.下列表达式正确的是 A. byte b=128; B. boolean b=null; C. long a = 2147483648L; D. float f=0.9239; 解答:C 3.下列不属于java标识符的是 A.HelloWorld B._HelloWorld C. $HelloWorld D. HelloWorld3 E. 3HelloWorld 解答:E 4. 下列代码的运行结果是: public class SwitchTest { public static void main (String []args) { System.out.println (“value =” +switchIt(4)); } public static int switchIt(int x) { int j = 1; switch (x) { case 1: j++;

case 2: j++; case 3: j++; case 4: j++; case 5: j++; default:j++; } return j + x; } } A. Value =3 B. Value =4 C. Value =5 D. Value =6 E. Value =7 F. Value =8 解答:F 5. 以下程序的输出结果为: public class test { public static void main(String args[]) { int x=1,y=1,z=1; if (x--==1&&y++==1||z++==1) System.out.println("x="+x+",y="+y+",z="+z); } } A. x=0,y=2,z=1 B. x=1,y=2,z=1 C. x=0,y=1,z=1 D. x=0,y=2,z=2 解答:A #6. 下面的程序没有编译错误的是:

面向对象试题(标准答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

公司内部Javaio流笔试题

公司内部Javaio流笔试题

IO 框架 Key Point * File 类 * 流的分类 * 基本字节流 * 字节过滤流 * 基本字符流、桥转换 * 字符过滤流 * 对象序列化 练习 1. (File 类)以下关于File 类说法正确的是: A.一个File 对象代表了操作系统中的一个文件或者文件夹 B.能够使用File 对象创立和删除一个文件 C.能够使用File 对象创立和删除一个文件夹 D.当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除2. (File 类)有如下代码: public class TestFile{ public static void main(String args[]){ File file = new File(“chp13/corejava.txt”); } } 请选择一个正确答案: A. corejava.txt 文件在系统中被创立 B. 在windows 系统上运行出错,因为路径分隔符不正确 C. corejava.txt 文件在系统中没有被创立

D. 如果corejava.txt 文件已存在,则抛出一个异常 3. (File 类)将下列代码补充完整 class TestMyFile{ public static void main(String args[]) throws Exception{ File file; //创立一个File 对象表示当前目录下的“hello.txt”文件 //判断该文件是否存在 //如果该文件存在,则输出该文件的完整路径 } } 4. (流的分类)对于FileInputStream 来说,从方向上来分,它是_________流,从数据单 位上分,它是__________流,从功能上分,它是____________流。 5. (字节流, FileInputStream)FileInputStream 有三个重载的read 方法,其中 1) 无参的read 方法返回值为___类型,表示_________________ 2) int read(byte[] bs)方法返回值表示______________,参数表示 ________________ 3) int read(byte[] bs, int offset, int len) 方法返回值表示 _______________,参数分别表示 ___________________________。 6. (FileInputStream)下面关于FileInputStream 类型说法正确的是: A.创立FileInputStream 对象是为了读取硬盘上的文件 B.创立FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出一个异常 C.利用FileInputStream 对象能够创立文件 D.FileInputStream 对象读取文件时,只能读取文本文件。

COREJAVA第一阶段笔试题_答案(2)

选用的题目如下: 01.数组有没有length()这个方法? String有没有length()这个方法? 数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的 int num = str.getBytes().length - str.length(); 可以得到一个字符串当中有多少个汉字 02.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?为什么? Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法 (体现静态多态) Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛 方法重载的时候可以改变返回值的类型return type maybe different 因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同 也能判断出来调用的是哪个方法,因而不会出错 03.== 与equals 有何区别? == 是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同 或者说用于判断两个对象是否是同一个对象 equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型 通过覆盖equals从而给这个类型提供另外一种比较规则(因为java当中没有运算符重载) 很多人看到equals就认为是比较内容的方法其实不然在Object类当中equals方法当中也是采用==实现比较 04abstract class和interface有什么区别? 抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法), 抽象类依然是Object的子类类型 interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量 接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法 接口的概念没有父类换言之接口不是Object类型的子类类型 05.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口

CoreJava第一次考试——1

考试一 试题类型:不定项选择题 试题1指出下面语句编译错误的是() A. byte b=128; B. boolean flag=null; C. long a = 2147483648L; D. float f=0.9239; 试题2完成代码计算10的阶乘并输出,应该填入的代码是()… … long result = 1; for(int i = 2; i <= 10; i++) { < 填入代码 > } System.out.println("result= " + result); … … A. result = result * i; B. result = i*i; C. result = i*(i+1); D. reslut = i*(i-1); 试题3下列关于数组的声明错误的是()

A. int[] arry = new int[100]; B. int[3] arry = {1,2,3} C. int[] arry = new int[]{1,2,3} D. int[][] arry = new int[3][] 试题4语句System.out.println(1+2+"java"+3+4)输出的结果是()。 A. 3java34 B. 12java34 C. 3java7 D. 12java7 试题5下面程序的输出结果是() public static void main(String[] args) { int d = 325; int sum = 0; while (d > 0) { int n = d % 10; sum += n; d /= 10; } System.out.println(sum);

java集合-练习题解析

1. 填空 Collection 接口的特点是元素是___无序可重复______; List 接口的特点是元素__有__(有|无)顺序,_可以___(可以|不可以)重复; Set 接口的特点是元素__无___(有|无)顺序,____不可以__(可以|不可以)重复;Map 接口的特点是元素是__key、value映射______,其中__value__可以重复,_key___不可以重复。 2. (List)有如下代码 import java.util.*; public class TestList{ public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(1, “Learn”); list.add(1, “Java”); printList(list); } public static void printList(List list){ //1 for(int i = 0; i< list.size();i++){ System.out.println(list.get(i)); } for(Object o : list) { System.out.println(o); } Iterator itor = list.iterator(); while(itor.hasNext()){ System.out.println(itor.next()); } } } 要求: 1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容 2) 写出程序执行的结果Hello Java Learn World 3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别? 4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使 用上有什么区别?实现上有什么区别? 3. (List)写出下面程序的运行结果

CoreJava第三次内测试卷

《CoreJava第三次内测》 一、单选题(共33分,每题2分,共66分) 1.下列对Java中的继承描述错误的说法是()。 A.子类至少有一个基类 B.子类可作为另一个子类的基类 C.子类除了包含它直接定义的属性外,还包含其父类的私有属性 D.子类继承父类的方法访问权限保持不变 2.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行? ( ) A.不会执行 B.会执行,在return前执行 C.会执行,在return后执行 D.会执行,可能在return前执行,也可能在return后执行 3.构造方法是否可被重写和重载()。 A.不能重写,可以重载 B.可以重写,不能重载 C.不能重写,不能重载 D.可以重写,可以重载 4.给出一段程序,试判断哪个是正确的结果() public class rtExcept{ public static void throwit(){ System.out.print(“throwit”); throw new RuntimeException(); } public static void main(String [] aa){ try{ System.out.print(“hello “); throwit(); } catch(Exception re){ System.out.print(“caught ”); } finally{ System.out.print(“finally ”); } System.out.print(“after ”); } } A、hello throwit caught B、hello throwit caught finally after C、hello throwit RuntimeException after D、hello throwit caught finally after RuntimeException 5.给出一段程序,试判断哪个是正确的结果() public class myprogram{ public static void main (String args[]){ try{ System.out.print(“Hello world ”); } finally{ System.out.println(“Finally executing”); }}} A、无法编译,因为没有指定异常 B、无法编译,因为没有catch子句 C、Hello world D、Hello world Finally executing 6.对于catch子句的排列,下列哪种是正确的( ) A.父类在先,子类在后 B.子类在先,父类在后 C.有继承关系的异常不能在同一个try程序段内 D.一个try后只能放一个catch 7.Java中,泛型数据类型声明可能出现的符号是( ) A.R B.D C.T D.都可以 8.关于Java中异常的叙述正确的是:() A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的 9.所有的异常和错误皆继承哪一个类?() A.java.io.Exception B.https://www.doczj.com/doc/db10932781.html,ng. Exception C.https://www.doczj.com/doc/db10932781.html,ng. Throwable D.https://www.doczj.com/doc/db10932781.html,ng.Error 10.下列关于try-catch-finally语句的描述中,错误的是() A.try语句后面的程序段将给出处理异常的语句 B.catch()方法跟在try语句后面,它可以是一个或多个 C.catch()方法有一个参数,该参数是某种异常类的对象 D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用 11.给出下面的代码

《CoreJava》理论试题题库答案版

《CoreJava》理论试题题库答案版得分阅卷人 一、单选题(20题,共38分) 1、(2分)基本数据类型float的包装类是哪项,(C) A( Integer B( Double C( Float D( Character 2、(2分)使用下列哪个修饰符定义的类不能被继承( C ) A. static B. abstract C. final D. Native 3、(1分)下列类的定义,错误的是( D ) A. public class test extends Object{……} 学院班级姓名 B. final class operators{……} 密封线内不要答题 C. class Point{……} D. void class Point{……} 4、(2分)静态内部类是指使用(B)来修饰的内部类 A(final B.static C.public D.protected 5、(2分)匿名内部类的特点下面错误的是(b) A、匿名内部类没有构造方法 B、匿名内部类是静态的 C、它主要用于继承其他类或实现接口 D、它是一个特殊的局部内部类 6、(2分)下列哪个类不是java基本数据类型的封装类,( C ) A. Integer; B. Byte; C. String; D. Character; 7、(1分)基本数据类型char的包装类是哪项,( D ) A int

B char C String D Character 8、(2分)阅读以下程序代码,作出分析:public class Test { public static void main(String[] args) { boolean b = true; b=new Apple().equals(new Apple()); System.out.println(b); }}class 1 / 49 Apple{}该程序的输出结果是:(A) A(false B(true C. 不确定结果 D. 编译错误 9、(2分)List接口的特点是哪项,(C) A(不允许重复元素,元素无顺序 B(不允许重复元素,元素无顺序 c(允许重复元素,元素有顺序 D(允许重复元素,元素无顺序 10、(2分)关于HashMap和HashTable的说法错误的是( D ): A. HashMap和HashTable都是Map接口的实现类 B. HashTable是线性安全的 C. HashMap是线性不安全的 D(HashTable要比HashMap的性能高一点 11、(2分)当程序调用一个null对象的方法或属性时,这将引起(A )异常

java第一阶段测试题(答案)分析

JA V A基础测试题-CORE JA V A部分1.在main(String[] args)方法内是否可以调用一个非静态方法? 答:main方法是静态方法,不能直接去访问非静态成员(成员可以是成员变量或是成员方法)2.请简述java程序运行的过程 答: .java程序----编译---→.class----运行---→显示结果 3.java中的控制台输出内容换行方式有几种? 答:第一种:System.out.println(); 第二种:System.out.print(“\n”); 4.java中的注释有哪几种?分别用来注释什么? 答:有三种注释分别为: 单行注释: //常用来注释变量 多行注释:/* *用来注释变量,方法,类 */ 文档注释:/** *用来注释变量,方法,类 */ 5.请简述java 中标识符命名规则. 答:必须是字母,数字,下划线,$组成 不能以数字开头;不能是java中的保留字,最好见名知义

6.请举例说明Scanner这个类的常用方法 答:next() nextLine() nextInt() nextFloat() nextDouble() hasNextInt() 7.java中的数据类型分为哪两类? 答:数据类型分八个基础数据类型(byte,short,int ,long ,float,double,char,boolean) 和引用数据类型(包括类,接口和数组) 8.java中全局变量和局部变量的区别? 答:位置的区别:java中全局变量就是类中的属性,而局部变量是方法中或代码块中定义的变量; 初始值不一样:全局变量不赋值,系统会给默认值,也不会报错,而局变部量必须要赋初始值; 作用域不一样:全局变量在整个类所有方法中可以访问,局部变量只能在定义它的那一对括号中才可以访问 9.同一个文件里是否可以有两个public类? 答:不可能,一个java文件中只能有一个类是public的,而必须是public的类才可以作为java文件的类名. 10.方法名是否可以与构造器的名字相同? 答:可以。 11.初始化了一个没有run()方法的线程类,是否会出错? 答:不会出错 第一种方法:直接继承Thread类。 public class Test{ public static void main(String[] args){

杰普-Core-Java2014测试题-附最新答案

班级::日期: Core Java试题 选择填空题:全部为多选题,只有全部正确才能得分。 1.编译java程序的命令是___B_____;运行java程序的命令是____A____;产生java文挡的命令是 _D_______;查询java类型是否是serializable类型的命令是___C_____;产生java安全策略文件的命令是___E_____;产生类型归档文件.jar的命令是__F______。 A. java B. javac C. serialver D.javadoc E.policytool F.jar 2.在一个java原文件中,import, class, package语句的顺序是_F_______。 A.import class package B.class import package C.package class import D.import package class E.class package import F.package import class 3.下面叙述正确的有_______CDEF_____________。 A.在一个java原文件中只能定义一个class B.在一个java原文件中只能定义一个interface C.在一个java原文件中可以定义多个class D.在一个java原文件中可以定义多个interface E.在一个java原文件中可以定义多个class和interface F.在一个java原文件中只能定义一个public class 4.java程序中程序运行入口方法main的签名正确的有____AB____。 A.public static void main(String args[]) B.static public void main(String[] args) C.public void static main(String[] args) D.public void main(String args[]) 5.java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从____A____开始。 A. 0 B. 1 C.-1 6.以下属于正确的java注释有____ACD____。 A. //This is comment B. /*This is comment C. /**This is comment*/ D. /*This is comment*/ 7.以下能作为class, interface, method或variable有效标识符的有______ADF__________。 A.For B.boolean C.23age D. _id E.my name F. $this_is_a_long_variable_name 8.以下不是java关键字的有__D______。 A. super C.this D.NULL E.true 9.以下能作为char类型的字面值的有__BD______。 A. “e” B.’f’ C. ‘\u12’ D.’\u0012’ 10. byte变量的取值围是____B____。 A. 0 - 65535 B.-128 – 127 C.-256 – 255 D.0 - 32767 11.以下正确的有_____AC___。

core_java面试题

JA V A面试题-COREJA V A部分 1.在main(String[] args)方法内是否可以调用一个非静态方法? 答案:不能 2.同一个文件里是否可以有两个public类? 答案:不能 3.方法名是否可以与构造器的名字相同? 答案:可以。 public class Test { public Test(String iceboy) { System.out.println(iceboy); } public void Test(String iceboy) { System.out.println(iceboy); } public static void main(String[] args) { Test a = new Test("abc");//输出“abc” a.Test("iceboy");//输出“iceboy” } } 4. 初始化了一个没有run()方法的线程类,是否会出错? 答案:不会。 第一种方法:直接继承Thread类。 public class Test { public static void main(String[] args) { ThreadClass t = new ThreadClass(); t.start(); System.out.println("end");//输出“end” } } class ThreadClass extends Thread //Thread类已经实现了空的run()方法。 { } 第二种方法:实现Runnable接口 public class Test { public static void main(String[] args) {

杰普-Core-Java2014测试题-附最新答案

班级:姓名:日期: Core Java试题 选择填空题:全部为多选题,只有全部正确才能得分。 1.编译java程序的命令是___B_____;运行java程序的命令是____A____;产生java文挡的命令是_D_______; 查询java类型是否是serializable类型的命令是___C_____;产生java安全策略文件的命令是___E_____; 产生类型归档文件.jar的命令是__F______。 A. java B. javac C. serialver D.javadoc E.policytool F.jar 2.在一个java原文件中,import, class, package语句的顺序是_F_______。 A.import class package B.class import package C.package class import D.import package class E.class package import F.package import class 3.下面叙述正确的有_______CDEF_____________。 A.在一个java原文件中只能定义一个class B.在一个java原文件中只能定义一个interface C.在一个java原文件中可以定义多个class D.在一个java原文件中可以定义多个interface E.在一个java原文件中可以定义多个class和interface F.在一个java原文件中只能定义一个public class 4.java程序中程序运行入口方法main的签名正确的有____AB____。 A.public static void main(String args[]) B.static public void main(String[] args) C.public void static main(String[] args) D.public void main(String args[]) 5.java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从____A____开始。 A. 0 B. 1 C.-1 6.以下属于正确的java注释有____ACD____。 A. //This is comment B. /*This is comment C. /**This is comment*/ D. /*This is comment*/ 7.以下能作为class, interface, method或variable有效标识符的有______ADF__________。 A.For B.boolean C.23age D. _id E.my name F. $this_is_a_long_variable_name 8.以下不是java关键字的有__D______。 A. super C.this D.NULL E.true 9.以下能作为char类型的字面值的有__BD______。 A. “e” B.’f’ C. ‘\u12’ D.’\u0012’ 10.byte变量的取值范围是____B____。 A. 0 - 65535 B.-128 – 127 C.-256 – 255 D.0 - 32767 11.以下正确的有_____AC___。 A. int i = 32; B.float f = 45.32; C. double d=3.2;

coreJavaBasic考试

CoreJavaBasic考试试卷 考试时间:一个小时 考题总分:100分制 一:选择题,30题共60分(每小题2分少选多选都不给分) 1.What will be the output when you compile and execute the following program. public class Base{ private void test() { System.out.println(6 + 6 + "(Result)"); } static public void main(String[] a) { new Base().test(); } } Select most appropriate answer. A 66(Result) B 12(Result) C Runtime Error.Incompatible type for +. Can't convert an int to a string. D Compilation Error.Incompatible type for +. Can't add a string to an int. 2.执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的(): A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空 3.编译运行以下程序后,关于输出结果的说明正确的是(): public class Conditional{ public static void main(String args[ ]){ int x=4; System.out.println(“value is “+ ((x>4) ? 99.9 :9)); } } A、输出结果为:value is 99.99 B、输出结果为:value is 9 C、输出结果为:value is 9.0

Java期末试卷以及答案

一、选择题 1. 下列选项中,()可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。 A. request.getParameter(name) B. request.getParameter(”name”) C. request.getParameterValues(name) D. request.getParameterValues(“name”) 2. 使用response对象进行重定向时,使用的方法是()。 A. getAttribute B. setContentType C. sendRedirect D. setAttribute 3. session对象中用于设定指定名字的属性值,并且把它存储在session对象中的方法是()。 A. setAttribute B. getAttributeNames C. getValue D. getAttribute 4. 在application对象中用()方法可以获得application对象中的所有变量名。 A. getServerInfo B. nextElements() C. removeAttribute D. getRealPath 5. 要使用JSTL的核心标签库,需要在JSP源文件的首部加入如下声明语句() A. <%@ taglib prefix="c" uri="https://www.doczj.com/doc/db10932781.html,/jsp/jstl/core" %> B. <%@ taglib prefix=”x” uri=”https://www.doczj.com/doc/db10932781.html,/jsp/jstl/xml”%> C. <%@ taglib prefix=”fmt” uri=”https://www.doczj.com/doc/db10932781.html,/jsp/jstl/fmt”%> D. <%@ taglib prefix=”sql” uri=”https://www.doczj.com/doc/db10932781.html,/jsp/jstl/sql”%> 6. 以下()标签用于实现循环功能,类似与Java语句中的for循环。 A. B. C. D. 7.在编写Servlet时,需要继承 HttpServlet 类,在Servlet中声明doGet()和doPost()需要request 和 response 类型的两个参数。 8.jsp主要内置对象有:application 、exception、pageContext、request 、response 、__session__、out、config、page。 9.下列关于HTTP协议说法正确的是。ABCDE A)HTTP是一种请求/响应式的协议 B)HTTP请求消息中Accept表示浏览器可接受的MIME类型 C)HTTP请求消息中Accept-Encoding表示浏览器能够进行解码的数据编码方式 D)HTTP请求消息中Accept-Language表示浏览器所希望的语言种类 E)HTTP请求消息中Host表示初始URL中的主机和端口。

corejava月考1.2

一、单选(50小题共100.0分) 1. 执行下列语句: int num=~3+2; 变量num的值为()。 -3 A. 3 B. -2 C. -1 D. 正确答案:C 2. 执行下列语句: int a = 0x9af700; //1001 1010 1111 0111 0000 0000 a <<= 2; 变量a的值为:()。 0x26bdc00 A. 0xc6bdc00 B. 0x3fa0000 C. 0x7e02ffff D. 正确答案:A 3. 下列数组声明语句中,错误的是:()。 int[] arr = new int[8]; A. int[] arr = new int[8]{}; B. int[] arr = {}; C.

int[] arr = new int[]{}; D. 正确答案:B 4. 下列代码的输出结果是()。 boolean b=true?false:true==true?false:true; System.out.println(b); true A. false B. null C. 空字符串 D. 正确答案:B 5. 下列代码的输出结果是()。 int j=0; for(int i=0;i<100;i++){ j=j++; } System.out.println(j); A. 99 B. 100 C. 101 D. 正确答案:A 6. 下列不属于Java运算符的是()。 != A.

<> B. >> C. << D. 正确答案:B 7. 下列属于不合法Java标识符的是()。 _avaj A. 5save B. Avaj C. $80 D. 正确答案:B 8. 下列语句创建对象的总个数是:()。 String s=”a”+”b”+”c”+”d”+”e”; 1 A. 2 B. 3 C. 4 D. 正确答案:A 9. 运行下列程序: String str = "**oracle***oracle*****oracle***"; String str1 = "oracle"; int index = 0; while ((index = str.indexOf(str1, index)) != -1) { System.out.print(index+””); index += str1.length(); }

面向对象试题(答案)

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a);

} } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构 造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test() ”); } }

public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.C hild.test() Child.test() B.C hild.test() Base.test() C.B ase.test() Child.test() D.Base.test() Base.test()

java开发常见基础面试题(题库全)

Java面试题基础面试题库集 面试题集共分为以下十部分: 一、Core Java:1 —95 题1 —24 页 基础及语法: 1 —61 题1 —13 页 异常:62 —69 题13 —15 页 集合:70 —80 题15 —18 页 线程:81 —90 题18 —21 页 IO & Socket:91 —95 题21 —24 页 二、OOAD & UML:96 —101 题24 —25 页 三、XML:102 —105 题26 —29 页 四、SQL:106 —109 题29 —31 页 五、JDBC & Hibernate:110 —121 题31 —35 页 六、Web:122 —161 题35 —44 页 七、EJB & Spring:162 —179 题44 —47 页 八、数据结构& 算法& 计算机基础:180 —187 题47 —51 页 九、C++:188 —201 题51 —55 页 十、Weblogic 及其它(附加部分) 1 ——13 题55 —57 页 一、CoreJava 部分:(共95 题:基础91 道,中等难度4 道) 基础及语法部分:(共61 题:基础60 道、中等难度1 道) 1、面向对象的特征有哪些方面? 【基础】 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4)多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态

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