当前位置:文档之家› java基础训练

java基础训练

java基础训练
java基础训练

一、编程题:Java多线程简单应用

编写一个程序,在不同时段进行多线程消息显示。创建3 个线程,每个线程都显示一个消息,指出它即将进入睡眠状态,线程的睡眠时间为0~5秒之间的随机数,随后进入睡眠状态。当一个线程被唤醒,首先显示该线程的名称,并指出它已经完成睡眠,然后线程终止并进入死亡状态。

程序运行结果如下:

第一次运行:

线程开始

线程1进入睡眠时间2427

线程2进入睡眠时间1828

线程开始,main方法结束

线程3进入睡眠时间4803

线程2正在睡眠...

线程1正在睡眠...

线程3正在睡眠...

第二次运行:

线程开始

线程1进入睡眠时间1010

线程开始,main方法结束

线程2进入睡眠时间225

线程3进入睡眠时间3338

线程2正在睡眠...

线程1正在睡眠...

线程3正在睡眠...

实验步骤:

1、用MyEclipse或记事本工具按照Java编码规范创建Java程序,输入程序代码后,进行编译和运行。

2、用JDK工具(javac.exe、java.exe)、MyEclipse或其他工具对上述程序进行编译和运行。代码如下:

import java.util.Random;

class MyThread implements Runnable{

private String name;

private int time;

public MyThread(String name,int time){

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

this.time=time;

}

public MyThread(){}

public void run(){

System.out.println(https://www.doczj.com/doc/f411206255.html,+"进入睡眠时间"+this.time);

try{

Thread.sleep(this.time);

}catch(InterruptedException e){

e.printStackTrace();

}

System.out.println(https://www.doczj.com/doc/f411206255.html,+"正在睡眠...");

}

public void info(){

System.out.println("线程开始,main方法结束");

System.out.println("");

}

}

public class Demo1 {

public static void main(String[] args) {

System.out.println("线程开始");

Random r=new Random();

int a=r.nextInt(5000);

int b=r.nextInt(5000);

int c=r.nextInt(5000);

MyThread my1=new MyThread("线程1",a);

MyThread my2=new MyThread("线程2",b);

MyThread my3=new MyThread("线程3",c);

new Thread(my1).start();

new Thread(my2).start();

new Thread(my3).start();

MyThread my=new MyThread();

https://www.doczj.com/doc/f411206255.html,();

}

}

一、编程题:

编写一个程序,完成在银行的取款和存款操作。在定义银行类时,若取钱数大于余额,则做异常处理。控制台输出如下:

你当前的余额为:4000

请选择你要办理的业务种类(输入1或者2):1、取款,2、存款

1

请输入金额(精确到元):

2000

对不起你的余额不足……

代码如下:

import java.util.Scanner;

public class BankMoney {

public static void main(String[] args) {

Scanner scan1=new Scanner(System.in);

System.out.println("您当前的金额为:");

float mon1=scan1.nextFloat();

System.out.println("您当前的金额为:"+mon1);

System.out.println("请输入你要办理的业务种类(输入1或者2):1、取款,2、存款");

Scanner scan2=new Scanner(System.in);

int a=scan2.nextInt();

System.out.println("请输入金额:");

Scanner scan3=new Scanner(System.in);

float mon2=scan3.nextFloat();

if(a==1){

if(mon2>mon1){

try{

throw new Exception("对不起你的余额不足!");

}catch(Exception e){

System.out.println(e);

}

}else{

System.out.println("你所剩余额为:"+(mon1-mon2));

}

}

if(a==2){

System.out.println("你所剩余额为:"+(mon1+mon2));

}

}

}

显示结果一:

您当前的金额为:

4000

您当前的金额为:4000.0

请输入你要办理的业务种类(输入1或者2):1、取款,2、存款

1

请输入金额:

2000

2000.0

4000

您当前的金额为:4000.0

请输入你要办理的业务种类(输入1或者2):1、取款,2、存款

1

请输入金额:

5000

对不起你的余额不足!

4000

您当前的金额为:4000.0

请输入你要办理的业务种类(输入1或者2):1、取款,2、存款

2

请输入金额:

2000

你所剩余额为:6000.0

二、编程题:Java异常处理简单应用

通过图形界面从键盘输入两个数,进行相除,显示商。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。

public class ExceptionDemo1 {

public static void main(String[] args) {

String str1=javax.swing.JOptionPane.showInputDialog("请输入被除数");

String str2=javax.swing.JOptionPane.showInputDialog("请输入除数");

int a=0;

try{

int s1=Integer.parseInt(str1);

int s2=Integer.parseInt(str2);

a=s1/s2;

}catch(ArithmeticException e){

javax.swing.JOptionPane.showMessageDialog(null,"算数异常:"+e);

}catch(NumberFormatException e){

javax.swing.JOptionPane.showMessageDialog(null,"数字转换异常:"+e);

}catch(Exception e){

javax.swing.JOptionPane.showMessageDialog(null,"其他异常:"+e);

}

javax.swing.JOptionPane.showMessageDialog(null,"计算结果是:"+a );

}

}

显示结果:

结果一:

结果二:

结果三:

一、列出指定属性

public class Demo3 {

public static void main(String[] args) {

//System.getProperties().list(System.out); //列出系统的全部属性

System.out.println("系统版本为:

"+System.getProperty("https://www.doczj.com/doc/f411206255.html,")+System.getProperty("os.version")+System

.getProperty("os.arch"));

System.out.println("系统给用户为:

"+System.getProperty("https://www.doczj.com/doc/f411206255.html,"));

System.out.println("当前用户目录:

"+System.getProperty("user.home"));

System.out.println("当前用户工作目录:

"+System.getProperty("user.dir"));

long startTime=System.currentTimeMillis();

int sum=0;

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

sum+=i;

}

long endTime=System.currentTimeMillis();

System.out.println("计算所花费的时间:"+(endTime-startTime)+"毫秒。");

}

}

显示结果:

系统版本为:Windows Vista6.1x86

系统给用户为:lenovo

当前用户目录:C:\Users\lenovo

当前用户工作目录:E:\实验\Java实验\seven\seven

计算所花费的时间:80毫秒。

二、观察对象释放

class Person{

private String name;

private int age;

public Person(String name,int age){

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

this.age=age;

}

public String toString(){

return"姓名:"+https://www.doczj.com/doc/f411206255.html,+",年龄:"+this.age;

}

public void finalize() throws Throwable{

System.out.println("对象被释放——>"+this);

}

}

public class Demo4 {

public static void main(String[] args) {

Person per=new Person("张三",20);

per=null;

System.gc();

}

}

显示结果:

对象被释放——>姓名:张三,年龄:20

三、编程题:

某超市门口为顾客准备了100辆手推车,每位顾客在购物时需一辆推车,在购物后把推车还回去。编写一个多线程程序,模拟超市购物。

运行结果:

超市模拟购物开始

第1001号顾客进入等车购物

第1001号顾客正在购物

第1002号顾客进入等车购物

第1001号顾客把推车还回去

第1002号顾客正在购物

第1002号顾客把推车还回去

例中假设就2辆小车,处理特殊情况,当小车不够时;如果小车多时只将sum的只修改一下即可。

class Car{

public static int sum=2;

public synchronized void getCar(){

if(sum==0){

try{

super.wait();

}catch(InterruptedException e){

e.printStackTrace();

}

}

if(sum>0&&sum<=2){

try{

System.out.println(Thread.currentThread().getName()+"顾客正在购物");

Thread.sleep(1000);

}catch(InterruptedException e){

e.printStackTrace();

}

sum--;

}

}

public synchronized void sedCar(){

if(sum>=0&&sum<2){

try{

System.out.println(Thread.currentThread().getName()+"顾客把推车还回去");

Thread.sleep(1000);

}catch(InterruptedException e){

e.printStackTrace();

}

sum++;

super.notify();

}

}

}

class Buy implements Runnable{

private Car c;

public Buy(Car c){

this.c=c;

}

public void setC(Car c){

this.c=c;

}

public Car getC(){

return c;

}

public void run(){

System.out.println(Thread.currentThread().getName()+"顾客进入等车购物");

c.getCar();

c.sedCar();

}

}

public class Two {

public static void main(String[] args) {

System.out.println("超市模拟购物开始");

Car c=new Car();

Buy b1=new Buy(c);

Buy b2=new Buy(c);

Buy b3=new Buy(c);

new Thread(b1,"第1001号").start();

new Thread(b2,"第1002号").start();

new Thread(b3,"第1003号").start();

}

}

其中一个显示结果:

超市模拟购物开始

第1001号顾客进入等车购物

第1001号顾客正在购物

第1002号顾客进入等车购物

第1003号顾客进入等车购物

第1001号顾客把推车还回去

第1003号顾客正在购物

第1002号顾客正在购物

第1002号顾客把推车还回去

第1003号顾客把推车还回去

四、设计一个生产电脑和搬运电脑类,要求生产出一台电脑就搬走一台电脑,如果没有新的电脑生产出来,则搬运工要等待新电脑产出;如果生产出的电脑没有搬走,则要等待电脑搬走之后再生产,并统计出生产的电脑数量.

class Computer{

int num=0;

boolean flag=false;

public synchronized void set(){

if(flag){ //不能生产,等待取走

try{

super.wait();

}catch(InterruptedException e){

e.printStackTrace();

}

}

try{

Thread.sleep(1000);

}catch(InterruptedException e){

e.printStackTrace();

}

num++;

System.out.println("生产了第"+num+"台电脑。");

flag=true;

super.notify();

}

public synchronized void get(){

if(!flag){ //不能取走,等待生产

try{

super.wait();

}catch(InterruptedException e){

e.printStackTrace();

}

}

try{

Thread.sleep(1000);

}catch(InterruptedException e){

e.printStackTrace();

}

System.out.println("取走了第"+num+"台电脑。");

flag=false;

super.notify();

}

}

class Customer implements Runnable{

private Computer com;

public void setCompu(Computer compu){

https://www.doczj.com/doc/f411206255.html,=compu;

}

public Computer getCompu(){

return https://www.doczj.com/doc/f411206255.html,;

}

public Customer(Computer com){

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

}

public void run(){

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

com.set();

com.get();

}

}

}

public class Four {

public static void main(String[] args) {

Computer a=new Computer();

Customer cus=new Customer(a);

new Thread(cus).start();

}

}

显示结果:

生产了第1台电脑。

取走了第1台电脑。

生产了第2台电脑。

取走了第2台电脑。

生产了第3台电脑。

取走了第3台电脑。

生产了第4台电脑。

取走了第4台电脑。

生产了第5台电脑。

取走了第5台电脑。

生产了第6台电脑。

取走了第6台电脑。

生产了第7台电脑。

取走了第7台电脑。

生产了第8台电脑。

取走了第8台电脑。

生产了第9台电脑。

取走了第9台电脑。

生产了第10台电脑。

取走了第10台电脑。

一、线程的休眠

class MyThread2 implements Runnable{

public void run(){

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

try{

Thread.sleep(500);

}catch(Exception e){}

System.out.println(Thread.currentThread().getName()+"运行——>"+i);

}

}

}

public class ThreadSheepDemo {

public static void main(String[] args) {

MyThread2 mt=new MyThread2();

Thread t=new Thread(mt,"线程");

t.start();

}

}

//以上程序在执行时,每次的输出都会间隔500ms,达到了延迟操作的效果

结果如下:

线程运行——>0

线程运行——>1

线程运行——>2

线程运行——>3

线程运行——>4

二、中断线程

class MyThread3 implements Runnable{

public void run(){

System.out.println("1、进入run方法");

try{

Thread.sleep(10000);

System.out.println("2、已经完成休眠");

}catch(Exception e){

S ystem.out.println("3、休眠被终止");

r eturn; //让程序返回被调用处

}

System.out.println("4、run 方法正常结束");

}

}

public class ThreadInterruptDemo {

public static void main(String[] args) {

MyThread3 mt=new MyThread3();

Thread t=new Thread(mt,"线程");

t.start();

try{

Thread.sleep(2000);//稍微停2s在进行中断

}catch(Exception e){}

t.interrupt();

}

}

显示结果:

1、进入run方法

3、休眠被终止

三、后台线程。

//在线程MyThread中,尽管run()方法是死循环的方式,但是程序依然可以执行完,因为方法中死循环的线程操作已经设置成后台运行了

class MyThread4 implements Runnable{

public void run(){

while(true){

System.out.println(Thread.currentThread().getName()+"在运行。");

}

}

}

public class ThreadDaemonDemo {

public static void main(String[] args) {

MyThread4 mt=new MyThread4();

Thread t=new Thread(mt,"线程1");

t.setDaemon(true); //此线程在后台运行

t.start(); //启动线程

}

}

四、线程A,休眠1秒;线程B,休眠3秒;线程C,休眠4秒,继承Thread类

class MyThread5 extends Thread{

private int time;

public MyThread5(String name,int time){

super(name);

this.time=time;

}

public void run(){

try{

Thread.sleep(this.time);

}catch(InterruptedException e){

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName()+"线程,休眠

"+this.time+"毫秒。");

}

}

public class ExecDemo {

public static void main(String[] args) {

MyThread5 mt1=new MyThread5("线程A",1000);

MyThread5 mt2=new MyThread5("线程B",3000);

MyThread5 mt3=new MyThread5("线程C",4000);

mt1.start();

mt2.start();

mt3.start();

}

}

五、如果使用Runnable接口实现多线程,则不像Thread类那样可以直接使用Thread

类中的name属性,需要在类中单独定义一个name是想以保存线程名称

class MyThread6 implements Runnable{

private String name;

private int;

public MyThread6(String name,int time){

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

this.time=time;

}

public void run(){

try{

Thread.sleep(this.time);

}catch(InterruptedException e){

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName()+"线程,休眠

"+this.time+"毫秒。");

}

}

public class ExecDemo1 {

public static void main(String[] args) {

MyThread6 mt1=new MyThread6("线程A",1000);

MyThread6 mt2=new MyThread6("线程B",3000);

MyThread6 mt3=new MyThread6("线程C",4000);

new Thread(mt1).start();

new Thread(mt2).start();

new Thread(mt3).start();

}

}

六、解除死锁代码。

class Zhangsan{

public void say(){

System.out.println("张三对李四说:“你给我画,我就把书给你!”");

}

public void get(){

System.out.println("张三得到画了。");

}

}

class Lisi{

public void say(){

System.out.println("李四对张三说:“你给我书,我就把画给你!”");

}

public void get(){

System.out.println("李四得到书了。");

}

}

public class DeadLock implements Runnable{

private static Zhangsan zs=new Zhangsan();

private static Lisi ls=new Lisi();

private boolean flag=false;

public void run(){

if(flag){

synchronized (zs){

zs.say();

try{

Thread.sleep(500);

}catch(InterruptedException e){

e.printStackTrace();

}

synchronized(ls){

zs.get();

}

}

}else{

synchronized (zs){

ls.say();

try{

Thread.sleep(500);

}catch(InterruptedException e){

e.printStackTrace();

}

synchronized(ls){

ls.get();

}

}

}

}

public static void main(String[] args){

DeadLock t1=new DeadLock();

DeadLock t2=new DeadLock();

t1.flag=true;

t2.flag=false;

Thread thA=new Thread(t1);

Thread thB=new Thread(t2);

thA.start();

thB.start();

}

}

显示结果:

张三对李四说:“你给我画,我就把书给你!”

张三得到画了。

李四对张三说:“你给我书,我就把画给你!”

李四得到书了。

一、实现Runnable接口可以资源共享

class MyThread implements Runnable{

private int ticket=5;

public void run(){

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

if(ticket>0){

System.out.println("卖票:ticket="+ticket--);

}

}

}

}

public class RunnableDemo1 {

public static void main(String[] args) {

MyThread my=new MyThread();

new Thread(my).start();

new Thread(my).start();

new Thread(my).start();

}

}

结果显示不止下列三个:

二、观察程序的输出

class MyThread1 implements Runnable{

public void run(){

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

System.out.println(Thread.currentThread().getName()+"运行,i="+i);

}

}

}

public class CurrentThreadDemo1 {

public static void main(String[] args) {

MyThread1 my =new MyThread1();

new Thread(my,"线程").start();

my.run();

}

}

//在java中所有的线程都是同时启动的,哪个线程先抢到CPU资源,哪个线程就先运行,所以显示结果不唯一

三、线程的强制执行,用join()方法,线程强制执行期间,其他线程无法运行,必须等到线程完成之后才可以继续执行。

class MyThread1 implements Runnable{

public void run(){

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

System.out.println(Thread.currentThread().getName()+"运行——>"+i);

}

}

}

public class ThreadJoinDemo {

public static void main(String[] args) {

MyThread1 mt=new MyThread1();

Thread t=new Thread(mt,"线程");

t.start();

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

if(i>4){

try{

t.join();

}catch(Exception e){}

}

System.out.println("main 线程运行——>"+i);

}

}

}

