当前位置:文档之家› 经典Java编程90例及答案

经典Java编程90例及答案

经典Java编程90例及答案
经典Java编程90例及答案

非常经典的JAVA编程全集

【程序1】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

public class lianxi01 {

public static void main(String[] args) {

System.out.println("第1个月的兔子对数: 1");

System.out.println("第2个月的兔子对数: 1");

int f1 = 1, f2 = 1, f, M=24;

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

f = f2;

f2 = f1 + f2;

f1 = f;

System.out.println("第" + i +"个月的兔子对数: "+f2);

}

}

}

【程序2】

题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {

public static void main(String[] args) {

int count = 0;

for(int i=101; i<200; i+=2) {

boolean b = false;

for(int j=2; j<=Math.sqrt(i); j++)

{

if(i % j == 0) { b = false; break; }

else { b = true; }

}

if(b == true) {count ++;System.out.println(i );}

}

System.out.println( "素数个数是: " + count);

}

}

【程序3】

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5

的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。public class lianxi03 {

public static void main(String[] args) {

int b1, b2, b3;

for(int m=101; m<1000; m++) {

b3 = m / 100;

b2 = m % 100 / 10;

b1 = m % 10;

if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {

System.out.println(m+"是一个水仙花数"); }

}

}

}

【程序4】

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

import java.util.*;

public class lianxi04{

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

System.out.print( "请键入一个正整数: ");

int n = s.nextInt();

int k=2;

System.out.print(n + "=" );

while(k <= n) {

if(k == n) {System.out.println(n);break;}

else if( n % k == 0) {System.out.print(k + "*");n = n / k; }

else k++;

}

}

}

【程序5】

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

程序分析:(a>b)?a:b这是条件运算符的基本例子。

import java.util.*;

public class lianxi05 {

public static void main(String[] args) {

int x;

char grade;

Scanner s = new Scanner(System.in);

System.out.print( "请输入一个成绩: ");

x = s.nextInt();

grade = x >= 90 ? 'A'

: x >= 60 ? 'B'

:'C';

System.out.println("等级为:"+grade);

}

}

【程序6】

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

程序分析:利用辗除法。

【程序7】

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。import java.util.*;

public class lianxi06 {

public static void main(String[] args) {

int a ,b,m;

Scanner s = new Scanner(System.in);

System.out.print( "键入一个整数:");

a = s.nextInt();

System.out.print( "再键入一个整数:");

b = s.nextInt();

deff cd = new deff();

m = cd.deff(a,b);

int n = a * b / m;

System.out.println("最大公约数: " + m);

System.out.println("最小公倍数: " + n);

}

}

class deff{

public int deff(int x, int y) {

int t;

if(x < y) {

t = x;

x = y;

y = t;

}

while(y != 0) {

if(x == y) return x;

else {

int k = x % y;

x = y;

y = k;

}

}

return x;

}

}

程序分析:利用while语句,条件为输入的字符不为'\n'.

【程序7】

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。import java.util.*;

public class lianxi07 {

public static void main(String[] args) {

int digital = 0;

int character = 0;

int other = 0;

int blank = 0;

char[] ch = null;

Scanner sc = new Scanner(System.in);

String s = sc.nextLine();

ch = s.toCharArray();

for(int i=0; i

if(ch >= '0' && ch <= '9') {

digital ++;

} else if((ch >= 'a' && ch <= 'z') || ch > 'A' && ch <= 'Z') {

character ++;

} else if(ch == ' ') {

blank ++;

} else {

other ++;

}

}

System.out.println("数字个数: " + digital);

System.out.println("英文字母个数: " + character);

System.out.println("空格个数: " + blank);

System.out.println("其他字符个数:" + other );

}

}

【程序8】

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如

2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。程序分析:关键是计算出每一项的值。

import java.util.*;

public class lianxi08 {

public static void main(String[] args) {

long a , b = 0, sum = 0;

Scanner s = new Scanner(System.in);

System.out.print("输入数字a的值:");

a = s.nextInt();

System.out.print("输入相加的项数:");

int n = s.nextInt();

int i = 0;

while(i < n) {

b = b + a;

sum = sum + b;

a = a * 10;

++ i;

}

System.out.println(sum);

}

}

【程序9】

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如6=1+2+3.编程找出1000以内的所有完数。

public class lianxi09 {

public static void main(String[] args) {

System.out.println("1到1000的完数有:");

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

int t = 0;

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

if(i % j == 0) {

t = t + j;

}

}

if(t == i) {

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

}

}

}

【程序10】

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

public class lianxi10 {

public static void main(String[] args) {

double h = 100,s = 100;

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

s = s + h;

h = h / 2;

}

System.out.println("经过路程:" + s);

System.out.println("反弹高度:" + h / 2);

}

}

【程序11】

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

public class lianxi11 {

public static void main(String[] args) {

int count = 0;

for(int x=1; x<5; x++) {

for(int y=1; y<5; y++) {

for(int z=1; z<5; z++) {

if(x != y && y != z && x != z) {

count ++;

System.out.println(x*100 + y*10 + z );

}

}

}

}

System.out.println("共有" + count + "个三位数");

}

}

【程序12】

题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可

提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。import java.util.*;

public class lianxi12 {

public static void main(String[] args) {

double x = 0,y = 0;

System.out.print("输入当月利润(万):");

Scanner s = new Scanner(System.in);

x = s.nextInt();

if(x > 0 && x <= 10) {

y = x * 0.1;

} else if(x > 10 && x <= 20) {

y = 10 * 0.1 + (x - 10) * 0.075;

} else if(x > 20 && x <= 40) {

y = 10 * 0.1 + 10 * 0.075 + (x - 20) * 0.05;

} else if(x > 40 && x <= 60) {

y = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (x - 40) * 0.03;

} else if(x > 60 && x <= 100) {

y = 20 * 0.175 + 20 * 0.05 + 20 * 0.03 + (x - 60) * 0.015;

} else if(x > 100) {

y = 20 * 0.175 + 40 * 0.08 + 40 * 0.015 + (x - 100) * 0.01;

}

System.out.println("应该提取的奖金是" + y + "万");

}

}

