• 第二次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”,设置搜索时间段,搜索本周提交历史,并截图。

  • 相关阅读:
    CSS同时选择器
    create-react-app之proxy
    mysql limit语句
    给tbody加垂直滚动条的具体思路
    MySql数据类型范围
    block、inline、inline-block
    javascript sourcemap
    session of express
    React中innerHTML的坑
    box-sizing
  • 原文地址:https://www.cnblogs.com/junjun137/p/6622714.html
Copyright © 2020-2023  润新知