1. 本章学习总结

·1.浮点型的不精确,不能简单的像C语言一样用float或者double来定义。在java中有更精确的BigDecimal类。
举例:BigDecimal bd1= new BigDecimal("1.01");
BigDecimal bd2= new BigDecimal("2.02");
System.out.println(bd1.add(bd2));
输出结构为:3.03 是我们想要的准确的数字。
·2.对不可变字符串的操作,如果需要大量的进行重复性连接应当使用StringBuilder。
·3.if...else,for,switch等语句的使用。

2. 书面作业

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



答:String字符串是常量,其值在实际创建后就不能被修改,而且它是一个字符数组。
举例:String str="Hello";str="Hi"这里的赋值并不是对str内容的修改,而是将str指向了新得字符串另外它是基于字符串数组char[]实现的。

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

答:string在每次修改字符串都是新建,然后删除旧的串会很影响效率;而在频繁对字符串进行修改用stringBuilder,它不能用+,而是有Append和Remove函数事先字符串的拼接和删除字符串,它不会重新实例化一个类 ,这样可以节省内存提高效率。

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

答:==是比较字符串是否应用统一地址,如果两个字符串是同一个对象,便可以用==,否则只是比较内容是否一致是不可以的。
举例:
string s1="abc";
string s2="abc"
System.out.println(s1==s2);结果是正确的;因为s1和s2是同一字符串常量,且地址是一样的。 string s1=new string("abc");
string s2=new string("abc");
System.out.println(s1==s2);结果是错误的;因为s1和s2是两个不同的对象,虽然字符串的值都是abc,但是地址是不一样的。

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

String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:1.true。
2.两个对象。定义str1=“hi”一开始会创建hi的字符串对象,然后将刚创建的对象放到字符串池中,定义str2时,jvm会检测字符串常量池,发现有的,直接引用,无需再定义。但是使用了new来构造字符串对象的时候,不管字符串常量池中有没有相同内容的对象的引用,新的字符串对象都会创建。
3.拓展:如果把第三条语句改成:System.out.println(str1 == str3);那么执行结果是false,其原因是他们所指的对象是不同的,如果要让new创建的对象加入到字符串常量池中,需用intern,代码为:String str4 = str3.intern();即可。

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

答:integer是类,i是integer的对象,这个叫对象的自动封箱与拆箱,这样写相当于Integer i=new Integer(100);在调用的时候会自动拆箱,相当于得到int b=i.intValue();

Q6.尝试分析下面代码输出结果

Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
答:1.true。
2.false,因为integer的自动装箱是对于从 -128 到 127 之间的信息值。超出就会出错。

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 尝试用命令行进行编译并运行,截图