【程序13】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

public class lianxi13 {

public static void main(String[] args) {

for(int x =1; x<100000; x++) {

if(Math.sqrt(x+100) % 1 == 0) {

if(Math.sqrt(x+268) % 1 == 0) {

System.out.println(x + "加100是一个完全平方数,再加168又是一个完全平方数");

}

}

}

}

}

【程序14】

题目:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

import java.util.*;

public class lianxi14 {

public static void main(String[] args) {

int year, month, day;

int days = 0;

int d = 0;

int e;

input fymd = new input();

do {

e = 0;

System.out.print("输入年:");

year =fymd.input();

System.out.print("输入月:");

month = fymd.input();

System.out.print("输入天:");

day = fymd.input();

if (year < 0 || month < 0 || month > 12 || day < 0 || day > 31) {

System.out.println("输入错误,请重新输入!");

e=1 ;

}

}while( e==1);

for (int i=1; i

switch (i) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days = 31;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

break;

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

days = 29;

} else {

days = 28;

}

break;

}

d += days;

}

System.out.println(year + "-" + month + "-" + day + "是这年的第" + (d+day) + "天。");

}

}

class input{

public int input() {

int value = 0;

Scanner s = new Scanner(System.in);

value = s.nextInt();

return value;

}

}

【程序15】

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y 则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

import java.util.*;

public class lianxi15 {

public static void main(String[] args) {

input fnc = new input();

int x=0, y=0, z=0;

System.out.print("输入第一个数字:");

x = fnc.input();

System.out.print("输入第二个数字:");

y = fnc.input();

System.out.print("输入第三个数字:");

z = fnc.input();

if(x > y) {

int t = x;

x = y;

y = t;

}

if(x > z) {

x = z;

z = t;

}

if(y > z) {

int t = y;

y = z;

z = t;

}

System.out.println( "三个数字由小到大排列为:"+x + " " + y + " " + z);

}

}

class input{

public int input() {

int value = 0;

Scanner s = new Scanner(System.in);

value = s.nextInt();

return value;

}

}

【程序16】

题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

public class lianxi16 {

public static void main(String[] args) {

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

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

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

if(j*i<10){System.out.print(" ");}

}

System.out.println();

}

}

}

【程序17】

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

程序分析:采取逆向思维的方法,从后往前推断。

public class lianxi17 {

public static void main(String[] args) {

int x = 1;

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

x = (x+1)*2;

}

System.out.println("猴子第一天摘了" + x + " 个桃子");

}

}

【程序18】

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c 说他不和x,z比,请编程序找出三队赛手的名单。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi18 {

static char[] m = { 'a', 'b', 'c' };

static char[] n = { 'x', 'y', 'z' };

public static void main(String[] args) {

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

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

if (m[i] == 'a' && n[j] == 'x') {

continue;

} else if (m[i] == 'a' && n[j] == 'y') {

continue;

} else if ((m[i] == 'c' && n[j] == 'x')

|| (m[i] == 'c' && n[j] == 'z')) {

continue;

} else if ((m[i] == 'b' && n[j] == 'z')

|| (m[i] == 'b' && n[j] == 'y')) {

continue;

} else

System.out.println(m[i] + " vs " + n[j]);

}

}

}

}

【程序19】

题目:打印出如下图案(菱形)

*

***

******

********

******

***

*

程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。

public class lianxi19 {

public static void main(String[] args) {

int H = 7, W = 7;//高和宽必须是相等的奇数

for(int i=0; i<(H+1) / 2; i++) {

for(int j=0; j

System.out.print(" ");

}

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

System.out.print('*');

}

System.out.println();

}

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

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

System.out.print(" ");

}

for(int k=1; k<=W-2*i; k++) {

System.out.print('*');

}

System.out.println();

}

}

}

【程序20】

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

程序分析:请抓住分子与分母的变化规律。

public class lianxi20 {

public static void main(String[] args) {

int x = 2, y = 1, t;

double sum = 0;

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

sum = sum + (double)x / y;

t = y;

y = x;

x = y + t;

}

System.out.println("前20项相加之和是:" + sum);

}

}

【程序21】

题目:求1+2!+3!+...+20!的和

程序分析:此程序只是把累加变成了累乘。

public class lianxi21 {

public static void main(String[] args) {

long sum = 0;

long fac = 1;

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

fac = fac * i;

sum += fac;

}

System.out.println(sum);

}

}

【程序22】

题目:利用递归方法求5!。

程序分析:递归公式:fn=fn_1*4!

public class lianxi22 {

public static void main(String[] args) {

int n = 5;

rec fr = new rec();

System.out.println(n+"! = "+fr.rec(n));

}

}

class rec{

public long rec(int n) {

long value = 0 ;

if(n ==1 ) {

value = 1;

} else {

value = n * rec(n-1);

}

return value;

}

}

【程序23】

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

public class lianxi23 {

public static void main(String[] args) {

int age = 10;

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

age =age+2;

}

System.out.println(age);

}

}

【程序24】

题目:给一个不多于5位的正整数。

要求:一、求它是几位数,二、逆序打印出各位数字。

import java.util.*;

public class lianxi24 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

System.out.print("请输入一个正整数:");

long a = s.nextLong();

String ss = Long.toString(a);

char[] ch = ss.toCharArray();

int j=ch.length;

System.out.println(a + "是一个"+ j +"位数。");

System.out.print("按逆序输出是:");

for(int i=j-1; i>=0; i--) {

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

}

}

}

【程序25】

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

import java.util.*;

public class lianxi25 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

int a;

do{

System.out.print("请输入一个5位正整数:");

a = s.nextInt();

}while(a<10000||a>99999);

