java作业2

java作业String和数组类

1.学习总结

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


运行结果

由运行结果可以看出equals方法是判断两个字符串的内容是否相同,而==是判断两个字符串的首地址是否相同。

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

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

构造方法:
1.? 它不含返回值;
2.? 它不能在方法中用 return 语句返回一个值;
3.? 当自定义了构造方法后,编译器将不再自动创建不带参数的构造方法 。
4.? 在构造方法里不含返回值的概念是不同于 “void” 的,在定义构造方法时加了 “void” 5.,结果这个方法就不再被自动调用了
构造方法的重载:
构造方法的名称必须与类的名称一致,重载就是构造方法的参数个数不确定。
如上图所示程序,不能通过编译,因为类中所声明的构造方法参数个数有1个,而主函数中参数个数为0.

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声明一个数,相加的时候会造成精度的损失。应该改成如下程序:

其结果等于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类连接字符串,本质上还是调用Stringbuffer方法,每进行一次连接,就会创建一个stringbuilder对象,而用stringbuffer类中的append方法,可以缩短时间,测试如下:

此程序运行的时间为0.415s,

此程序运行的时间为0.05s。
由此看出,需要次数非常多的连接是,最好使用string buffer方法。

2.实验总结

(1)评分系统
程序设计思路:
先创建一个二维数组,依次把各个选手的得分输进去,然后调用求平均值的函数,把五位选手的平均分存在一个数组中,然后将数组中的数据进行排序。
(2)email验证
程序设计思路:
首先以字符串的形式输入邮件,然后调用decide函数,此函数的作用是根据所约束的条件判断邮件是否合法。
问题一:如何知道字符出现的先后顺序?
解决方案:建立两个初值为-1的index值,在扫描的过程中,如果碰到需要找到的字符,就把他的数组下标记下来,然后对数组下标进行比较。
(3)统计文件
程序设计思路:
输入各种文件,然后按照“,”将各个类型的文件分开,获取每个文件的后缀,将后缀名存在一个字符串数组里,通过比较,就可以知道每个文件出现的次数。
(4)身份证验证
程序设计思路:
身份证上的每一位数字都代表着不同的含义,通过分离身份证上的数,就可以知道这个人的信息。
问题:如何把字符串上的字符变为整形,从而可以调用二维数组?
解决方案:利用包装类的方法,先把这个数字截取下来,然后在使用 Integer.valueOf(String str)方法,变为整形。

(三)代码托管(务必链接到你的项目)


链接:
https://git.oschina.net/hebau_cs15/hebau-cs02wzt/tree/master

posted on 2017-03-25 12:18  子腾  阅读(217)  评论(1)    收藏  举报

导航