答:![](http://images2015.cnblogs.com/blog/1109705/201703/1109705-20170304193551032-247080139.png)

7.2 将生成的StringUtil.class放到d盘的lib目录下,将Main.class在d:\test目录下,尝试命令行下运行,截图。

答:![](http://images2015.cnblogs.com/blog/1109705/201703/1109705-20170304195237063-813626222.png)

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

答:当写程序时会在开头写一个package,为其他程序调用此程序提供一个路径,import则可以调用各种包。

Q8.自己在这门课的目标与计划

请描述一下你的技术基础(会什么语言,都写了多少行代码)
一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
关于这门课的smart目标参考链接 ·1.大一学了C语言,会一些基础的东西,没有深入。我感觉编程语言都是有一定联系的,有些思想也有异曲同工的意思。
·2.刚开始学这门语言,感觉蛮有意思的,我会不断地尝试,去解决更多的问题,提高自己的java自信,一天至少保证两个小时的时间去学习java。
·3.确实有处处碰壁的感觉,细微的错误都会导致功亏一篑,我觉得还是经验比较重要,问题越多,所产生的困扰越多,它可以锻炼你的心志,当你解决之后你会发现学到了很多。
·4.今后我会通过网上的视频资料(慕课等网站)学习拓展,积极地请教同学、老师,少做些复制黏贴的事情,因为这只会让你的java自信降低,到最后没有java能力。

3. PTA实验总结及码云上代码提交记录

3.1本周Commit历史截图

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

201521123044 《Java程序设计》第2周作业-Java基本语法与类库的更多相关文章

  1. 201621123062《java程序设计》第九周作业总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 思维导图1:(对集合部分做了一些改动和细化) 思维导图2:(泛型) 1.2 选做:收集你认为有用的代码片段 代 ...

  2. 201521123027<java程序设计>第14周作业总结

    1.本周作业总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2.书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己 ...

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

    201521123061 <Java程序设计>第九周学习总结 1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1 ...

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

    201521123038 <Java程序设计> 第二周学习总结 1.本章学习总结 学会在Java程序中使用函数,使程序层次更清晰 使用StringBuilder编写代码,减少内存空间的占用 ...

  5. 201521123038 《Java程序设计》 第一周学习总结

    201521123038 <Java程序设计> 第一周学习总结 1.本章学习总结 本周已掌握Java配置,初步认识Java运行软件和基本语法. Java语言语法和C语言基本类似,部分不同. ...

  6. 201521123072《java程序设计》第九周总结

    201521123072<java程序设计>第九周总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截 ...

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

    201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...

  8. 201521123045 <java程序设计>第11周学习总结

    201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...

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

    201521123122 <java程序设计>第九周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截图 ...

  10. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

随机推荐

  1. 移动端JS判断手势方向

    原生JS判断手势方向的解决思路: 1.滑动屏幕事件使用html5 的touchstart滑动开始事件和touchend滑动结束事件. 2.方向的判断,以起点做平面坐标系,与终点连线做直线,直线与x正半 ...

  2. JavaScript之AJAX:原生ajax入门

    背景 传统的Web应用允许用户端填写表单(form),当提交表单时就向网页服务器发送一个请求.服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分H ...

  3. MySQL中count(1),count(*),count(col)的区别

    count(*)返回行数的时候不管列中的值是不是null,在MyISAM表中,count(*)被优化,因为在MyISAM表中,行数被额外存储了,所以会很快,但是这个时候不能有where条件.innod ...

  4. Redis入门 (CentOS7 + Redis-3.2.1)

    1. 编译安装1.1 下载redis # cd /tmp/# wget http://download.redis.io/releases/redis-3.2.1.tar.gz# tar zxvf r ...

  5. java web方面的面试问题,Spring MVC方面的面试问题,摘自java web轻量级开发面试教程

    本文摘自java web轻量级开发面试教程: https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E ...

  6. [日推荐] 『闲聊助手』人工智能小程序,仅此一款!-极乐商店store.dreawer.com

    肾phone的siri有用过吗?小编无聊时就撩一下她!但有个问题就是要是没有肾phone在身边怎么撩???现在有伙伴@wx_Volcano_Li76 开发一款小程序,可以等同于siri,想什么时候撩就 ...

  7. java web开发时的绝对路径与相对路径

    相对路径 不以/开头的路径为相对路径,使用相对路径时的路径为当前访问的文件的父目录,即如果现在访问文件的路径为http://localhost:8080/项目名/目录/文件,那么使用相对路径时路径前缀 ...

  8. netcore2.0 ORM框架中如何配置自定义的主外键加载

    环境:netcore2.0 DB :mysql ORM:Ant https://github.com/yuzd/AntData.ORM/tree/netcore2 [给我一个star吧] NUGET: ...

  9. TCP/IP协议栈模型

    OSI七层模型介绍: 下面4层(物理层.数据链路层.网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主:第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分:而上3层(会 ...

  10. Grails笔记三:完整的文件上传实例

    文件上传在web应用中是比较普遍的,相对于使用jsp等技术实现文件上传,Grails的文件上传着实让人喜爱,因为极其简单,让人看一遍就容易轻松记住!不多说,实例如下: 假设已有一个名为uploadFi ...