String ss =String.valueOf(a);

char[] ch = ss.toCharArray();

if(ch[0]==ch[4]&&ch[1]==ch[3]){

System.out.println("这是一个回文数");}

else {System.out.println("这不是一个回文数");}

}

}

//这个更好,不限位数

import java.util.*;

public class lianxi25a {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

boolean is =true;

System.out.print("请输入一个正整数:");

long a = s.nextLong();

String ss = Long.toString(a);

char[] ch = ss.toCharArray();

int j=ch.length;

for(int i=0; i

if(ch[i]!=ch[j-i-1]){is=false;}

}

if(is==true){System.out.println("这是一个回文数");}

else {System.out.println("这不是一个回文数");}

}

}

【程序26】

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if 语句判断第二个字母。

import java.util.*;

public class lianxi26 {

public static void main(String[] args) {

getChar tw = new getChar();

System.out.println("请输入星期的第一个大写字母:");

char ch = tw.getChar();

switch(ch) {

case 'M':

System.out.println("Monday");

break;

case 'W':

System.out.println("Wednesday");

break;

case 'F':

System.out.println("Friday");

break;

case 'T': {

System.out.println("请输入星期的第二个字母:");

char ch2 = tw.getChar();

if(ch2 == 'U') {System.out.println("Tuesday"); }

else if(ch2 == 'H') {System.out.println("Thursday"); }

else {System.out.println("无此写法!");

}

};

break;

case 'S': {

System.out.println("请输入星期的第二个字母:");

char ch2 = tw.getChar();

if(ch2 == 'U') {System.out.println("Sunday"); }

else if(ch2 == 'A') {System.out.println("Saturday"); }

else {System.out.println("无此写法!");

}

};

break;

default:System.out.println("无此写法!");

}

}

}

class getChar{

public char getChar() {

Scanner s = new Scanner(System.in);

String str = s.nextLine();

char ch = str.charAt(0);

if(ch<'A' || ch>'Z') {

System.out.println("输入错误,请重新输入");

ch=getChar();

}

return ch;

}

}

【程序27】

题目:求100之内的素数

素数:指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数

public class lianxi27 {

public static void main(String[] args) {

boolean b =false;

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

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

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

for(int j=2; j<=Math.sqrt(i); j++) {

if(i % j == 0) {b = false;

break;

} else{b = true;}

}

if(b == true) {System.out.print(i + " ");}

}

}

}

//该程序使用除1位素数得2位方法,运行效率高通用性差。

public class lianxi27a {

public static void main(String[] args) {

int[] a = new int[]{2, 3, 5, 7};

for(int j=0; j<4; j++)System.out.print(a[j] + " ");

boolean b =false;

for(int i=11; i<100; i+=2) {

for(int j=0; j<4; j++) {

if(i % a[j] == 0) {b = false;

break;

} else{b = true;}

}

if(b == true) {System.out.print(i + " ");}

}

}

}

【程序28】

题目:对10个数进行排序

程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。import java.util.*;

public class lianxi28 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

int[] a = new int[10];

System.out.println("请输入10个整数:");

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

a[i] = s.nextInt();

}

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

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

if(a[i] > a[j]) {

int t = a[i];

a[i] = a[j];

a[j] = t;

}

}

}

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

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

}

}

}

【程序29】

题目:求一个3*3矩阵对角线元素之和

程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。import java.util.*;

public class lianxi29 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

int[][] a = new int[3][3];

System.out.println("请输入9个整数:");

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

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

a[i][j] = s.nextInt();

}

}

System.out.println("输入的3 * 3 矩阵是:");

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

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

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

}

System.out.println();

}

int sum = 0;

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

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

if(i == j) {

sum += a[i][j];

}

}

}

System.out.println("对角线之和是:" + sum);

}

}

【程序30】

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

//此程序不好,没有使用折半查找插入

import java.util.*;

public class lianxi30 {

public static void main(String[] args) {

int[] a = new int[]{1, 2, 6, 14, 25, 36, 37,55};

int[] b = new int[a.length+1];

int t1 =0, t2 = 0;

int i =0;

Scanner s= new Scanner(System.in);

System.out.print("请输入一个整数:");

int num = s.nextInt();

if(num >= a[a.length-1]) {

b[b.length-1] = num;

for(i=0; i

b[i] = a[i];

}

} else {

for(i=0; i

if(num >= a[i]) {

b[i] = a[i];

} else {

b[i] = num;

break;

}

}

for(int j=i+1; j

b[j] = a[j-1];

}

}

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

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

}

}

}

【程序31】

题目:将一个数组逆序输出。

程序分析:用第一个与最后一个交换。

import java.util.*;

public class lianxi31 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

int a[] = new int[20];

System.out.println("请输入多个正整数(输入-1表示结束):");

int i=0,j;

do{

a[i]=s.nextInt();

i++;

}while (a[i-1]!=-1);

System.out.println("你输入的数组为:");

for( j=0; j

System.out.print(a[j]+" ");

}

System.out.println("\n数组逆序输出为:");

for( j=i-2; j>=0; j=j-1) {

System.out.print(a[j]+" ");

}

}

}

【程序32】

题目:取一个整数a从右端开始的4~7位。

程序分析:可以这样考虑:

(1)先使a右移4位

(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)

(3)将上面二者进行&运算

import java.util.*;

public class lianxi32 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

System.out.print("请输入一个7位以上的正整数:");

long a = s.nextLong();

String ss = Long.toString(a);

char[] ch = ss.toCharArray();

int j=ch.length;

if (j<7){System.out.println("输入错误!");}

else {

System.out.println("截取从右端开始的4~7位是:"+ch[j-7]+ch[j-6]+ch[j-5]+ch[j-4]);

}

}

}

