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);
}
}
2
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;
}
4
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]);
}
}
}
- Java自测试答-欢迎指正
- 欢迎指正
- Java容器简介-欢迎大佬指正
- Java中static的陋见(欢迎指正、补充)
- 才疏学浅,真诚欢迎指正!
- 热心同学欢迎指正
- 欢迎交流指正
- 各种猥琐的Java笔试/面试题目的答案(这是我自己测试得出的答案,如有不对的欢迎批评指正)
- 答一位网友的hostapd问题,欢迎各位指正
- 自加自减运算符的错误使用和理解【个人学习笔记,如有错误欢迎指正】
- 3G模块的调试,测试和产品量产的关系(欢迎指正)
- RequisiteWeb的理解,欢迎指正
- json + ajax + jQuery 欢迎指正
- 剑指Offer20题顺时针打印矩阵(欢迎批评指正)Java版
- 初学Java 请指正
- Spring MVC的流程图,欢迎指正
- Spring MVC的流程图,欢迎指正
- 如此计算,是否合理,欢迎指正
- servlet目录结构
- 称重系统就是连接仪表串口,读取仪表发送的重量数据,保存就可以了嘛
- 儿童言语障碍治疗
- linux 重定向命令
- 三五个人十来条枪
- Java自测试答-欢迎指正
- Windows CE中的进程和线程
- CM framework design and implementation
- +++++++
- 程序访问物理地址之MmMapIoSpace 与 OALPAtoVA
- 程序员不成熟的若干个特征
- 笑话,
- 对所有想学SEO的一句话--小集喔SEO记录28
- c#控制台输出到form