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

    201521123081《Java程序设计》第2周学习总结


     2017-03-04  14:35:49


     

    1. 本周学习总结

    • 学习了Java一些基本语句,了解了变量类型及其相互转化的方法;
    • 学习import方法,引入包(Package)的概念;
    • 学习数组,数组的创建、初始化以及调用,并与import方法结合,使用String包以及Array包
    • 完全限定类名包名.类名

    2. 书面作业

    • 使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。

      相关步骤如图所示:

      

      分析:

      

    答:在该图,即String源代码中可以看到(图中标识处),String是一个用final修饰的字符数组,常量不可变。
    • 为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?

    答:从上面的回答中,string的对象是不可变的,如果频繁地对string进行修改,则需要重新建立很多的string,就会产生大量字符串对象,效率降低。
    • 比较两个字符串的值是否相等?为什么不能用==直接进行比较?

    答:字符串里包含许多字符而不只是简单的数字,不能直接使用==来判别。检验字符串是否相等一定要用 equals 方法。
    • 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

      String str1 =“hi“, str2=“hi“; String str3 = new String(str1) System.out.println(str1==str2);

    答:输出为true,创建了两个字符串对象。
      分析:执行String str1,字符串池中没有hi,字符串池中创建一个"hi",再赋给str1;执行str2,字符串池中已经有“hi”,所以直接将“hi”赋值给str2,此时只创建了一个对象,因此得出第一个答案str==str2,即输出为ture。执行String str3 = new String(str1),不管字符串池中有没有"hi",都会在堆中新建一个字符串对象将其赋给str3引用, 因此总共创建了两个对象,这就是第二个答案。
    • Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i

    答:Integer类是打包器,封装了整型有关变量和方法,100是基本类型,是整型,这样就可以操作这个对象,Integer自动拆箱,读取int地址。
    • 尝试分析下面代码输出结果

      Integer i1 = 127;Integer i2 = 127; i1 == i2;//true of false? Integer i1 = 128;Integer i2 = 128; i1 == i2;//true of false

    答:前一个输出为ture,后一个输出为false
      分析:已知Integer的范围是-128到127。前一个代码中,i1和i2属于同一个类型且在其范围内,因此i1=i2,答案为ture。后一个代码,超出了范围,会new一个对象来表示,地址不同,因此i1≠i2,答案为false。
    • 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方法
      1 .尝试用命令行进行编译并运行,截图

      答:如图所示
        

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

      答:
        

      3 .Eclipse中源代码放在哪个目录、class文件放在哪个目录?在Eclipse项目中按一下Ctrl+F11就可以直接运行Main,当按下Ctrl+F11时,到底在哪个目录下执行了什么样的java命令?

      答:源代码放在src文件中,class文件放在bin文件中。
    • 自己在这门课的目标与计划

        请描述一下你的技术基础(会什么语言,都写了多少行代码)

    答:会C语言,C++,之前在mooc自学过一点Java基础。C语言写了几百行代码了,C++接触不多,很少写,自学Java时写了一两百行代码。

       一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?

    答:一周的话,我会花14小时左右在Java这门课上,平均每天2小时。
      代码首先完成PTA上的代码习题。
      学习方式肯定是理论和实践相结合,不仅学习掌握理论知识,还要亲自动手实践。
      遇到困难的话,首先看下自己能不能自己解决,如果解决不了,就向其他同学请教,向老师请教,或者上网查询。

      关于这门课的smart目标

    答:首先学好并掌握Java这门语言,在此基础上和同学做出一个安卓小游戏。
    • 选做:公交卡里应该还有多少钱?请分析原因

      答:经查询2^32 = 4294967296,与上图有些相似,差别在倒数第二位,猜测是-0.2元.

     

    3.使用码云管理Java代码

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

      


    4. PTA实验

    • 题目集:jmu-Java-02-Java基本语法 中的判断、选择、编程(8道)
    • 实验种碰到的问题、思考、收获与解决方案
    1. 经过多次实验提交和修改发现,在Myeclipse上编写的代码提交到PTA上会发现编译错误,大多是因为没把类名改为Main;
    2. 要善于引用,有些像Array包可以直接帮助完成实验的重要步骤;

    3. 字符串的比较、拼接、截取等;
    4. 主要通过不断修改,一步步解决遇到的问题。

    5. 小任务(加分)

    现有choice.txt文件,里面包含上千行,上百题选择题。先在老师要将其中的题目转化为PTA网站的选择题。然而PTA网站上的选择题对输入格式有要求。要求如下:

      • 题面第1行及选项行前不能有空格,题面其他行无此要求。
      • 题面第1行结尾要包含答案字符串,内容形式@[C](2),代表答案为C,分值为2
      • PTA出题格式需符合Markdown要求,才能有良好的显示效果。现要求每一行结尾一定要有2个或以上的空格。
      • 统计:题目数量
      • 输出:最后生成outChoice.txt,包含经过处理的所有问题。文件第1行,代表题目数量。
        注1:使用Scanner处理输入文件, 使用PrintWriter输出文件。读写文件请参考WriteReadFileTest.java
        注2:Choice.txt下载
        注3:题目很简单,大概50行左右,不要畏难。
        进阶:可以为将来的自动出题、组卷系统做准备。

                                                                                2017-03-04  17:39:58


  • 相关阅读:
    SQLMAP注入教程-11种常见SQLMAP使用方法详解
    VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能
    解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
    Spring Data JPA one to one 共享主键关联
    JHipster 问题集中
    Spring Data JPA 定义超类
    Spring Data JPA查询关联数据
    maven命名
    maven仓库
    Jackson读取列表
  • 原文地址:https://www.cnblogs.com/LianYanbo/p/6502031.html
Copyright © 2011-2022 走看看