java第三章课后习题解答

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? [解答]:Java程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。 Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。# 【2】如何定义方法?在面向对象程序设计中方法有什么作用? [解答]:方法的定义由两部分组成:方法声明和方法体。方法声明的基本格式如下: 返回类型方法名(形式参数) { … //方法体内容 } 方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。 在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) { studentNo=no; studentName=name; return no; } [解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 以上的代码段出错于:①构造方法Student()前不能加void ②不能用return语句 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 [解答]:程序代码段如下: class student{ private String id; private String name; private String sex; private int age;

《JAVA WEB开发实战经典》总结

《Java Web开发实战经典》期末总结 第一部分Web开发前奏 第一章Java Web开发简介 通过本章的的学习,使我了解了web的发展过程。 第二章HTML、Javascript简介 通过本章的的学习,使我了解了JavaScript的基本语法,主要事件,主要对象的作用。可以使用JavaScript完成表单的交互程序开发。 第三章XML简介 通过本章的的学习,使我了解了XML语言的基础语法,还可以清楚区分HTML和XML。并掌握了java中DOM和SAX解析XML文件的操作。学习了DOM解析XML文件的操作和DOM4J 解析XML文件的操作。使用XML可以进行数据存储结构的规范化。 第四章Tomcat服务器的安装及配置 通过本章的的学习,使我了解了Tomcat服务器的主要作用和Tomcat服务器的安装及配置。知道了Tomcat安装目录下主要目录的作用。理解JSP页面的执行流程,和编写第一个交互式程序。 第二部分Web基础开发 第五章JSP基础语法 通过本章的的学习,使我了解了Jsp中注释语句的使用和Jsp中Scriptlet的使用及使用的区别,掌握了page指令的作用和两种包含语句及两种包含语句的区别,懂得了跳转指令的操作。基本可以使用Jsp基础语法结合JDBC完成登录程序的开发。 第六章JSP内置对象 通过本章的的学习,使我了解了Jsp中的9个内置对象及对应的操作接口,掌握了jsp 中的4种属性范围及属性操作,掌握了request,response,session,application,pagecontext这些常用内置对象的使用。 第七章JavaBean 通过本章的的学习,使我了解了JavaBean的基本定义格式和web目录的标准结构,掌握了jsp中对于javabean支持的3种标签,即,.可以使用javabean进行参数的自动赋值操作。 第八章文件上传 通过本章的的学习,使我了解了文件上传操作的作用和smartupload上传组件的使用,理解了fileupload上传组件的使用。

JAVA WEB开发实战经典视频列表

Java Web开发实战经典视频列表 1、课程讲解部分 No.部分章节标题对应章节时间 01 第一 部分0101_第01章:WEB开发简介010101_WEB开发简介第1章 02 0102_第02章:HTML、JavaScript简介010201_HTML简介 2.1~2.230分44秒 03010202_JavaScript简介 2.3.124分07秒04010203_事件处理 2.3.228分20秒05010204_window对象 2.3.322分19秒 06 0103_第03章:XML简介010301_认识XML 3.121分54秒 07010302_XML解析——DOM 3.2.129分36秒08010303_XML解析——SAX 3.2.219分33秒09010304_XML解析——JDOM 3.2.322分48秒10010305_XML解析——DOM4J 3.2.418分47秒11010306_使用JavaScript操作DOM 3.323分57秒120104_第04章:Tomcat服务器的安装及配置010401_Tomcat服务器的安装及配置第4章1小时4分46秒13 第二部分0205_第05章:JSP基础语法 020501_注释及Scriptlet 5.1~5.335分06秒 14020502_page指令 5.441分55秒15020503_包含指令 5.526分28秒16020504_跳转指令 5.607分37秒17020505_实例操作:用户登陆程序实现(JSP+JDBC实现) 5.720分27秒 18 0206_第06章:JSP内置对象020601_内置对象概览 6.106分46秒 19020602_四种属性范围 6.230分10秒

Java开发领域的大牛有哪些

Java开发领域的大牛有哪些 本篇文章小编和大家分享一下Java开发领域的大牛有哪些,对Java开发感兴趣或者是对Java开发大牛感兴趣的小伙伴就随小编一起来了解一下吧。 1、James Gosling 在他12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是:"The Algebraic Manipulation of Constraints"。毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。1994年底,James Gosling在硅谷召开的“技术、教育和设计大会”上展示Java程式。2000年,Java成为世界上最流行的电脑语言。 2009年四月,Sun被甲骨文公司并购。高斯林于2010年四月时宣布从甲骨文公司离职。 2011年3月29日,高斯林在个人博客上宣布将加入Google[3]。 2011年8月30日,仅仅加入Google数月之后的高斯林就在个人博客上宣布离开Google,加盟一家从事海洋机器人研究的创业公司Liquid Robotics[1],担任首席软件架构师。 在2011年5月建立的Scala公司Typesafe Inc.,高斯林被聘请为公司顾问。 2、Joshua Bloch ——Collections 框架 早在1996年,适逢Java刚刚崭露头角。先是1月份发布JDK1.0,然后是5月底在旧金山召开首届JavaOne大会,年末又是JDK1.1紧跟其后。正是在Java 技术如火如荼、大展拳脚的背景之下,JoshuaBloch来到了Sun。2004 年7月初,就在J2SE5.0发布在即,Jusha Bloch刚刚荣获Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开Sun而去了正值发展态势迅猛的Google,成为了Google的Java首席架构师。 在Bloch来到Sun之后,很快他被从安全组调入核心平台组,从事底层API 设计。至此以后,每逢JDK的重大版本发布,总能在其中见到Joshua的“妙笔”。JDK1.1中的java.math、1.4中的assertions,还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Framework还获得了当年的

JAVA编程不得不看的几本经典书籍