显示结果如下:(结果不唯一,不止以下结果,仅复制此三个作说明)

四、判断线程是否启动

class MyThread implements Runnable{

public void run(){

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

System.out.println(Thread.currentThread().getName()+"运行——>"+i);

}

}

}

public class ThreadAliveDemo {

public static void main(String[] args) {

MyThread mt=new MyThread();

Thread t=new Thread(mt,"线程");

System.out.println("线程执行之前——>"+t.isAlive());

t.start();

System.out.println("线程执行之后——>"+t.isAlive());

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

System.out.println("main运行——>"+i);

}

System.out.println("代码执行之后——>"+t.isAlive());

}

}

显示结果如下(结果不知此几个):

一、设计一个宠物商店,宠物商店中可以有多种(有用户决定数量)宠物,试表示出

此种关系,并要求可以根据宠物的关键字查询到相应的宠物信息。所需宠物信息自行设计。具体分析如下:

(1)本要求中提示宠物信息可以自行设计,所以此时简单设计出名字、颜色、年龄3个属性。

(2)宠物的种类很多,如猫、狗等都属于宠物,所以宠物应当是一个标准。

(3)在宠物商店中,只要是符合此宠物标准的就应该可以放进宠物商店中。

(4)宠物商店要保存多种宠物,则肯定应该是宠物的对象数组,如果宠物个数由用户决定,则应该创建宠物商店时,就分配好所能保存的宠物个数。

