Java第二次作业——数组和String类

Java第二次作业——数组和String类

(一)学习总结

1.学习使用Eclipse关联jdk源代码,查看String类的equals()方法,截图,并学习其实现方法。举例说明equals方法和==的区别。


equals方法主要是针对字符串的比较,而==则是针对int型的数据进行比较。

2.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?

(1)构造方法就是构造一段可重复调用的代码段;

(2)构造方法的重载指的是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型的不同可以完成不同功能的方法调用;构造方法和其他一样也可以是用重载。

(3)

public class Test {
    public static void main(String args[]) { 
       Foo obj = new Foo();       
    }     
}
class Foo{
    int value;
    public Foo(int intValue){
        value = intValue;
    }
}

不可以通过编译,在主函数中,构造的方法Foo()中,并没有int型参数。

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");
        }
    }     
}

结果为不等于3。
原因:double或float精度问题,十进制数的二进制表示形式可能不精确。

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;
}

结果:错误
原因:只声明了数组,并未对数组初始化
修改:

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

5.在一个10000次的循环中,需要进行字符串的连接操作,那么,应该使用String类还是StringBuffer类,为什么?性能有差异吗?能否写出测试代码证明你的结论。(可查阅资料)

应该使用StringBuffer类。
通过查询资料。知道String类是不可变的,每次对其改变都要创建新字符串对象,在循环中循环次数越多效率越慢;而StringBuffer类使用append等方法改变字符串的值,所以是用StringBuffer更好。

(二)实验总结

1.评分系统:一共10个评委,满分10分,假设有5个选手,分别由评委打分,去掉一个最高分和一个最低分后的平均分为该选手得分,将选手的得分从高到低进行输出。定义适当的方法。

设计思路:
利用循环将选手成绩输入,判断最大最小值,并用总值减去最大最小值,用计算后的值除七算出平均值,再利用循环排序选手得分

2.Email验证:在各种应用中,需要对用户输入的email地址进行验证,编写一个方法,判断一个email地址是否有效。(判断条件:A:@和.同时存在 B: @在.之前 C: 不能@开头 D: 以com|cn|net|gov|edu|org结尾 )

设计思路:

if(str.indexOf("@")==-1||str.indexOf("@")==0)
if (str.indexOf(".")==-1)

来判断是否含有@和.

if(str.startsWith(""))
if(str.endsWith("")))

来判断开头和结尾

(三)代码托管

https://git.oschina.net/hebau_cs15/java-cs01fs.git

posted @ 2017-03-28 15:38  爱学习的小朋友  阅读(288)  评论(0编辑  收藏  举报