201521123059 《Java程序设计》第二周学习总结
1.本周总结
本周老师讲了和自己掌握了以下内容:
(1).三元条件运算符
表达式1?表达式2:表达式3;
(2). 字符串String类
String的不可变优点:编译器可以让字符串共享,效率高。但是如果涉及到频繁修改字符串的话,会产生大量字符串对象。
(3).String对象的拼接和StringBuilder
String对象的拼接方法:使用+拼接字符串会产生新的String对象,而不会修改原先的字符串,会产生大量字符串对象。
(4).不可变字符串-字符串池
对于使用包裹起来的字符串字面常量,会先在字符串池中进行查找,如果有则不新建。
(5).检测字符串内容是否相等
当比较字符串的内容而且不分大小写时可以用"str1".equalsIgnoreCase("str2")进行比较;当用==时,只能比较是否为同一对象,不然==比较的是引用的值。
(6).输入输出-Scanner(扫描器)
Scanner使用分隔符将输入分解为标记,默认的分隔符为空白符,如空格、回车换行等
(7).结构化程序设计三种基本流程:
"顺序结构"、"选择结构"、"循环结构"
选择结构:Java语句提供了两条基本的分支选择语句,if["二选一"]和switch["多选一"]。
循环结构:Java语句中有三种循环结构,如下图。
(8).一维数组、二维数组、多维数组以及不规则数组的初始化。
2.书面作业
1.使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。
2.为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
答:因为string是传统的处理字符串方式,再处理频繁的字符串时string的效率大大不如StringBuilder的高。
3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
答:==比较字符串是否引用同一地址,如果2个字符串是同一个对象,那可以用==,如果不是同一个对象,只是比较内容是否一致,则不可以用==。
4.尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:因为对于包裹起来的字符串字面常量,会先在字符串池中进行查找,而且str1和str2的引用地址相同,所以输出true。创建了两个字符串对象。
5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
答:因为Integer i=100相当于Integer i=new Integer(100),在调用时会自动拆箱,然后相当于得到 int b=i.intValue,所以可以将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。因为自动装箱与拆箱的功能事实上是编译程序蜜糖,在编译时期根据所写的语法决定是否进行装箱或拆箱动作。第一个程序代码由于127在-128~127之间,所以 i1会 从缓存中传回Integer实例,Integer i2=127执行时要打包的同样是127,也是从缓存中返回同一实例,所以i1与i2会参考到同一个Integer实例,使用==比较会返回true。第二个程序是128不在-128~127之间, 所以i1直接建立新的Integer实例,Integer i2=128执行时,同样也是直接建立新的Integer实例,所以i1与i2不会参考到同一个Integer实例,使用==比较就会返回false。
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,尝试分析背后实现的原理。
答:源代码放在JDK中的src目录中;class文件放在JDK的bin目录。
8.自己在这门课的目标与计划
◦请描述一下你的技术基础(会什么语言,都写了多少行代码)
我们学习过了C语言,数据结构,Java这个学期开始学习,但是我自己只会编写一下八角简单的代码,如果代码天长的或者难一点的就很难写出来了。我的语言基础很薄弱,自己课后也没有学习过什么与专业有关的东西,所以在上实验课时或者写老师布置的实验时会迷茫。我自己写过的代码比较少,不超过300行。
◦一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
现在一周发在这门科目上的时间比较多,一周除了睡觉时间60%空余时间都花在Java上,但是自己基础挺薄弱的,成效比较低,现在也挺想把握好基础,但是大一没有掌握好基础现在漏洞很多,以至于大部分实验写不出来。现在一周打算把老师布置的作业独立完成,实在有困难的就会参考同学的,给自己一周写代码的目标是100~150行。以前主要的学习方式是看书还有敲代码以及通过老师布置的作业来掌握所学的语言,课后有时也会问同学一些问题,但是问老师的比较少。现在打算不仅通过上述所讲的方式学习,还需要课后通过相关书籍还有资料在掌握Java语言。。。。希望老师给个建议,怎么学习Java还有补回以前的漏洞。因为语言基础的薄弱,所以在学习Java语言时会遇到挺多问题的,一般时问同学或者参考以前相关代码解决,或者去百度一下,查阅资料比较少。打算今后学习遇到问题会加多查阅相关书籍的通道还有问老师的方式。
9.没有做
使用码云管理Java代码
•在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图
PTA实验
•题目集:jmu-Java-02-Java基本语法 中的判断、选择、编程(8道)
•实验种碰到的问题、思考、收获与解决方案
问题: 1.没有在程序开始时写import…………,会提示找不到符号的错误。
2.在写密码生成器的时候,开始用Arrays.toString(arr),每个字符之间会用逗号隔开。
3.很多时候在PTA上提交是答案错误或者是编译错误,但是在eclipse里面编译执行时是正确的。
4.在eclipse里面编程时很多时候第一次提交不能成功,编译成功了,但是输出答案有误。
思考:1.还不习惯java中在开头要有类;
2.在PTA上提交时不能有包名,主函数名要是Main,否则是答案错误。
收获:1.通过实验掌握了数组的初始化,还了解了新的内容动态数组;
2.掌握了ArrayList和subSring的一些基本应用,需要排序时不用在写一个排序函数,可以直接调用ArrayList;
3.通过编写实验了解到了eclipse里面的一些快捷按键给我们带来的便利,为编写程序省一点时间。小任务(加分)
没有写
201521123059 《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 ...
随机推荐
- 计蒜客模拟赛D2T3 蒜头君救人:用bfs转移状压dp
题目链接:https://nanti.jisuanke.com/t/16444 题意: 蒜头君是一个乐于助人的好孩子,这天他所在的乡村发生了洪水,有多名村民被困于孤岛上,于是蒜头君决定去背他们离开困境 ...
- WebApi 的CRUD 的方法的应用
一.最近一直在忙于开发公司的新的项目和搭建公司的框架,也好久没有写博客了.对于RaidDevelopmentFramework 我有着自己的见解在应用到实际的框架中确实挺好用的,但是还是存在一部分的问 ...
- 0711HTML初体验
今天是正式上课的第一天.这边先记下初学的时候容易忘记的问题.在图片上链接汉子显示是<title="想在图片显示的内容">. 合并单元格,合并行<td colspa ...
- SqlBulkCopy 批量insert
1.获取要插入的数据datatable /// <summary> /// 从FMS取银行信息 /// </summary> /// <returns></r ...
- install redis
1.Office Download redis.tar.gz from website --- redis.io 2.uncompact file $ tar zxvf redis-3.2.9.ta ...
- 【Ubuntu 16】安装eclipse
1.将eclipse.tar.gz传送到/home/xxx/下,解压缩,这里我已经配置好了JDK1.7,所以eclipse配置了就可以使用 2.创建快捷方式 dream361@master:~$ to ...
- Python 中的重点来了 : 迭代器 生成器
可迭代的对象:带有__iter__方法的,就是迭代器.字符串,列表,元祖,字典,集合,文件,都是可迭代的 可迭代的对象使用了__iter__方法的,就是迭代器,带有__next__,__iter__方 ...
- 自动化的基于TypeScript的HTML5游戏开发
自动化的开发流程 在HTML5游戏开发或者说在Web客户端开发中,对项目代码进行修改之后,一般来说,需要手动刷新浏览器来查看代码修改后运行结果.这种手动的方式费时费力,降低了开发效率.另外,如果我们使 ...
- Spring(一)--作用、IOC容器细节、搭配环境、Spring实验
1.Spring作用: 1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!] 2.将其他组件粘合在一起 比如将S ...
- python链接MySQLdb报错:2003
使用python链接Mysql数据库操作,遇到问题! 问题如图所示: 解决方法:将"localhost"改为"127.0.0.1" db=MySQLdb.con ...