为了帮助对java编程感兴趣的同学更好、更快的提高编程技术,武汉北大青鸟光谷校区专业老师在此推荐几本学习编程非常有用的书籍,以供大家参考。 入门类 1.《java从入门到精通》(第3版) 【内容介绍】 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java 语言进行程序开发应该掌握的各方面技术。全书共分28章,包括:初识Java,熟悉Eclipse 开发工具,Java 语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O输入输出,反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 【推荐理由】 本书内容详尽,实例丰富,非常适合作为编程初学者的学习用书,也适合作为开发人员的查阅、参考资料。 2.《java核心技术卷一》 【内容介绍】 本书是Java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面设计,异常处理、流输入/输出和对象序列化、泛型程序设计等。本书内容翔实、深入浅出,附有大量程序实例,极具实用价值,是Java初学者和Java程序员的必备参考书。 【推荐理由】 本书出版以来,深受广大读者的喜爱,它全面介绍了Java SE的基础知识,不但具有使用价值,而且易于阅读,易理解,它必成为想进军Java和基础薄弱同学的不二之选。 3.《java编程语言》 【内容介绍】 本书以Java语言创建者的独特视角向读者展现了为什么以及如何使用Java语言,以便读者理解Java语言的基本设计目标以及它在现实世界中的应用。本书介绍的是Java语言的

java开发实战经典答案

java开发实战经典答案 【篇一:java开发实战经典】 ass=txt>首先需要为读者说明的是,《java开发实战经典》,如图1所示,不只是一本纯粹讲解基础的书,里面更多的内容是为java ee的开发而服务的,所以读者在学习本书的时候应该重点培养的是思想,按照程序解释问题的思想。在本书的序言的视频之中已经为读者介绍了本书的整体结果,实际上每个读者必须首先搞清楚java se和java ee的关系,如图2所示。 从图2中可以清楚的发现,如果要想进行java ee的开发,java se 是其中必要的组成部分,这也就是为什么在学习java ee之前要读者一定要有扎实的java se基础了。 在本书的序章中也为读者讲解过,java se核心的部分就是以下四个: 1、面向对象:主要是要求读者建立好一个面向对象的概念,并可以灵活的运用这些概念进行程序的分析,可以说在整个java se部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有java开发中涉及到的各个设计模式,实际上也是针对于接口和抽象类的应用。 2、类集框架:大部分的读者都应该听过或学习过数据结构,虽然从大学就开始学习《数据结构与算法》,但是实际上来讲,学习完后真正可以进行数据结构编写的人并不多,而且大部分的数据结构都是以c语言为基础讲解的,而类集就相当于是java实现的数据结构,包括树、链表、队列等等,如果只是进行应用层次开发的读者没有必要深入了解其内部的操作,但是必须清楚的掌握其核心的接口和各个操作类。 3、io操作:对于大部分的自学者而言,io操作也许是最难过的一个坎了,如果没有很好的理解抽象类和接口的概念,那么要想充分的理解io操作是很难的,在整个io操作之中,完整的体现了java 语言多态性的设计思想,而且在学习io的时候必须始终把握住一个原则:“根据使用的子类不同,输入输出的位置也不同”。 4、java数据库操作(jdbc):jdbc首先并不能算是一门技术,更多的应该算是一种服务—— java提供的数据库访问服务,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的设计上来看,用户完全没有必要考虑其

java第十章课后习题解答

第10章Java数据库连接 【1】试述JDBC提供了哪几种连接数据库的方法。 [解答]:JDBC连接数据库的方法取决于JDBC驱动程序类型,Java定义了4种JDBC驱动程序类型: (1)JDBC-ODBC桥驱动程序# JDBC-ODBC桥接器负责将JDBC转换为ODBC,用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。这类驱动程序必须在服务器端安装好ODBC驱动程序,然后通过JDBC-ODBC的调用方法,进而通过ODBC来存取数据库。 (2)Java到本地API 这种类型的驱动程序是部分使用Java语言编写和部分使用本机代码编写的驱动程序,这类驱动程序也必须在服务器端安装好特定的驱动程序,如ODBC驱动程序,然后通过桥接器的转换,把Java API调用转换成特定驱动程序的调用方法,进而操作数据库。(3)网络协议搭配的Java驱动程序 这种驱动程序将JDBC转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。 (4)本地协议纯Java驱动程序 这种类型的驱动程序将JDBC访问请求直接转换为特定数据库系统协议。不但无须在使用者计算机上安装任何额外的驱动程序,也不需要在服务器端安装任何中间程序,所有对数据库的操作,都直接由驱动程序来完成。 【2】SQL语言包括哪几种基本语句来完成数据库的基本操作。 [解答]:SQL语言包括以下6种基本语句来完成数据库的基本操作: (1)select语句:用来对数据库进行查询并返回符合用户查询标准的结果数据。 (2)create table语句:用来建立新的数据表。 (3)insert 语句:向数据表中插入或添加新的数据行。 (4)update语句:更新或修改符合规定条件的记录。 (5)delete语句:删除数据表中的行或记录。 (6)drop table语句:删除某个数据表以及该表中的所有记录。 【3】Statement接口的作用是什么? [解答]:Statement接口用于执行静态SQL 语句并返回它所生成结果的对象。在默认情况下,同一时间每个Statement对象在只能打开一个ResultSet对象。因此,如果读取一个ResultSet对象与读取另一个交叉,则这两个对象必须是由不同的Statement对象生成的。如果存在某个语句的打开的当前ResultSet对象,则Statement接口中的所有执行方法都会隐式关闭它。 【4】ExecuteQuery()的作用是什么? [解答]:ExecuteQuery()方法执行给定的SQL 语句,返回单个ResultSet对象。发送给数据库的SQL 语句,通常为静态SQL SELECT语句,返回包含给定查询所生成数据的ResultSet对象。

学习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流,其实个人认为重点掌握线程就行,对于流和异常多写就行,线程偏重理论也最为重要。

会计初级实战经典题型练习及解析

