Java自测试答-欢迎指正

来源:互联网 发布:服务器开启3306端口 编辑:程序博客网 时间:2024/06/14 20:41

 

一 判断题

1 对

2 错

3 错

4 对

5 对

6 错

7 错

8 错

9 错

10 错

 

二 简答题

1 解释型

 

2 void一般用在方法没有任何返回值的情况。null,空,如声明一个对象,但并未对其实例化,这

 

时其即为null。

 

3 类是Java这种面向对象编程语言中的概念,类是属性和方法的封装。

  类库是一系列类的集合,可以是JDK自带的类库,也可以是外部添加的类库,目的是为了更加方

 

便编程。

  一般Java项目的开发过程,整个项目是包的形式,包包括各种类、所用到的资源、用到的类库(

 

也可以是导入的外部类库)。

  Jar文件是Java平台下的一种压缩文件,包可以被打包成Jar,类也可以被打包成Jar,类库也可

 

以。

 

4 “对象之间发送消息”

   对象之间的交互是通过消息传递的方式。而具体来讲又可以分为大概这几种情况:

   一 方法(或函数)相互调用;

 

   二 一个对象使用另外一个对象的属性;

 

   三 两个对象共享某资源,实现交互。

 

   如

   public class A{

       public void methodInA(){

B b = new B();

                b.methodInB();

                b.signal;

                //其他

       }

       public static void main(String[]args){

                new A().methodInA();

       }

   }

   public class B{

       public static int signal;

       public void methodInB(){

                //

       }

    }

 

   对于第三点,例如以数据库为中心的应用。

 

5 装箱与拆箱

 

6 举个例子

 举一个具体的例子来说明,我们要把1到100的所有数字拼起来,组成一个长字符串

StringBuffer sbf = new StringBuffer();  

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

{

sbf.append(i);

}

上面的代码效率很高,因为只创建了一个StringBuffer对象,而下面的代码效率很低,因为创建了

 

101个对象。

String str = new String();  

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

{

str = str + i;

}

 

7 能

 

8 1001/10是整数相除,得到的是100,再转换成100.0

 

9 因为Exception是其他所有异常的父类。如果放在前面,那所有的异常都被它被捕获,它后面的

 

catch代码块就永远不会被执行,就没意义了。

 

10 第一段为true,是因为比较的是的值(内容)。

   第二段为false,是因为比较的是两个String对象的内存地址。

 

三 编程题

 

1. (似乎有一种更简便的方法是用递归)

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Stack;

 

public class Test {

public static StringBuffer reverse(String str){

if(str==null){

System.out.println("非法输入");

return null;

}

Stack<Character> stack = new Stack<Character>();

int i;

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

stack.push(str.charAt(i));

}

StringBuffer sb = new StringBuffer();

while(!stack.isEmpty()){

sb.append(stack.pop());

}

return sb;

}

public static void main(String[]args) throws IOException{

System.out.println("请输入一个字串:");

BufferedReader br = new BufferedReader(new InputStreamReader

 

(System.in));

System.out.println("你输入了:" + reverse(br.readLine()));

}

 

}

 

递归方法

int index = 0;

public void reverse(String in){

char ch = in.charAt(index);

        index++;

        while(ch != '/0'){

              reverse();

              System.out.println(ch);

         }

}

 

 

public static void caculate(int[] arr){

if(arr==null || arr.length==0){

System.out.println("参数错误,返回");

return;

}

double sum = 0;

double ave = 0.0;

int max = arr[0];

int min = arr[0];

int i;

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

sum += arr[i];

if(arr[i]>max){

max = arr[i];

}

if(arr[i]<min){

min = arr[i];

}

}

ave = sum/arr.length;

System.out.println("平均值是" + ave + ", 最大值是" + max + ", 最小值是" + min);

}

 

 

3

public static int[] getRandomizeNumbers(int begin, int end, int count){

int[] rs = new int[count];

int i;

for(i=0;i<count;i++){

rs[i] = (int)(Math.random()*((int)Math.abs(end-begin))) + 

 

((end>begin)?begin:end);

}

return rs;

}

 