代码如下:

interface Pet{

public String getName();

public String getColor();

public int getAge();

}

class Cat implements Pet{

private String name;

private String color;

private int age;

public Cat(String name,String color,int age){

this.setName(name);

this.setColor(color);

this.setAge(age);

}

public String getName(){

return https://www.doczj.com/doc/f411206255.html,;

}

public String getColor(){

return this.color;

}

public int getAge(){

return this.age;

}

public void setName(String name){

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

}

public void setColor(String color){

this.color=color;

}

public void setAge(int age){

this.age=age;

}

}

class Dog implements Pet{

private String name;

private String color;

private int age;

public Dog(String name,String color,int age){ this.setName(name);

this.setColor(color);

this.setAge(age);

}

public String getName(){

return https://www.doczj.com/doc/f411206255.html,;

}

public String getColor(){

return this.color;

}

public int getAge(){

return this.age;

}

public void setName(String name){

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

}

public void setColor(String color){

this.color=color;

}

public void setAge(int age){

this.age=age;

}

}

class PetShop{

private Pet[] pets;

private int foot;

if(len>0){

this.pets=new Pet[len];

}else{

this.pets=new Pet[1]; //至少开辟一个空间

}

}

public boolean add(Pet pet){

if(this.foot

this.pets[this.foot]=pet;

this.foot++;

return true;

}else{

return false;

}

}

