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 ...
随机推荐
- angular或者js如何确定选中ul中的哪几个li
刚来新公司接到新的需求做一个知识库页面 红色的是单选 蓝色的是多选 这些都是需要传递到后台的 开始不知道如何解决 下班后在家想到一个很巧妙的办法 不多说上代码 箭头所指就是在li里写 ...
- 利用浏览器调试APP中的H5页面
安卓手机的情况下,可以用chrome浏览器来调试. 打开地址: chrome://inspect/#devices 手机用USB数据线连接电脑,并启动USB调试模式. 只要在APP中打开H5页面,界面 ...
- 34、锁问题与线程queue
上一篇随笔我们学了全局解释器锁,前面也学了互斥锁,今天学习一些与锁相关的点,例如递归锁,信号量,Event,还会学习我们已经很熟悉的队列,不过这次的队列是作为一个模块出现的. 一.同步锁 1.join ...
- C# 实现模拟登录功能,实现公共类分享。
前言 最近在研究模拟登录的各种方法, 主要想要实现的两个功能是: 1.点击按钮可以直接跳转并登录到某一个系统中. 2.抓取某一个系统中某一个页面中的特定数据. 为此在网上查了许多的资料,首先了解到自身 ...
- java 基础四
1 for循环嵌套 简而言之,就是一个for循环语句里面,还有一个for循环语句. 外层循环,每循环一次,内层循环,循环一周. 示例 package java003; /** * 2017/9/1. ...
- Tomcat闪退的问题
问题:双击tomcat bin下的startup.bat,tomcat的窗口一闪而过,未成功启动: 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息就会导致了tomcat的闪退 ...
- SQL Server内存
背景 最近一个客户找到我说是所有的SQL Server 服务器的内存都被用光了,然后截图给我看了一台服务器的任务管理器.如图 这里要说明一下任务管理器不会完整的告诉真的内存或者CPU的使用情况,也就是 ...
- 函数作用域中的this问题
首先一起回顾下预解析和作用域吧: 预解析: 浏览器每读到一个script标签或function,先不执行任何代码,会先把整个代码快速的浏览一遍,然后从中 挑出 var 和 function两个关键字 ...
- Retrofit2.0源码解析
欢迎访问我的个人博客 ,原文链接:http://wensibo.net/2017/09/05/retrofit/ ,未经允许不得转载! 今天是九月的第四天了,学校也正式开学,趁着大学最后一年的这大好时 ...
- jQuery与js的length属性
js:length 属性可返回字符串中的字符数目. stringObject.length jQuery:length 属性包含 jQuery 对象中元素的数目. $(selector).length ...