1.本周学习总结

  • ①学会简单地管理原始码与位码文档(包的概念)

  • ②了解了一些新的名词,如:完全限定(吻合)名

  • ③String类相关

  • ④in.nextInt(),in.next(),in.nextLine()使用注意事项

    在做PTA第一题的过程中,因为这三者问题,导致bug出现(如,多输出一个exit,错误地输入)参考jdk文档并做了测试之后,理清这三者的用法。

    我们先来看一段代码:



    输入输出结果:

    本想输入三次,将第一个整数存在变量m,下一个字符串存在str1,下一行字符串存在str2;

    然而从结果来看,似乎跳过了in.nextLine();无法达到预期效果。

    再来看看下一个I/O例子:



    容易看出,str2储存了“ rty”,原因便是in.next()只读取了空格之前的数据,之后的in.nextLine()读取了包括空格在内的之后一整行数据。





    在in.next()之后添加一个in.nextLine()把'\n'也读取就可以达到预期输入效果了。

三者同时使用的时候in.next()与in.nextInt()只会读取空格之前的数据,之后的会由in.nextLine()读取,根据需求,有时候可以都用in.nextLine(),之后再进行类型转换。或者搞清楚程序运行步骤,理清这几个输入之间的先后关系,在合适的位置添加一个in.nextLine()也可以解决问题。

2.书面作业

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





    从上图可以看出,String本质是一个final修饰的字符型数组,所以它是不可变的,推测hash就是用来保证其唯一性。

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


使用String对字符串进行修改操作时,会生成新的对象(String的不可变性),如果进行大量修改的话,会生成很多无用的对象,浪费空间 ,很大程度降低了效率。而使用StringBuilder类则是对其对象本身进行操作,不会生成多余的对象,因此频繁修改字符串的情况应使用StringBuilder。
  • 3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?

String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
System.out.println(str1 == str2);
System.out.println(str1 == str3);
运行结果:
true
false
使用第一条语句创建出的"abcd"会被存入String pool(字符串常量池),令str指向它。当执行第二条语句,使用String创建str2时,会先在常量池中寻找是否有"abcd",如果有,则将str2指向它;所以str1和str2的地址实际上是一样的,故用str1==str2 结果为True。但是使用new出来的String对象则是一个新的对象,不会再去常量池里面去寻找是否有一样的值。所以str1==str3结果为false。故比较两个字符串不能直接用==,它只只能比较是否是同一个对象,而是使用equal()方法。【以上共创建了2个字符串对象】
  • 5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?
  Integer,Long,Byte,Float...这些都是基本类型的包裹器,Integer i = 100;相当于Integer i = new Integer(100);  

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

Integer i1 = 127;Integer i2 = 127; ①
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128; ②
i1 == i2;//true of false
Integer的范围是-128~127故①中i1,i2均在其类型范围内,执行i1 == i2结果为true。而②中i1,i2都超过了其类型范围,会分别为他们new一个对象来储存他们,所以地址就不同,结果为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,尝试分析背后实现的原理。


--源代码放在src文件中,class文件放在bin文件中。
--我们在写每个程序的时候,都会在开头package相应的包名,这就让其他程序在调用此程序中类的时候有了一个路径,而在调用其他类时import或者用完全限定名。所以我们运行程序的时候能够让其找到我们所调用的各种存在的包中的类。
  • (8)自己在这门课的目标与计划

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

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

    关于这门课的smart目标

C,几千行吧, Python,几百行吧,VBScrpit,一百行左右吧(现在学的人少,有问题很难找到答案,所以就没再花更多时间去学)

40%左右时间/周,pta全部完成的代码量。遇到问题,问同学,问百度,问老师。开发一个安卓小游戏。

  • (9)选做:公交卡里应该还有多少钱?请分析原因

应该是个负数吧,采用双符号位进位导致第33位变成1?,2^32 = 4294967296...估计是机器故障,具体怎么计算得到这个值算不出来。

3. 使用码云管理Java代码

4. PTA实验及其总结


* 掌握了ArraryList的一些基本应用
* 字符串的拼接,截取等使用方法
* 动态数组的使用

5. 小任务(加分)[在规定时间内若未完成后面补上]

    现有choice.txt文件,里面包含上千行,上百题选择题。先在老师要将其中的题目转化为PTA网站的选择题。然而PTA网站上的选择题对输入格式有要求。要求如下:
题面第1行及选项行前不能有空格,题面其他行无此要求。
题面第1行结尾要包含答案字符串,内容形式@[C](2),代表该题答案为C,分值为2
PTA出题格式需符合Markdown要求,才能有良好的效果。先在要求每一行结尾一定要有2个或以上的空格。
统计:题目数量
输出:最后生成outChoice.txt,包含经过处理过的所有问题。文件第1行,代表题目数量。
提示1:使用Scanner处理输入文件, 使用PrintWriter输出文件。
提示2:题目很简单,大概50行左右,不要畏难。
进阶:可以为将来的自动出题、组卷系统做准备。

201521123076《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. 《Java从入门到放弃》入门篇:hibernate中的多表对应关系

    hibernate中的对应关系其实就是数据库中表的对应关系, 就跟某些电影中的某些场景是一样一样滴. 比如可以是一男一女,还可以是一男多女, 更可以是多男一女,最后最后最后还可以是多男多女!!! 有些 ...

  2. MySQL数据库—日期与时间函数

    一. 日期和时间函数 函数的概念:按指定格式输入参数,返回正确结果的运算单元 1. 返回当前日期:curdate() current_date() current_date()+0可以将当前日期转换为 ...

  3. ReactiveCocoa源码解读(二)

    上一篇解读了ReactiveCocoa的三个重要的类的底层实现,本篇继续. 一.RACMulticastConnection 1.应用 RACMulticastConnection: 用于当一个信号被 ...

  4. CASE WHEN 及 SELECT CASE WHEN的用法(转)

    Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END   ...

  5. registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requaired(转)

    当更新jdk后,运行java命令可能会提示类似这样registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requair ...

  6. 面试题1 -- Java 中,怎么在格式化的日期中显示时区?

    使用SimpleDateFormat来实现格式化日期 import java.text.SimpleDateFormat; import java.util.Date; public class Da ...

  7. web前端笔记整理---CSS

    一   Css  文件 Css: 美化HTML的 4种选择器: 元素选择 类选择 ID选择 伪类选择 常用的布局方案 1 写在什么位置能好用. 1.1 元素里面 优先级是最高的 1.2 元素外,文件内 ...

  8. struts2--Action

    HTTP请求 提交 Struts2 StrutsPrepareAndExecuteFilter 核心控制器 -- 请求分发给不同Action Action书写的的三种格式 第一种 Action可以是 ...

  9. linux(十)之初始化文件

    前面写了很多linux的知识,其实很多都是命令的,所以要去多多的练习才能学的更好,加油为了好工作. 要么现在懒惰,未来讨饭.要么现在努力,未来惬意. 一.初始化文件概述 1.1.概述 系统初始化文件是 ...

  10. h5 测试关注点

    原文链接:http://www.blogjava.net/qileilove/archive/2014/07/24/416154.html?utm_source=tuicool&utm_med ...