public Pet[] search(String keyWord){ //关键字查找

Pet p[]=null;

int count=0;

//确认开辟的空间大小,看有多少个宠物符合查询条件

for(int i=0;i

if(this.pets[i]!=null){

if(this.pets[i].getName().indexOf(keyWord)!=-1||this.pets[i].getC olor().indexOf(keyWord)!=-1){

count++; //符合条件的宠物个数

}

}

}

p=new Pet[count];

int f=0;//设置增加的位置标记

for(int i=0;i

if(this.pets[i]!=null){

if(this.pets[i].getName().indexOf(keyWord)!=-1||this.pets[i].getC olor().indexOf(keyWord)!=-1){

p[f]=this.pets[i];//将符合查询条件的宠物信息保存

f++;

}

}

}

return p;

}

}

public static void main(String[] args) {

PetShop ps=new PetShop(5);

ps.add(new Cat("白猫","白色的",2));//增加宠物,成功

ps.add(new Cat("黑猫","黑色的",3));//增加宠物,成功

ps.add(new Cat("花猫","花色的",3));//增加宠物,成功

ps.add(new Dog("拉布拉多","黄色的",3));//增加宠物,成功

ps.add(new Dog("金毛","金色的",3));//增加宠物,成功

ps.add(new Dog("黄狗","黄色的",3));//增加宠物,失败

print(ps.search("黄"));

}

public static void print(Pet p[]){

for(int i=0;i

if(p[i]!=null){

System.out.print(p[i].getName()+","+p[i].getAge()+","+p[i].getAge ());

}

}

}

}

显示结果:

拉布拉多,3,3

