zoukankan      html  css  js  c++  java
  • 201521123029《java程序设计》第2周学习总结

    1. 本周学习总结

    (1)完成了课后习题,对所学知识进一步巩固。
    (2)学会了JAVA中的选择结构,循环结构,其中条件必须为布尔表达式,与C++非0即真不同。
    (3)学会java中的break和continue的使用。
    (4)学习了数组在java中的运用,初始化为 int[] student=new in[10]等。

    2. 书面作业

    (Q1)使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。
    关联截图:
    源代码:
    设计思路:String对象创建之后不能再进行修改。

    (Q2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
    string每次修改字符串都是新建,然后删除旧的串会很影响效率,而stringbuilder是在字符串的末尾操作,和string比较快。例如StringBuilder每次append()调用后,都会返回原有的StringBuilder对象,方便你进行下一次操作。

    (Q3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?
    不能。两个对象进行比较,如果使用符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用比较,得出的结论是不相等,但是实际上它们的值是相等的。举例说明:
    String a = new String("abc");
    String b = new String("abc");
    a == b; //false
    a.equals(b) // true

    (Q4)尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
    String str1 =“hi“, str2=“hi“;
    String str3 = new String(str1);
    System.out.println(str1==str2);

    因为str1和str2对象一样,为字符串常量,所以str1==str2而str3建立了一个新的对象,参考至新建的String实例,所以这个代码创建了两个字符串对象,str1与str2指向一个,str3指向一个。

    (Q5)Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
    Integer是所谓的打包器,然后当做对象来操作,也就是自动装箱,允许这样打包基本类型。

    (Q6)尝试分析下面代码输出结果
    Integer i1 = 127;Integer i2 = 127;
    i1 == i2;//true of false?
    Integer i1 = 128;Integer i2 = 128;

    i1 == i2;//true of false?
    第一问题答案是true,第二个问题是false。因为Integer的默认值为-128到127之间,第一个i1和i2地址一样结果为true,第二个i1,i2超出数值,不会参考到同一个Integer实例中,范围新建立了一个对象,故地址不同,结果为false。

    (Q7)package与javac、 java、 -classpath、 -d
    在 com.ibm包中编写 StringUtil类,内有一方法
    public static void foo1(){
    System.out.println(StringUtil.class+" method:foo1");
    }
    在edu.jmu包中编写Main类,其中掉了com.ibm.StringUtil的foo1方法

    7.1 尝试用命令行进行编译并运行,截图

    7.2 将生成的StringUtil.class放到d:lib正确的目录结构下,将Main.class在d: est正确的目录结构,尝试在命令行下运行,并截图。

    7.3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
    不太理解。
    (Q8)自己在这门课的目标与计划
    请描述一下你的技术基础(会什么语言,都写了多少行代码)
    一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
    关于这门课的smart目标参考链接

    如今我会C语言。然后C++语言还未熟练;现在一周准备花大部分空闲的时间,来编写程序与学习java,采用在实践中学习正确的答案与丰富经验开拓思维、遇上困难我会先百度一下,其中有疑惑的话我会问学习较好的同学,若还不能解惑只能依靠老师与学长助教们了。

    3. 使用码云管理Java代码

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图

    4. PTA实验

    题目集:jmu-Java-02-Java基本语法 中的判断、选择、编程(8道)
    实验中碰到的问题、思考、收获与解决方案
    (1)编程第2题:首先开始编程的时候把整数连接在一起时并未调用到append(),从而导致采用字符串连接的方式效率低,每次连接都会构建一个新的String对象,既耗时又浪费空间,最后提交到PTA并没有通过。后来使用了StringBuilder,每次调用append()后,都会返回原有的StringBuilder对象,方便进行下一次的操作。让我学会了并运用append函数。让我体会到,并不用像C语言是面向过程的。JAVA是面向对象的,之后因多灵活运用学习。
    (2)编程第5题:了解到需要使用 BigDecimal来处理超过16位有效位的数进行精确的运算,double可以处理16位有效数。显然不能运用Double,然而在调用BigDecimal过程之中一直遇到不熟练的问题。总有一些小问题。看不懂或者其他原因。直到慢慢调试。终于找到正确的代码。这是个必须体会的过程,不可能一蹴而就的完成。这也许就是积累经验。
    (3)编程第6题:此题中运用到枚举,其中还有哦switch条件式,swicth的括号中放置取得值的变量或表达式,值必须是整数、字符、字符串或Enum。然后按要求去一步一步的编写代码,这题的问题是对不懂得未知而导致不知从何下手,此时就需要耐心去学习,去查资料。从而完成题目的要求。由于对JAVA的熟练度不高,所以有几个题目并未来得及去完成,接下来我会一一去学习完成。争取尽快完成老师给的任务。

    5. 小任务(加分)

    现有choice.txt文件,里面包含上千行,上百题选择题。先在老师要将其中的题目转化为PTA网站的选择题。然而PTA网站上的选择题对输入格式有要求。要求如下:
    题面第1行及选项行前不能有空格,题面其他行无此要求。
    题面第1行结尾要包含答案字符串,内容形式@C,代表该题答案为C,分值为2
    PTA出题格式需符合Markdown要求,才能有良好的效果。先在要求每一行结尾一定要有2个或以上的空格。
    统计:题目数量
    输出:最后生成outChoice.txt,包含经过处理过的所有问题。文件第1行,代表题目数量。
    提示1:使用Scanner处理输入文件, 使用PrintWriter输出文件。
    提示2:题目很简单,大概50行左右,不要畏难。
    进阶:可以为将来的自动出题、组卷系统做准备。

  • 相关阅读:
    .NET网址集合(自己备用)
    在所有页面自动注册prefix
    ASP.NET里实现水晶报表的打印
    C#经典书籍推荐
    自定义file类型input框样式的方法
    安装VS2008后要做的事
    ASP.NET中使用Include的要点
    增加新记录时ObjectDataSoruce和FormViw中的相关事件使用总结
    兼容IE/FF的手动触发事件的函数 ( forward )
    ASP.NET 自定义的一个日期验证控件
  • 原文地址:https://www.cnblogs.com/m1ng123/p/6498059.html
Copyright © 2011-2022 走看看