一、单项选择题 1. 某企业“应付账款”科目月末贷方余额40 000元,其中:“应付甲公司账款”明细科目贷方余额35 000元,“应付乙公司账款”明细科目贷方余额5 000元;“预付账款”科目月末贷方余额30 000元,其中:“预付A工厂账款”明细科目贷方余额50 000元,“预付B工厂账款”明细科目借方余额20 000元。该企业月末资产负债表中“应付账款”项目的金额为()元。 A. 90 000 B. 30 000 C. 40 000 D. 70 000 2. 下列资产负债表项目,可根据有关总账余额填列的是()。 A. 货币资金 B. 应收票据 C. 存货 D. 应收账款 3. 下列资产负债表项目,需要根据相关总账所属明细账户的期末余额分析填列的是()。 A. 应收账款 B. 应收票据 C. 应付票据 D. 应付职工薪酬 4. 某企业期末“工程物资”科目的余额为200万元,“发出商品”科目的余额为50万元,“原材料”科目的余额为60万元,“材料成本差异”科目的贷方余额为5万元。假定不考虑其他因素,该企业资产负债表中“存货”项目的金额为()万元。 A. 105 B. 115 C. 205 D. 215 5. 企业期末“本年利润”的借方余额为17万元,“利润分配”和“应付股利”账户贷方余额分别为18万元和12万元,则当期资产负债表中“未分配利润”项目金额应为()万元。 A. 20 B. 13 C. 8 D. 1 6. 下列资产负债表项目中,应根据多个总账科目余额计算填列的是()。 A. 应付账款 B. 盈余公积 C. 未分配利润 D. 长期借款 7. 大明企业2009年发生的营业收入为2 000万元,营业成本为1 200万元,销售费用为40万元,管理费用为100万元,财务费用为20万元,投资收益为80万元,资产减值损失为140万元(损失),公允价值变动损益为160万元(收益),营业外收入为50万元,营业外支出为30万元。该企业2009年的营业利润为()万元。 A. 660 B. 740 C. 640

2017年最新Java经典笔试面试题笔试题目及答案

2017年最新Java经典笔试面试题 2017年最新Java经典笔试面试题 想要成为java程序员可不是容易的事情,下面YJBYS小编为大家精心搜集了关于Java 经典笔试的面试题,欢迎大家参考借鉴,希望可以帮助到大家! 一.选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。) 1. 以下属于面向对象的特征的是(C,D)。(两项) A) 重载 B) 重写 C) 封装 D) 继承 2. 以下代码运行输出是(C) public class Person{ private String name=”Person”; int age=0; } public class Child extends Person{

public String grade; public static void main(String[] args){ Person p = new Child(); System.out.println(https://www.doczj.com/doc/d97729531.html,); } } A) 输出:Person B) 没有输出 C) 编译出错 D) 运行出错 3. 在使用super 和this关键字时,以下描述正确的是(A) A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B) super()和this()不一定要放在构造方法内第一行 C) this()和super()可以同时出现在一个构造函数中

D) this()和super()可以在static环境中使用,包括static方法和static语句块 4. 以下对封装的描述正确的是(D) A) 只能对一个类中的方法进行封装,不能对属性进行封装 B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用 C) 封装的意义不大,因此在编码时尽量不要使用 D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性 5. 以下对继承的描述错误的是(A) A) Java中的继承允许一个子类继承多个父类 B) 父类更具有通用性,子类更具体 C) Java中的继承存在着传递性 D) 当实例化子类时会递归调用父类中的构造方法 6. 以下程序的运行结果是(D) class Person{ public Person(){ System.out.println(“this is a Person”);

推荐-java的浏览器的设计与实现开题报告 精品

开题报告 班级:学号: 姓名: 学院: 专业: 设计题目:基于java的浏览器的设计与实现—GUI 界面子系统 指导教师:

开题报告 1.结合情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 一、选题的目的和意义: 当今世界是一个以计算机网络为核心的信息时代,互联网为人们快速获取、发布和传递信息提供了便捷,而浏览器作为互联网上查找信息的重要工具,给人们提供了巨大而又宝贵了信息财富,受到了大家的高度重视。网页浏览器是显示网页服务器或档案系统内的文件,并让用户与这些文件互动的一种软件[1]。它用来显示在万维网或局域网内的文字、影像及其他资讯。浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。 二、国内外研究现状及发展趋势: 浏览器是一个基于C/S架构的应用软件,其基本的功能,就是能够将英特网上的众多资源,例如网页上的内容与信息或是在线服务等,呈现给使用者并让使用者得以使用存在于英特网上的各项服务[2]。因此透过网络传输数据对浏览器来说,是相当重要且必备的一项能力。 浏览器是一个图形界面的大需求者,选择好的GUI环境实属不易,未来能够实现专有功能,浏览器开发者往往还要对基础的GUI库进行包装、改写,甚至写自己的控制。所有这些,是需要有专业的GUI库开发经验的专职人来完成。 GUI的功劳第一在于软件的操作界面,如窗口、菜单、工具条、滚动条等。第二在于主浏览窗体中的图形元素的输出(通常以自画控件的方式)。前者通常直接使用GUI库中的已有控件,编程难度很小,后者主要利用基本的点线函数,编程难度比较大。在浏览器中使用Java Swing技术编写它的图形界面,而做图形界面首先要考虑的就是选择一个合适的布局管理器[3]。JDK没有表单设计器,需要通过代码来制定布局管理器来放置用户界面组件所在的位置。 布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和

java实习周记25篇

第一周 实习第一个礼拜,算是适应期。主要了解一些公司的背景、产品、发展方向等。刚到实习公司,不是像学校里的朝九晚五,而是朝八晚九。我们不可能简单的了解一些企业文化,简单的学学新的知识就可以了,我们的这个实习必将是一个繁忙的实习,也必将是一个充实的,进步的实习。来到这里,我们要忘掉大学里自由的作息时间,克服困难,养成良好的工作生活习惯。基于各方面的原因,虽然在去之前我们做了比较充足的准备,但还是遇到了一些困难,例如学习时间长,实战比较繁多,但时间又比较的短,难以保证按时按质按量完成。下午下了班,员工们都回去了,我还在那儿练习,一直到晚上9 点,才能回住处休息。中午也没有休息的地方,只能趴在电脑前休息一会,一两周下来,相当地疲惫。但我们都明白自己来实习的任务,都坚持着完成自己的任务和使命。这个星期熟悉了工作环境、java 编程的环境配置。等慢慢熟悉起来,做起事情也越来越顺手了.简单的总结为几个字,那就是:多看,多问,多观察,多思考!第二周 实习第二个礼拜,主要是熟悉java 的基础语法,把基础打扎实,以后在开发中才能如鱼得水。学习总结如下几点: 1、类之间的关系:关联、聚合、继承、实现和多态。 2、基本数据类型:整数型、浮点型、字符型、布尔型。 3、常用逻辑语句和循环语句:switch 只支持int 类型判断,没有写break 易穿透至下一个循环,jdk7.0 貌似增强了支持数据类型。Break :强行退出循环;Continue :跳出当前循环。 5、修饰符:pbulic ,private ,protected ,default 。设置访问权限。 6、Static 关键字:静态修饰符,它修饰的方法、类和变量可以全局调用 7、Final 关键字:禁止重写。

Java开发实战经典—第4章课后答案

public class ArrayExecDemo01{ public static void main(String args[]){ int x[] = {1,2,34,4,5,6,7,8,89,8,3,234,24,24,24,24,42,22,43,45,78} ; int sum1 = 0 ; // 保存奇数个数 int sum2 = 0 ; // 保存偶数个数 for(int i=0;i

Java面试题(带答案)

湖南世杰Java工程师面试题 选择题: 单选题 1,以下java程序代码,执行后的结果是( ) java.util.HashMap map=newjava.util.HashMap(); map.put("name",null); map.put("name","Jack"); System.out.println(map.size()); A: 0 B: null C: 1 D: 2 答案:C 2,执行以下程序后的输出结果是( ) Public class Test { Public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b); System.out.println(a +","+ b); } Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x;

} } A: A,A B: A,B C: B,B D: AB,B 答案:D 3,关于依赖注入,下列选项中说法错误的是( ) A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装 B:依赖注入使组件之间相互依赖,相互制约 C:依赖注入提供使用接口编程 D:依赖注入指对象在使用时动态注入 答案:B 4,关于spring说法错误的是( ) A: spring是一个轻量级JAVA EE的框架集合 B: spring是“依赖注入”模式的实现 C: 使用spring可以实现声明事务 D: spring提供了AOP方式的日志系统 答案:D 5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”) B: session.setAttribute(“key”,”value”) C: session.setAttribute(“key”) D: session.getAttribute(“key”) 答案:B