二、对象的比较

Object类提供的equals()方法默认是比较地址的,并不能对内容进行比较。

class Persona{

private String name;

private int age;

public Persona(String name,int age){

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

this.age=age;

}

public boolean equals(Object obj){//覆写Object类中的equals()方法if(this==obj){ //如果两个而对象的地址相等,则肯定是同一个对象

return true;

}

if(!(obj instanceof Persona)){//判断传进来的对象是否是Person的实例

Java练习题(试卷)

Java 程序设计练习题(1) 一、单项选择题 1.下面( B )是合法的 Java 标识符。 A、#_pound B、_underscore C、5Interstate D 、 class 2.下面( D )赋值语句不会出现编译警告或错误。 A、float f=1.3; B、char c="a"; C、byte b=257; D、int i=10; 3.编译一个定义了两个类和三个方法的 Java 源程序文件,总共会产生( D )个字节码文件。 A、5 个字节码文件,以“.java”为扩展名 B、2 个字节码文件,以“.java”为扩展名 C、5 个字节码文件,以“.class”为扩展名 D、2 个字节码文件,以“.class”为扩展名4.有关类的说法,正确的是( B )。 A、类具有封装性,所以类的数据是不能被访问的 B、类具有封装性,但可以通过类的公共接口访问类中的数据 C、声明一个类时,必须使用 public 修饰符 D、每个类中必须有 main 方法,否则程序无法运行 5.执行完下面程序片段后,( B )的结论是正确的。 int a, b, c; a = 1; b = 2; c = (a + b > 3 ? a++ : b++); A、a 的值是 2,b 的值是 3 B、a 的值是 1,b 的值是 3 C、a 的值是 1,b 的值是 2 D、c 的值是 false 6.将类的成员的访问权限设置为默认的,则该成员能被( A )。 A、同一包中的类访问 B、其他包中的类访问 C、所有的类访问 D、所有的类的子类访问 7.下面的方法重载,正确的是( C )。 A、int fun(int a, float b) { } B、float fun(int a, float b) { } float fun(int a, float b) { } float fun(int x, float y) { } C、float fun(float a) { } D、float fun1(int a, float b) { } float fun(float a, float b) { } float fun2(int a, float b) { } 8.下面关于继承的说法,正确的是( D )。 A、超类的对象就是子类的对象 B、一个类可以有几个超类 C、一个类只能有一个子类 D、一个类只能有一个超类 9.下面关于多态性的说法,正确的是( C )。 A、一个类中不能有同名的方法

java基础练习

写一个菜单程序,能够对动物园的动物进行管理 动物类(id、type、color、sex、price、buyDate(入园时间)、flag) 1、添加一条动物进入动物园 2、注销一条动物信息(死亡或卖掉) 3、查询全部动物信息 4、查询某种颜色的动物信息 5、统计某种类型的动物信息 6、统计某种类型的动物的价值 7、修改某个动物的基本信息(输入id) 8、退出 注1:注销动物信息,可以通过改变动物的某一个特殊属性来控制。比如,动物有个属性叫 isDead , 正常情况下是false,当注销的时候改成true,然后其他所有的统计和查询都只列出isDead属性为false的动物来,这样,看起来这个动物就不存在了。 注2:id是用来唯一标识动物信息的,区别动物主要就得靠ID了,所以添加动物信息的时候,id不允许重复 注3:动物信息是指类似下面的信息: ID:3、老虎、白色、雌、370000购买、2012-3-28入园

1.字符串解析,现有一字符串,“卡巴斯基#杀毒软件#免费版#俄罗斯#”,解析出每个元素。 2.现有如下学生参加学校运动会 shxt_0712 shxt_0704 shxt_0715 shxt_0504 shxt_0602 shxt_0711 shxt_0607,统计扬天7有多少人参加比赛。 3.有一身份证号,判断此为男还是女,基于此方法,写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位) 4.有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。 5.一个班级的学生成绩存在长度为10的数组里,计算不及格的有几个。 6.有一个数组,将数组里的数据逆序存储。 7.数组里有10条记录,分别是10个学生的期末语文成绩,要求把所有低于60分的记录改成不及格。 8.用户输入学号,如果是以shxt_开头,并且后边是4位数字,前两位大于06小于等于当前年份。判断用户输入是否合法。shxt_0801 选作: 9.有一个数组,存了10个学生的名字,现要求将这些名字按字典排序存在数组里。(名字都是英文) 10.有一个数组存储一个班级所有学生的姓名,其中有一个叫张三的学生退学,要求删除该学生。(后边的前置) 11.如下字符串,01#张三#20*02#李四#30*03#王五#4,解析每个人分数多少。样式如下: 01 张三20 02 李四30 03 王五40。并且计算总分。 1.本程序找出字符串数组 arr[]={“welcome ”,”china”,”hi”,”congratulation”,”great”}中的长度最大的元素,并打印输出。 2.用户输入一个字符串,判断是不是exit,如果不是,则继续让用户输入。如果是,程序退出。 3.用户输入一个字符串,如果是以a开头,则输出这个字符串一次,如果以b开头,则输出2次。如果是以exit开头,则退出。 4.用户输入一个字符串,如果以a结尾,则认为是合法字符串,否则为非法字符串,提示用户重新输入。

java基础笔试题(答案已整理)

Java基础试题 一:选择题(1*30=30)(题目写在答题纸上面) 1:Java 提供哪几种运算符多选( abcd )。 A)算术运算符B)位运算符 C)关系运算符D)逻辑运算符E)条件运算符 2:https://www.doczj.com/doc/f411206255.html,ng包的()方法比较二个对象是否相等返回true.。(b) A:toString() B:equals() C:compare D:以上都不正确 3:下列对Java 的变量与函数说法正确的是多选(ace )。 A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的E)函数的参数是数据的入口 4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。(d) A:a[0] B:a[1] C:a[99] D:a[100] 5:在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。这种面向对象程序的特性称为。(c) A:隐藏B:覆盖C:重载D:Java不支持此特性 6:()是一组常量和抽象方法的集合。(d) A:实例B:类C:包D:接口 7:下面关于数组说法正确的是多选(abcde)。 A)一维数组实质上是相同类型变量的列表 B)创建一个数组首先定义数组变量所需的类型 C)char c[]=new char[26];可声明一个含有26 个元素的char型数组 D)当为一个多维数组的时候分配内存时,仅需要为第一指定内存,然后再分配其他维的存E)int twain[][] = new int[4][5];可声明一个二维数组 8:Java源文件和编译后的文件扩展名分别为。(b) A:.class和.java B:.java各.class C:.class和.class D:.java和.java 9:设x=5;则y=x--和y=--x的结果,使y分别为。(c) A:5,5 B:5,6 C:5,4 D:4,4 10:若x是float类变量,x=10/4;则x 的值是。(b) A:2 B:2.0 C:2,5 D:编译错误 11:.下面方法中,用于调度线程使其运行的是?多选(bc ) A. init() B. start() C. run() D. resume() E. sleep() 12.下面哪种情况能实现自动转换多选(ace )。 A)byte 型转换成int 型B)int 型转换成byte 型 C)float 型转换成double型D)double 型转换成int 型E)char型转换成int 型 13:下列那些是正确的JAVA字符串?多选(abd )。 A. "\"\"" B. "Oxzabc" C. "\"\" D. "\t\t\r\n" E. "boolean"5 14:在使用super 和this关键字时,以下描述正确的是。(a) A::在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B:super()和this()不一定要放在构造方法内第一行

