1. 本周学习总结

●本周主要学习了java的基本语法,从中我知道了java中的变量类型以及关于类型转换的问题,而且学会了通过import引用包。

●通过本周的学习,我学会了使用数组,包括对数组的创建和初始化以及调用。并且学会了使用String包以及arrays包里的方法,为编程节约了大量的时间和空间。很多的方法在包都能找到,算法的实现又简便了不少。

2. 书面作业

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



    答:String类的值是不可改变的。String类对象有个特殊的创建的方式,就是直接指定比如String x="java","java"就表示一个字符串对象。而x是"java"对象的地址,也叫做"java"对象的引用。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。创建字符串有两种:一种是使用new关键字创建字符串,比如String s1 = new String("java");另一种是直接指定,比如String s2 = "java"。当使用任何方式来创建一个字符串对象s时,Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串s,否则不在池中添加;只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。

(2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?

答:StringBuilder是可变的。在内部,StringBuilder对象被当作是一个包含字符序列的变长数组。
而String的值是不可变的,导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。
所以要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String。

(3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?

答:因为字符串里包含许多字符而不是简单的数字,不能直接使用等号来判别,而要对字符串中的每个字符进行比较,再返回是否相等。

(4)尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

String str1 =“hi“, str2=“hi“;

String str3 = new String(str1)

System.out.println(str1==str2);

答:这段程序输出的结果是false,因为str1和str2分别指向了字符串池里不同的位置,所以尽管str1和str2的内容相同,但存储的位置不同就导致了这两个字符串不相等。

(5)Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i

答:Integer是一个类,里面封装了整型有关变量和方法,100是基本类型,是整型,Integer中包含这种基本类型,所以可以将100赋值给i。

(6)尝试分析下面代码输出结果

Integer i1 = 127;Integer i2 = 127;

i1 == i2;//true of false?

Integer i1 = 128;Integer i2 = 128;

i1 == i2;//true of false

答:这段代码输出的结果是:true  false
分析:代码第一行中的i1和i2的值都是在一个字节的范围内,但是均为同一个Integer对象,所以第一行代码中的i1等于i2。第二种情况里,i1和i2的数值已经超出了一个字节的范围,所以越界了,不能正确表示出来,因而i1不等于i2。

(7)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:\test目录下,尝试命令行下运行,截图。

(7.3) Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。

答:Eclipse中源代码放在src目录下,class文件放在bin目录下。
运行的原理:eclipse中无单独的“编译”这一步,运行时自动先编译。编译时“外部路径”默认为eclipse的"java build path"的source页签中设置的"output folder"的路径“内部路径”即为.java文件的包路径,执行时对.java文件的“package”一项做编译检查,package中的路径必须与.java文件存放的路径一样这样按一下ctrl+f11,eclipse会自动根据.java文件存放的路径构建完整的包路径执行。

(8)自己在这门课的目标与计划

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

●技术基础:会C语言,代码水平并不是特别好,没有精确计算写了多少行代码。

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

●计划:一周时间里,每天晚上以及白天没课的时间都会花时间来学习java,一周完成至少完成七篇代码(至少一天一篇),有计划地打代码,绝不累积到一天。遇到不会的题目或者编程中遇到困难,我会找老师和同学求助,并且及时百度搜索,直到理解了原理。

(8.3)关于这门课的smart目标

●目标:我希望能够学习好java,做出些实用的东西,比如网站的后端开发。并且我希望自己能运用好java,与其他语言相配合做出一个网站。虽然我知道java挺难的,但是一定不能放弃!

3. 使用码云管理Java代码

4.PTA实验

♦实验种碰到的问题:

(1)几乎每次在Eclipse上完成了代码的编写并正确运行后复制到PTA上都会出错。

(2)在第二道编程题中,起初不理解题目意思。

(3)在第三道编程题中,sort1函数编写时不知道如何按年-月-日格式组装,还忘了要升序输出。

(4)在第四道编程题中,刚开始忘了使用不规则数组,而是直接使用规则数组,导致输出时出现“null”。

(5)第五题和第六题以及第八题难度较小,没有出现太大问题。

(6)第七题主要是当输入e或者E的时候不会自动退出。

♦思考并解决问题以及获得的收获:

(1)在array包中直接有函数可以排序,所以第三道编程题中我用了此函数。

(2)在第四道编程题中,我将规则数组改为了不规则数组,因此不再出现“null”。

(3)在第七题中,问了同学后得知,需要添加一个while循环来判断输入的是否为“e”或“E”。

(4)个人感觉这些题目难度不小,星期二花了一天时间才提交成功一道题,可能是自己能力不足,所以感觉题目还是挺难的,但是也算是学到了不少东西。

201521123067 《Java程序设计》第2周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 使用DbFunctions来解决EF按照日期分组数据

    如下一张表 要进行MyDate的date部分进行分组,我们会发现如下写法会报异常 那么如何才能使linq正确转化为sql语句呢,这就要使用到了DbFunctions这个工具类 转到定义可以看到此类在e ...

  2. 微信小程序添加、删除class’

    终于等到公司开发小程序了,学习的时候不觉得有什么,实际开发就会出现各种问题. 今天第一天开发就遇到问题了. 项目需求,要一个平时的nav导航栏,这玩意用jQuery两行代码解决了,可是小程序不允许操作 ...

  3. 【有意思的BUG】未名

    这个帖子描述定位一个BUG的思路. 开始了. 用浏览器访问某一个网址http://111.aaa.com/ ,如果发现提示异常,那么接下来该如何定位BUG呢? 用相同的浏览器去访问不同域(不是aaa. ...

  4. 【HOSTS相关】什么时候使用127.0.0.1

    什么时候使用127.0.0.1 在测试环境,如果想知道上线后服务发生异常中断的情况下界面会如何展示,这个时候有2种方式: 第1种是:由开发人员协助,比如后台开发人员在服务器上使这个服务停止,或者由前端 ...

  5. 社交系统ThinkSNS+ 发布通知!

    社交系统ThinkSNS 最新版本ThinkSNS+将于7月15日正式发布开源版本web+H5,同时发布Android APP和iOS APP.我们将告别内测阶段,正式对外发布. 没错,你们没看错,就 ...

  6. MySQL binlog相关分析

    1.redolog.binlog的简单分析 图解:redolog和binlog机制 2.开启binlog及关注点 3.关注binlog的相关参数 4.binlog模式分析 5.关于binlog的使用 ...

  7. Linux学习总结(十三)—— CentOS用户组管理:创建用户组、修改用户组、删除用户组

    文章首发于[博客园-陈树义],请尊重原创保留原文链接. 在Linux系统里,有两个系统文件与用户组密切相关,它们分别是:/etc/group./etc/gshadow. /etc/group:存储了用 ...

  8. BTrace : Java 线上问题排查神器

    BTrace 是什么 BTrace 是检查和解决线上的问题的杀器,BTrace 可以通过编写脚本的方式,获取程序执行过程中的一切信息,并且,注意了,不用重启服务,是的,不用重启服务.写好脚本,直接用命 ...

  9. python close()是假象,真正关闭Socket的方法

    背景: 工作中自己用python写了一个tcp工具,然后用while循环一直接收消息,并且打印出来.然后正常close发现设备并没有离线,然后用了临时的规避方案,发现其实是一直阻塞在recv()接收方 ...

  10. 页面json 格式化+颜色高亮

    背景 应答为json,为了更好的展示在前端页面,需要对其格式化加颜色高亮 效果图 步骤 js中添加 function output(inp) { document.body.appendChild(d ...