JAVA开发培训课程有什么

JAVA开发培训课程有什么 光阴似箭,日月如梭。不知不觉在千锋JavaEE第一阶段JavaSE的学习就已经结束了。在为期五周的学习中,我从一个只会敲hello world的小白已经变成了一个可以写出一个小项目的入门级小白。回顾这五周的学习过程,不难发现这其中的课程安排是循序渐进、环环相扣的。 第一周:首先介绍了Java是什么样的一个东西以及Java是用来做什么的,让我们对java语言有了一个初步的了解。学习一门语言首先要通过学习“单词”开始,标识符以及关键字就是Java语言的“单词”。然后就是学习语言的一些基本语法,其中包括变量类型、各种运算符和Java的执行语句。在了解了顺序结构语句、分支结构语句以及循环结构语句以后我们就可写出一些简单Java语言完成一些简单的可以实现简单问题的代码了! 第二周:经过了第一周的学习,完成一些简单问题的代码已经不能满足我们了。于是一种新的储存数据的数组出现了,我们以一维数组为例,并且将其扩展到了二维数组和多维数组,循序渐进。这时候我们对于数据的处理就到了一个新的高度并利用一维数组完成了一个简单的学生管理系统!之前学的内容可以解决

一些问题了。而Java语言毕竟是一种面向对象的语言,我们要用它来实现和解决具体问题。 第三周:面向对象其实是一种设计思想,如我们习其他语言一样。我们在学习过程不免会参考一些前人优秀的作品,于是就学习了一些经典的设计模式。而面向对象就会使用到很多对象抽取出来的类,进而我们学了一些Java语言的常用类。因为Java为我们提供了非常多的类,要想充分地利用这些类,我们就必须学会查看API——我认为这个时候我们才已经入门这个语言,这时候就好像是我们学英语时候开始学音标,学会了音标我们的自学能力就有了质的飞跃! 第四周:到了这个时候,处理数据已经不能够满足我们了,我们需要处理的是一个个对象。而集合就是为了解决我们需求的,不同的集合能够处理不同的类型。要是想要更深刻的了解每一个不同集合的用途,就要学会看其源码。所谓“知其然,还要知其所以然也”。 第五周:之前四周的都是单线程了,为了实现更复杂的问题,就必须使用多线程。由于有多个线程,线程与线程之前不免会出现一个问题。其实多线程一个很重要的问题就是线程安全。至此,Java第一阶段的学习已经接近尾声。 在我看来,这五周不单单是JavaSE的学习。更是一种学习习惯的养成过程:遇到一个问题,首先自己思考解决方法。然后通过自己的能力尽可能去完成,不

完整word版,java开发实习周记25篇