Java入门基础代码

例1-1 DoubleVariableDemo.java class DoubleVariableDemo{ public static void main(String args[]){ double dRadius=2.0d; double dArea=Math.PI*dRadius*dRadius; System.out.println("半径为2的圆的面积:"+dArea); } } 例1-2 BooleanConstantDemo.java class BooleanConstantDemo{ public static void main(String args[]){ final boolean BFLAG=true; if(BFLAG) System.out.println("Always Print Out Me!"); else System.out.println("Never Print Out Me!"); } } 例1-3 DecisionDemo.java class DecisionDemo{ public static void main(String args[]){ short x=1,y=2,z; // 错误代码 // z = x + y; // 正确代码 z=(short)(x+y); System.out.println(z); } } 例1-4 IntegerConstantDemo . java class IntegerConstantDemo{ public static void main(String args[]){ final byte nMaxValue_1=100; final short nMaxValue_2=200; final int nMaxValue_3=300; final long nMaxValue_4=400; System.out.println("整数常量的nMaxValue_1值"+nMaxValue_1); System.out.println("整数常量的nMaxValue_2值"+nMaxValue_2); System.out.println("整数常量的nMaxValue_3值"+nMaxValue_3); System.out.println("整数常量的nMaxValue_4值"+nMaxValue_4); // nMaxValue_1 = nMaxValue_1 + 1; 不能更改常量的值

java基础练习题

1) 以下关于Java语言说法错误的是()。(选择两项) a) Java语言是一种OO语言,Java API是Java语言的帮助文档 b) Java语言具有平台无关性-Write Once,Run Anywhere c) Java语言的核心是Java Virtual Machine d) 使用Java语言,程序员要使用原始方法分配和释放内存空间 e) Java语言是一种编译执行语言 知识点: 第一章Java语言基础Java语言基本概念 2) 以下哪一项不是Java的关键字(b)。(选择一项) a) if b) then c) goto d) case e) while 知识点: 第二章Java编程基础Java中的关键字 3) 下列(a,e)不是合法的Java语言标识符。(选择两项) a) 2variable b) variable2 c) _whatavariable d) $anothervar e) #myvar f) _3_ 知识点: 第二章Java编程基础Java中的标识符 4) 执行下列代码段后,变量x的值是(c)。(选择一项) x=9; y=9; x=(y<=x++)?1:0; a) 1 b) 2 c) 0 d) 10 知识点: 第二章Java编程基础三元运算符 5) System.out.println(4 | 7);上面语句的输出结果是(d)。(选择一项) a) 4 b) 5 c) 6 d) 7 e) 0 知识点: 第二章Java编程基础位运算符 6) 以下会产生编译错误的Java语句是(b)。(选择一项) a) if (2 == 3) System.out.println("Hi"); b) if (2 = 3) System.out.println("Hi");

java基础笔试测试题与答案

Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

《Java基础入门》-课后习题答案--1-6

第1章Java开发入门 一、填空题 1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运 行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java程序!"); } } 第2章Java编程基础 一、填空题 1、class 2、true和false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、1、2、4、8 6、& && | || 7、0 8、5 9、34 10、56 二、判断题 1、错 2、对 3、错 4、对 5、错

JAVA入门练习50题(含答案)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 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); } }

Java基础习题

