博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java技术第二次作业
阅读量:5343 次
发布时间:2019-06-15

本文共 3369 字,大约阅读时间需要 11 分钟。

《Java技术》第二次作业

(一)学习总结

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

java.lang.String.equals() 方法比较字符串与指定的对象。其结果是true当且仅当参数不为null,并且是一个String对象,这个对象表示相同的字符序列声明

声明java.lang.String.equals()方法
public boolean equals(Object anObject)

equals()方法与==的区别,equals()方法比较的是字符串的内容,而==比较的是字符串存储的地址参数,此方法返回true如果给定对象代表一个字符串,这个字符串,否则返回false

实例

下面的例子显示使用的java.lang.String.equals()方法

package com.pieryon;  import java.lang.*;public class StringDemo { public static void main(String[] args) {String str1 = "sachin tendulkar";String str2 = "amrood admin";String str3 = "amrood admin";// checking for equalityboolean retval1 = str2.equals(str1);boolean retval2 = str2.equals(str3);// prints the return valueSystem.out.println("str2 is equal to str1 = " + retval1);System.out.println("str2 is equal to str3 = " + retval2);        }}

编译和运行上面的程序,这将产生以下结果:

str2 is equal to str1 = false
str2 is equal to str3 = true

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

  1. 构造方法与类名相同,没有返回类型,在类初始化时调用,为类中的属性初始化。

  2. 构造方法的重载与方法的重载相同,方法名称相同,参数类型或个数不同,用于完成不同功能.
    public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo(int intValue){ value = intValue; } }
  • 不能通过编译,原因是在有参构造方法中没有传递一个参数,应该在Foo obj = new Foo()中添加一个参数,如:Foo obj = new Foo(10);

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”

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类。

因为Strin类表示字符串常量且内容和长度不能修改但是StringBuffer类表示字符变量且内容和长度可以被修改,效率更高
Strin类
1079918-20170328123824748-1977420689.png
StringBuffer类

(二)实验总结

1.评分系统

  • 程序设计思路:首先声明整型数组grade,为整型数组grade分配内存空间,其元素个数为5,grade为评委打分。运用循环输入每个选手的所有分数。然后求分数中的最大值,最小值。总数减去最大值最小值求平均分。再将分数总和减去最大值最小值除以4得出平均分,存到另一个数组中,最后将平均分排序倒序输出。
  • 实验问题分析:
    问题1:输出的数组排序不正确
    原因:不会运用java的数组排序
    解决方案:Arrays.sort(avgl);
    问题2:后面排序数组的时候,数组没有识别
    原因:数组定义在了上一个循环的里面的
    解决方案:将数组的定义放在循环外面。
    2.邮箱验证
  • 程序设计思路:输入一串字符串,用if语句进行判断
    实验问题分析:
    问题1:判断条件没有实现?
    原因:判断条件出现问题
    解决方案:if (cond1 != 0 && cond2 != 1&& cond2 != 0 && cond1 < cond2 && cond1 != 0){
    /如果cond1值为-1,说明@不存在;如果cond1值为1,说明@开头;如果cond1 < cond2,说明 @ 在 . 的前面/

3.身份证验证

程序设计思路: 把省市放在一个二维数组中,截取身份证号的前两位存放到数组中,输出数组中对应的省份;,截取出生日期按要求输出;用第17位和2求余,结果余0为女生,余1为男生。
实验问题分析:
问题1:输出不了年月日
原因:类型不对
解决方案:强制转换int a=Integer.parseInt(strsex);
问题2:不会判断省份
原因:不会使用二维数组
解决方案:`
String x[][]= {
{"北京市","天津市","河北省","山西省","内蒙古"},
{"辽宁省","吉林省","黑龙江省"},
{"上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省"},
{"河南省","湖北省","湖南省","广东省","广西","海南省"},
{"重庆市","四川省","贵州省","云南省","西藏"},
{"陕西省","甘肃省","青海省","宁夏","新疆"}};

System.out.println("籍贯是 "+x[b-1][d-1]);    }`

(三)[代码托管]http://git.oschina.net/hebau_cs15/java-CS02szy/tree/master/

  • 码云commit历史截图

    1079918-20170328111609483-1975737520.png

    (四)学习进度条

    代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
    目标 5000行 300小时
    第2-4周 300/300 30/30 学习了java前两章
    第5周 300/300 30/30 学习了重载和输入
    第6周

转载于:https://www.cnblogs.com/shiziyu/p/6633717.html

你可能感兴趣的文章
JS性能DOM优化
查看>>
设计模式 单例模式 使用模板及智能指针
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
查看>>
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>