第二次Java作业--计科1501李俊

1.(1)学习使用Eclipse关联jdk源代码
点击项目-属性-Java构建路径-库-JRE系统库-rt.jar-源代码连接-编辑“源代码连接”-设置“外部文件”的路径为JDK安装路径下的src.zip

String类的equals()方法

equals方法和==的区别

"=="是用来进行数值比较的,无法进行字符串的比较,而str2和str3所指的地址相同,地址值相同,所以str2=str3;
而equals是用来判断字符串的内容,在equals()方法中比较说明了这一结论。
2.构造方法
在对象实例化时直接把对象的值赋值给属性的一种简单方法,在面向对象程序中构造方法的主要作用是为类中的属性值初始化。

构造方法的重载 :每个构造方法的参数类型或参数个数不同构造方法就可以重载

程序不可以通过编译,因为构造方法中有一个整型参数,而主函数调用构造方法时传递参数
3.运行下列程序,结果是什么?查阅资料,分析为什么。

public class Test {
    public static void main(String args[]) { 
        double a = 0.1;
        double b = 0.1;
        double c = 0.1;
        if((a + b + c) == 0.3){
            System.out.println("等于0.3");
        }else {
            System.out.println("不等于0.3");
        }
    }     
}

结果是 不等于0.3
原因是:double类型为浮点型不能精确计算结果。计算机是二进制的,浮点数无法用二进制精确表示 应该用BigDecimal类精确计算。参考书上378和379页修改后的程序为

import java.math.BigDecimal;

public class Text {
    public static void main(String args[]) {
    	BigDecimal bi1=new BigDecimal("0.1");
    	BigDecimal bi2=new BigDecimal("0.1");
    	BigDecimal bi3=new BigDecimal("0.1");
         if(bi1.add(bi2).add(bi3).doubleValue()==0.3){
    		System.out.println("等于0.3");
    	}
    	else {
    		System.out.println("不等于0.3");
    	}
    }
}

4.运行下列 程序,结果是什么?分分 析原因,应如何修改.

public class Test {
    public static void main(String[] args) {
        MyClass[] arr=new MyClass[3];
        arr[1].value=100;
    }
}
class MyClass{
    public int value=1;
}

运行的结果

运行不出结果,应该是数组中没有值。
5.在一个10000次的循环中,需要进行字符串的连接操作,那么,应该使用String类还是StringBuffer类,为什么?性能有差异吗?能否写出测试代码证明你的结论。
String对象是不可改变的。每次使用System.String类都要在内存中创建一个新的字符串对象,就需要对新对象分配内存空间,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提高速度。
string类的:

public class Stringlei {
	public static void main(String args[]){
		String str1="thisismyfirstworld!!";
		for(int i=0;i<10000;i++){
			str1+=1;
		}
		System.out.println(str1);
	}
}

stringBuilder类的:

String里的内容不能更改,而对于频繁修改字符串内容的的程序,最好使用StringBuffer类完成;

(二)实验总结
1.评分系统:一共10个评委,满分10分,假设有5个选手,分别由评委打分,去掉一个最高分和一个最低分后的平均分为该选手得分,将选手的得分从高到低进行输出。定义适当的方法。我只写了这一道题,但是还没有改完,在编程时总是习惯把所有的都放到一个类里,在参考了书上的方法和舍友的帮助后,还差一些输出语句,试验的设计思路:是五个参赛人员内用循环分别输入评委的评分,然后在代码块中构造最高分,最低分和平均分,将平均分放置在score数组中,再将数组从大到小排列。

(三)代码托管(务必链接到你的项目)
•码云commit历史截图(https://git.oschina.net/hebau_cs15/hebau-cs01LJ1.git)
上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

posted @ 2017-03-28 13:05  计科1501LJ  阅读(147)  评论(0编辑  收藏  举报