Java基础习题(附答案)1 1.下列语句序列执行后,m 的值是( C)。 int a=10, b=3, m=5; if( a==b ) m+=a; else m=++a*m; A) 15 B) 50 C) 55 D) 5 2.下列语句序列执行后,k 的值是(B )。 int i=4,j=5,k=9,m=5; if(i>j||mj||m

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

Java练习题

Java练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet( Java Application、 Java Applet)。 3、安装JDK后,Java开发工具在Bin目录。 4、声明接口的保留字是interface。 5、类的声明“public class Test extends Applet implements Runable{}”中,定义的类名是Test ,其父类 是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java(写出包括扩展名的文件名)。 6、一个完整的Java应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名 为main的方法 7、JDK下解释执行Java的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1中的元素有10个;c2中的元素有10个;已初始化赋值的是c2(c1 c2)。

9、执行完下列程序后i的值为5。 int i=0; while(i<5) { i++; } 10、运行下列程序段后,结果c的取值为120。 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java中已提供的类,我们需要用import语句来引入所需要的类。语句import java.io.*;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B、final C、abstract D、private 2、对成员的访问控制保护最强的是(C)。

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

java基础练习题

1.编写一个完整的Java Application 程序。包含接口ShapeArea,MyRectangle类及Test类,具体要求如下: (1)接口ShapeArea: double getArea():求一个形状的面积 double getPerimeter ():求一个形状的周长 (2)类 MyRectangle: 实现ShapeArea接口,另有以下属性和方法: ①属性 width: double类型,表示矩形的长 height: double类型,表示矩形的高 ②方法 MyRectangle(double w, double h):构造函数 toString()方法:输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0” (3)Test类作为主类要完成测试功能 ①生成MyRectangle对象 ②调用对象的toString方法,输出对象的描述信息 2.编写一个完整的Java Application 程序,包括ShapeArea接口、MyTriangle类、Test类,具体要求如下: (1)接口ShapeArea: double getArea():求一个形状的面积 double getPerimeter ():求一个形状的周长 (2)类MyTriangle: 实现ShapeArea接口,另有以下属性和方法: ①属性 x,y,z: double型,表示三角形的三条边 s: 周长的1/2(注:求三角形面积公式为,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法) ②方法 MyTriangle(double x, double y, double z):构造函数,给三条边和s赋初值。 toString():输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0” (3)Test类作为主类要完成测试功能 ①生成MyTriangle对象 ②调用对象的toString方法,输出对象的描述信息 3. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上 5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。试使用java类写出其加密的过程。 4. 分页显示练习:定义一个常量,设定数据总记录数为73条(随时可以变化),一页20条记录(随时可以变化), 输入页码,打印记录总数,共几页,当前是第几页,当前记录从第n条到第n条 5. 输入一个数字,判断是一个奇数还是偶数 6. 将分页显示的功能增加判断,如果用户输入的小于1的页码,自动赋成1,如果超出了总页码,自动赋成总页码 7.判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被

精选-java基础习题及答案

程序设计—基础篇习题 1.作图. 2. 输出101--500之间的所有奇数,奇数之和. 3. 输出100--200间不能被3整除的数. 4. 输入初值 ,输出100个不能被3整除的数. 5. 求S=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值. 6. 设S=1*2*3*...*n,求S不大于400000时的最大n. 7. 设S=11*22*33*...*n n,求S不大于400000时的最大n. 8. 找出1~1000间的全部”同构数”.如果一个数出现在其平方数右端,则称此数为同构数,如1在12=1的右端,5在52=25的右端,25在252=625的右端等. 9. 百鸡问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?” 10.利用一维数组,统计一个班学生0-9,10-19,..90-99及100各分数段的人数.

11.插入法排序.排序方法: 设有10个数存放在数组A中,分别用A[1],A[2],..,A[10]表示. 先将A[1]与A[2]比较,若A[2]j) System.out.print(" "); else if(i<=j&&j-i<=7) System.out.print("*"); } System.out.println(); } } } (2) public class Ex1_2 { public static void main(String[] args){ for(int i=1;i<=5;i++) { for(int j=1;j<=16;j++) { if(i>j) System.out.print(" ");

Java基础试题和答案解析

Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项) a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 5) 在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型(选择一项) a)jFrame.setLayout(new FlowLayout() ); b) jFrame.addLayout(new FlowLayout() ) c)jFrame.setFlowLayout() d)jFrame.addFlowLayout() 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList

适合java入门学习的书籍推荐

适合java入门学习的书籍推荐 作为Java初级学习者而已,最痛苦的事情莫过于想要学好java,但是面对市场上纷繁的java学习书籍,往往容易感到无所适从。牛耳教育就java学习体系流程方面为大家挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java爱好者们。 一、Java编程入门类 1、《Java编程思想》 2、《Agile Java》中文版 二、Java编程进阶类 1、《重构改善既有代码的设计》 这本书名气很大,不用多介绍,可以在闲暇的时候多翻翻,多和自己的实践相互印证。这本书对产生影响是潜移默化的。 2、《测试驱动开发 by Example》 本书最大特点是很薄,看起来没有什么负担。可以找一个周末的下午,一边看,一边照做,一个下午就把书看完,这本书的所有例子跑完了。这本书的作用是通过实战让你培养TDD的思路。 三、Java架构师之路 到这个阶段,应该已经非常娴熟的运用Java编程,而且有了一个良好的编程思路和习惯了,但是可能还缺乏对应用软件整体架构的把握,现在就是迈向架构师的第一步。 1、《Expert One-on-One J2EE Design and Development》 这本书是Rod Johnson的成名著作,非常经典,从这本书中的代码诞生了springframework。但是好像这本书没有中译本。 2、《Expert One-on-One J2EE Development without EJB》 这本书由gigix组织翻译,多位业界专家参与,虽然署名译者是JavaEye,其实JavaEye出力不多,实在是忝居译者之名。