java开发实习周记25篇 第一周 实习第一个礼拜,算是适应期。主要了解一些公司的背景、产品、发展方向等。刚到实习公司,不是像学校里的朝九晚五,而是朝八晚九。我们不可能简单的了解一些企业文化,简单的学学新的知识就可以了,我们的这个实习必将是一个繁忙的实习,也必将是一个充实的,进步的实习。来到这里,我们要忘掉大学里自由的作息时间,克服困难,养成良好的工作生活习惯。基于各方面的原因,虽然在去之前我们做了比较充足的准备,但还是遇到了一些困难,例如学习时间长,实战比较繁多,但时间又比较的短,难以保证按时按质按量完成。下午下了班,员工们都回去了,我还在那儿练习,一直到晚上9点,才能回住处休息。中午也没有休息的地方,只能趴在电脑前休息一会,一两周下来,相当地疲惫。但我们都明白自己来实习的任务,都坚持着完成自己的任务和使命。这个星期熟悉了工作环境、java编程的环境配臵。等慢慢熟悉起来,做起事情也越来越顺手了.简单的总结为几个字,那就是:多看,多问,多观察,多思考! 第二周 实习第二个礼拜,主要是熟悉java的基础语法,把基础打扎实,以后在开发中才能如鱼得水。学习总结如下几点: 1、类之间的关系:关联、聚合、继承、实现和多态。

2、基本数据类型:整数型、浮点型、字符型、布尔型。 3、常用逻辑语句和循环语句:switch只支持int类型判断,没有写break易穿透至下一个循环,jdk7.0貌似增强了支持数据 类型。 4、break:强行退出循环;continue:跳出当前循环。 5、修饰符:pbulic,private,protected,default。设臵 访问权限。 6、static关键字:静态修饰符,它修饰的方法、类和变量可以全局调用。 7、final关键字:禁止重写。 8、this关键字:指向自身引用。 9、string:是不可变的字符序列。(两个string变量必须用copy的方式在内存中new出新的数据块) 10、stringbuffer:是可变的字符序列,可以直接添加字符。 第三周 实习第三个礼拜,主要是熟悉java的高级语法(核心) 继承:子类继承父类的所有属性和方法,如果方法和属性被private修饰,子类则无法读取。子类使用super关键字继承。父类无法调用子类方法。构造方法:方法名称必须与类名相同,且 没有返回值。object类是所有类的父类,即java中的根类。无参构造方法默认继承object的。(构造方法的重载,实现不同参数 的构造)

java课程设计简单记事本

Java 期末测试 制作人:学号:201211020142 班级:12级计算机应用技术1班

一、分析与设计 1. 分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 2. 功能模块划分 程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 第一部分菜单栏 (1)菜单中有“文件”,“编辑”,“格式”三个主菜单。 (2)“文件”有“打开”“保存”“退出”三个子菜单:分别用于打开文件,保存文件,退出记事本。 (3)“编辑”中有“剪切”“复制”“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字操作。 (4)“格式”中有“自动换行”,“取消自动换行”,“断行不断字”,“取消断行不断字”四个子菜单,分别用于设置是否自动换行等。 设计右键操作,方便用户进行一系列的编辑操作,增强本记事本的用户体验性能。 二、各模块的关键代码 1、菜单栏 文件菜单 mb = new JMenuBar(); //创建菜单棒 fileMenu = new JMenu("文件(F)");//创建菜单 fileMenuOpen = new JMenuItem("打开(O)...Ctrl+O");

Java经典面试题及答案

1、访问修饰符public,private,protected,以及不写(默认)时的区别? 答:区别如下: 作用域当前类同包子类其他 public √ √ √ √ protected √ √ √ × default √ √ × × private √ × × × 类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。 2、float f=3.4;是否正确? 答:不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型 转换float f =(float)3.4; 或者写成float f =3.4F;。 3、Java 有没有goto? 答:goto 是Java中的保留字,在目前版本的Java中没有使用。其中有goto 和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉 C 语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字) 4、&和&&的区别? 答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(“”),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。 补充:如果你熟悉JavaScript,那你可能更能感受到短路运算的强大,想成为JavaScript的高手就先从玩转短路运算开始吧。 5、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。 6、用最有效率的方法计算2乘以8? 答:2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次

JAVA程序设计五子棋制作实训

《JAVA程序设计》 实训报告 实训题目: 五子棋游戏制作 专业:计算机网络 班级: 14网络(1)班 姓名: 指导教师: 2015 年 12 月 31日 目录 1.实训目的........................... 错误!未定义书签。 2.实训题目描述和要求................. 错误!未定义书签。 实训题目描述...................... 错误!未定义书签。

实训题目要求...................... 错误!未定义书签。 3.实训报告内容....................... 错误!未定义书签。 需求分析.......................... 错误!未定义书签。 概要设计.......................... 错误!未定义书签。 详细设计.......................... 错误!未定义书签。 编码.............................. 错误!未定义书签。 测试.............................. 错误!未定义书签。 4.总结............................... 错误!未定义书签。 实训指导教师评语................... 错误!未定义书签。

1.实训目的 随着经济社会的迅速发展,人们生活水平有了很大的提高, 人们的生活观念也发生了巨大的改变。高品质的生活、现代化 得生活方式成为人们共同追求的目标;休闲、娱乐性活动作为 时尚生活中的一部分,而被大多数的人所追捧。棋类项目作为 一种智力型项目,可以益智健心、修身养性,也可以满足人们 对于娱乐和休闲的新需求。一些项目比如五子棋等等,由于项 目本身互动的特点,一直被人们所喜爱,因此得以生存和发 展,成为许多人喜爱的休闲娱乐性棋类项目。而今,以网络技 术为核心和计算机技术的现代网络技术已经在现实生活得到了 十分的广泛的使用。休闲类网络游戏集合了益智性、趣味性、 互动性、娱乐性于一体,已经成为多数人群的选择的休闲方 式。 《Java程序设计》课程实训,学生可以将理论知识与具体 实践相结合,巩固对JAVA相关方法和概念的理解,通过实训单 机版五子棋游戏的编程,加深对所学知识的理解和应用。如: 通过实训能够结合实例进一步理解面向对象程序设计的基本概 念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步 的理解接口,熟练的掌握在接口中对事件的实现。深入理解和 灵活运用面向对象程序设计的基本特性,培养良好的程序设计 风格,提高抽象思维、逻辑思维的能力。

相关主题
相关文档 最新文档