201521123022 《Java程序设计》 第二周学习总结
1. 本章学习收获
(1)在老师指导下学会如何使用码云管理代码,代码不仅是保存到本地,还需要Push到码云这个“仓库”里。
(2)JDK源代码可以为我们的编程提供许多便利之处,应善加利用。
(3)对String类的了解更深了一层。
(4)用BigDecimal类来进行浮点数的精确计算。
(5)StringBuilder可用于大量重复性字符串连接。
2. 书面作业
Q1.使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。
String本质上基于字符数组char[]实现,且创建的对象是不可变不可修改的。
Q2.为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
String所创建的对象是不可变的,所以每次对字符串的修改其实都是在进行新建操作,之后删除旧的字符串,这样在效率上就显得很低。
对StringBuilder来说,存在如Append等函数的应用,可在原有字符串基础上进行修改,效率较高。
Q3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
比较两个字符串的值是否相等应使用equals()而非用==,因为==比较的是两个字符串的地址而非它们的值。
例如:
String s1=new String("JOJO");
String s2=new String("JOJO");
System.out.println(s1==s2);
这里的输出为false,因为虽然字符串值相同,但它们的地址不同。
Q4.尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
输出结果为true。
该段代码创建了2个对象,因为定义str1时,已经将hi置入字符串常量池,对str2来说,对象也是hi,可直接引用。故str1,str2共创建一个对象。而str3定义时使用了new,虽然值与str1值相同,但意味着重新创建了一个对象。所以共创建两个对象。
Q5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
这一句代码相当于:
Integer i = new Integer(100);
是对象的自动封箱与拆箱操作,运用于对象类型和基本类型互换。
Q6.尝试分析下面代码输出结果
Integer i1 = 127;
Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128
;Integer i2 = 128;
i1 == i2;//true of false?
答:本题是关于自动拆箱的知识运用。Integer i 操作相当于Integer i=Integer.valueof(),范围在-128-127之间,若i1,i2在范围内,则返回同一Integer实例,若有其一超出范围,则新建Integer实例。故:
(1)true。
(2)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方法。
Q7.1 尝试用命令行进行编译并运行,截图。
Q7.2 将生成的StringUtil.class放到d盘的lib目录下,将Main.class在d:\test目录下,尝试命令行下运行,截图。
Q7.3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
源代码存放在src文件夹中,而class文件放在bin目录下。
Q8.自己在这门课的目标与计划。
(1)请描述一下你的技术基础(会什么语言,都写了多少行代码)
学习了C,C++,java(前两者其实也是一知半解算不得熟练,后者初入门),代码写了以前老师布置的一些。
(2)一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
讲道理这门课需要花的时间是最多的- -,毕竟身为计算机学院的学生么。本课程我感觉作业比较多且难,能够完成作业和老师的要求怕是就要尽量花上大部分时间了吧。我认为对于JAVA课程来说,光看是无甚用处的,大多时候还需自己动手敲键盘实践。与此同时,碰到困难时无可避免的,可求助于同学,百度,以及老师。将他们所教的东西再自行消化,一步一步来吧。
(3)目标
脚踏实地是最好的,希望自己首先能在老师的带领下逐步学习好JAVA,为大三专业课打下基础,对代码的运用能够更加熟练,对编程的思路能够更加清晰。如果可能的话,希望自己能达到用JAVA编出一个WEB的水平。
3.码云代码提交记录
4.PTA实验总结
PTA上的实验虽然老师在课上讲过,但或许我理解不足,目前只做出几题,现在还在奋斗中……
(1)还对JAVA资源库中自带的函数运用不充分、熟练。
(2)区分好StringBulider与String的区别。
(3)善于运用BigDecimal解决浮点数的精确计算。
201521123022 《Java程序设计》 第二周学习总结的更多相关文章
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 2017面向对象程序设计(Java)第二周学习总结
2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结
丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结
这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
随机推荐
- Heritrix工具实现网络爬虫
上次用的java相关知识实现了一个简单的网络爬虫,现在存在许多开源免费的爬虫工具,相对来说,可以很简单的获取网页数据,并写入到本地. 下面我就阐述一下我用Heritrix爬虫工具实现网页数据爬取. - ...
- 理清JS数组、json、js对象的区别与联系
最近在敲代码时,遇上了一个关于JS数组的问题,由此引发了关于对象和json的联想,曾经觉得很畅顺的知识点突然模糊了.于是,为了理清这些东西,有了如下这篇文章.觉得没问题的猿们可以当复习,而那些带着疑问 ...
- Vue组件实例间的直接访问
前面的话 有时候需要父组件访问子组件,子组件访问父组件,或者是子组件访问根组件. 在组件实例中,Vue提供了相应的属性,包括$parent.$children.$refs和$root,这些属性都挂载在 ...
- 解析Linux中的VFS文件系统之文件系统的来源与简介(一)
最近挂载了N多的文件系统,大致了不同文件系统的相应特性及挂载方式,却还是对Linux的文件系统没有从源码方面去了解.不求甚解确实不好不好. 于是借鉴一些大牛的博客及自己的理解,总结了博客系列: 一.V ...
- oracle撤销表空间和回滚段
/* 撤销表空间 */ 通过使用撤销技术,能够为Oracle数据库提供以下功能: * 使用ROLLBACK语句撤销事务 * 进行数据库恢复 * 提供数据的读一致性 Oracle强烈建议DBA在Orac ...
- C#打印九九乘法表
C#打印九九乘法表... ---------------------------------- using System; using System.Collections.Generic; usin ...
- 缓存一致性和跨服务器查询的数据异构解决方案canal
当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发...逼逼逼起来容易,做起来并不那么乐观, ...
- Spring同mybatis整合讲义(事物)
1.mybatis的作用. 它是一个数据持久化的解决方案,它是一个ORM的框架. 2.Spring的作用? 备注:将本地jar包拷贝至本地的maven仓库里:oracle的jar包需自己发布到mave ...
- 420小时学习代码之后:如何教你免费自学Python
原文地址:learning-to-code-420-hours-later-how-to-teach-yourself-python-for-free 说明:有些网址需要FQ. 大约在1.5年前,我开 ...
- 如何使用 Weave 网络?- 每天5分钟玩转 Docker 容器技术(63)
weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...