java程序练习题

练习: 1.为类设计一个静态方法,实现检查输入字符串是否为”回文”.的功能 Boolean IsPalindrome(String poem) 2.用随机数对象产生0---1000范围内的不同整数,用以初始化一个M*N的二维数组(M*N<100),然后编程找出二维数组中的最大数和最小数,并将其交换位置。要求输出原始二维数组及交换后的二维数组。 3.设计一个类,并为其添加一个带有一个参数的构造函数,同时封装一个方法。当连续调用该方法时,依次产生下列元素输出 第一次调用输出:5 7 4 8 9 1 第二次调用输出:1 5 7 4 8 9 第三次调用输出:9 1 5 7 4 8 第四次调用输出:8 9 1 5 7 4 第五次调用输出:4 8 9 1 5 7 第六次调用输出:7 4 8 9 1 5 第一次调用输出:5 7 4 8 9 1 4.输入出租车公里数,输出应付的车费数: 收费标准如下:3000米以下为8元,每超过500米增加1.2元,不足500米按500米计算。 5.竹竿长10米,每天截取一半,过多少天后,竹竿长度会小于10厘米。 6.输入一个英文字符串,统计出其中各字符出现的次数,并以下列样式输出: a=?,b=?,c=?,d=?,e=? f=?,g=?,h=?,i=?,j=? …… 7.写一个实例方法,要求输入一个整数m ,并输出1---m之间满足下列条件的所有整数:这个数+1 是一个完全平方数,他的一半+1也是一个完全平方数。 8.设计一个类Complex,用于封装对复数的下列操作: 8.1.一个带参数的构造函数,用于初始化复数成员 8.2.一个不带参数的构造函数,调用代参数的构造函数完成对复数成员的初始化。 8.3. 实现两个复数的加法,减法的静态方法和实例方法。 8.4.以复数的标准形式:x+iy输出此复数 8.5. 写两个函数,分别获得复数的实部getReal(),getImage()和虚部。 9.写一个静态函数,返回给定整数n的所有因子 10.输入一个十六进制字符串,写一函数,将其转换为对应的十进制数。 11.设计一个只能创建一个唯一实例的类。 12.设计一个类,该类用于表示现代中国的一个典型家庭:father,mother,child. 并为其添加一个无参的构造函数和带三个参数的构造函数以及三个读写属性和 一个get(int member )方法,当member=FATHER时,返回 父亲的姓名;member=MOTHER时,返回母亲的姓名;member=CHILD时,返回 孩子的姓名;FATHER,MOTHER,CHILD 为常数。 13.巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时,试编写一程序, 根据输入的北京时间输出相应的巴黎和纽约时间。 14.写一函数,实现用某一字符c 去填充字符串的左部,使其长度为恰好为L PadLeft(String s,int L,char c),同理,实现PadRight((String s,int L,char c) 用字符c 填充串s 的右部,使其长度恰好为L. 15. 写一方法,用于删除字符串中所有空格(不仅仅是两端的空格),并返回没有空格的字

JAva基础期末考试试卷

一、填空题 1、面向对象的三大特征是______、______和______。 2、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用______关键字。 3、编译Java程序需要使用______命令。 4、如果子类想使用父类中的成员,可以通过关键字______引用父类的成员。 5、在Java语言中,所有的类都直接或间接继承自______类。 6、定义一个Java类时,如果前面加使用______关键字修饰,那么该类不可以被继承。 7、String类中用于返回字符串字符个数的方法是_____。 8、若x = 2,则表达式( x + + )/3 的值是______。 9、定义在类中的变量被称为______,定义在方法中的变量被称为______ 10、若int a[3][2]={{123,345},{34,56},{34,56}},则a[2][1]= ______。 二、选择题 1、先阅读下面的程序片段: String str = "abccdefcdch"; String[] arr = str.split("c"); System.out.println(arr.length); 程序执行后,打印的结果是几? A、2个 B、3个 C、4个 D、5个 2、以下关于变量的说法错误的是? A、变量名必须是一个有效的标识符 B、变量在定义时可以没有初始值 C、变量一旦被定义,在程序中的任何位置都可以被访问 D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声 明 3、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字? A、inherits B、implements C、extends D、modifies 4、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问? A、public B、protected C、private D、defaul 5、关于super关键字以下说法哪些是正确的?(多选) A、super关键字可以调用父类的构造方法 B、super关键字可以调用父类的普通方法 C、super与this不能同时存在于同一个构造方法中 D、super与this可以同时存在于同一个构造方法中 6、已知类的继承关系如下: class Employee; class Manager extends Employeer; class Director extends Employee; 则以下语句能通过编译的有哪些? A、Employee e=new Manager(); B、Director d=new Manager(); C、Director d=new Employee(); D、Manager m=new Director(); 7、String s = "abcdedcba";则s.substring(4,5)返回的字符串是以下选项中的哪个? A、cd B、de C、d D、e 8、关于抽象类的说法哪些是正确的?(多选) A、抽象类中可以有非抽象方法。

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