public class Complex{

        int real;

        int virtual;

public Complex(int i, int j){

real = i;

                virtual = j;

        }

public String toString(){

                return real+"+"+virtual+"i";

        }

}

 

5 深浅拷贝

 

6

public class InvalidScoreException {

 

public void handle(String input){

             int temp = 0;

             try{

                  temp = Integer.parseInt(input);

             }catch(NumberFormatException nfe){

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

                return;

              }

 

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

                 System.out.println("输入的数字不在要求范围内");

             }

 

}

}

 

7 我猜主要考虑枚举类型(可以用静态变量替代)和并发

public class SimpleObject {

private static String state;//对象的状态

private static String createState = "Created";

private static String openState = "Opened";

private static String closeState = "Closed";

public SimpleObject(){

//

state = createState;

}

public void opened(){

synchronized(state){

state = openState;

}

}

public void closed(){

synchronized(state){

state = closeState;

}

}

public String getState(){

synchronized(state){

return state;

}

}

}

 

8

Book.java

 

public class Book {

private String author;

private boolean isBorrowed;

private String name;

private double price;

public Book(String name, String author, double price){

this.name = name;

this.author = author;

this.price = price;

}

public String getAuthor() {

return author;

}

public void setAuthor(String author) {

this.author = author;

}

public boolean isBorrowed() {

return isBorrowed;

}

public void setBorrowed(boolean isBorrowed) {

this.isBorrowed = isBorrowed;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public String toString(){

String state = null;

if(this.isBorrowed){

state = "借出";

}

else{

state = "可借";

}

return this.getName() + ", " + this.getAuthor() + ", " + 

 

this.getPrice() + ", " + state;

}

 

}

 

Library.java

import java.util.ArrayList;

 

 

public class Library {

private static ArrayList<Book>  Books = new ArrayList<Book>();

public void add(Book book){

Books.add(book);

}

public Book[] findBook(String bookName){

ArrayList<Book> temp = new ArrayList<Book>();

int i;

for(i=0;i<Books.size();i++){

if(Books.get(i).getName().equals(bookName)){

temp.add(Books.get(i));

}

}

Book[] books = new Book[temp.size()];

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

books[i] = temp.get(i);

}

return books;

}

public Book[] GetAllBooks(){

Book[] books = new Book[Books.size()];

int i;

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

books[i] = Books.get(i);

}

return books;

}

public static synchronized void update(Book book, boolean isBorrow){

int i;

for(i=0;i<Books.size();i++){

if(Books.get(i).equals(book)){

Books.remove(i);

book.setBorrowed(isBorrow);

Books.add(book);

}

}

}

 

}

 

Reader.java

 

public class Reader {

private String Name;

public Reader(String name){

Name = name;

}

 

public String getName() {

return Name;

}

 

public void setName(String name) {

Name = name;

}

public void BorrowBook(Book book){

Library.update(book, true);//true表示是借书

}

public void ReturnBook(Book book){

Library.update(book, false);//false表示是还书

}

}

 

Test.java

 

public class Test {

public static void main(String[]args){

Library lib = new Library();

Book book1 = new Book("Java程序设计", "张三", 45);

Book book2 = new Book("Java核心技术", "李四", 50);

Book book3 = new Book("Java程序设计", "王五", 38);

lib.add(book1);

lib.add(book2);

lib.add(book3);

Book[] allBooks = lib.GetAllBooks();

int i;

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

System.out.println(allBooks[i]);

}

System.out.println("___________________________________________");

Reader girlReader = new Reader("oneBeautifulGirl");

girlReader.BorrowBook(book1);

Book[] newBooks = lib.GetAllBooks();

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

System.out.println(newBooks[i]);

}

System.out.println("___________________________________________");

girlReader.ReturnBook(book1);

Book[] nowBooks = lib.GetAllBooks();

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

System.out.println(nowBooks[i]);

}

 

}

 

}

 

 

 

 

原创粉丝点击