1. 本章学习总结

一些注意:
(1)在JAVA中,不加后缀的浮点数被默认为double型,如果要用float型就要在数据后加上f或F后缀,如float a=32.6f(正确);float a=32.6(错误);但整数可以不加后缀,如 float a=32(正确)。
(2)浮点数不精确,不能用于金融计算,要想更精确请使用BigDecimal类。
(3)==比较的是引用的值,字符串比较要用equals方法。

2. 书面作业

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



答:String对象创建之后不能再进行修改,因此编译时可以让字符串共享,提高效率。

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

答:String对象创建之后不能再进行修改,若要对字符串修改,就不会修改原先的字符串,而是会再产生新的字符串。因此用String时频繁修改字符串就会产生大量的新字符串对象,浪费空间,影响效率。
StringBuilder对象创建后是可以修改的,使用这个类所产生的对象默认会有16个字符的长度,我们也可以自行指定初始长度。如果附加的字符超出可容纳的长度,则StringBuilder 对象会自动增加长度以容纳被附加的字符,因此频繁修改字符串时就不必创建新字符串,节省空间,提高效率。

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

答: eg:

String a="abc";String b=new String("abc");
当System.out.println(a==b);输出false;
当System.out.println(a.equals(b));输出true;
“==”比较的是两个字符串引用的值是否相同,而用equals()则是比较两个字符串内容是否一致.

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

String str1 =“hi“, str2=“hi“;

String str3 = new String(str1)

System.out.println(str1==str2);

答:

java运行环境有一个字符串池。每当新建一个字符串(如String str="abc")时,首先会在字符串池查看是否已有"abc",如果有,则将该字符串的首地址赋值给str;如果没有,生成一个新的字符串"abc"并且将首地址赋值给str。
这段代码中str1和str2共用1个对象,str3创建了1个,所以总共创建2个字符串对象。

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

答:在目前的JDK版本中,能够采用自动装箱和自动拆箱,装箱就是将java中的基本类型(如int)转换成对象类型(如Integer),而拆箱就是将对象类型的值取出来赋值给java中的基本类型。所以题目中的Integer i=100则可以理解成:int i=100;Integer i = new Integer(100);所以可以将100赋值给i。

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

Integer i1 = 127;Integer i2 = 127;

i1 == i2;//true of false?

Integer i1 = 128;Integer i2 = 128;

i1 == i2;//true of false

答:
Integer i1 = 127;Integer i2 = 127;
System.out.println(i1 == i2);//true
Integer i1 = 128;Integer i2 = 128;
System.out.println(i1 == i2);//false
java中Integer类型对于-128-127之间的数是从缓冲区取的,所以用“==”比较是一致的。但对于不在这区间的数字则是新建一个Integer,所以地址空间不一样,也就不相等。

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

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

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

答:源代码放在src文件,class文件放在bin文件中。
当写程序时会在开头写一个package,为其他程序调用此程序提供一个路径,import则可以调用各种包。

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

请描述一下你的技术基础(会什么语言,都写了多少行代码)
一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
关于这门课的smart目标参考链接 答:行动胜过言语。我很多次都想认真写代码,但总是遇难而退,想法很好,但总不去付诸行动。现在我会尽可能的去花时间在java上,少打游戏吧。

3. 使用码云管理Java代码

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

还是无法交到码云上

4. PTA实验

题目集:jmu-Java-02-Java基本语法 中的判断、选择、编程(8道)

实验种碰到的问题、思考、收获与解决方案

201521123025 《Java程序设计》第2周学习总结的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. 201521123025<<java程序设计>>第4周学习总结

    Q1. 本周学习总结 Q2.书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上 ...

  3. 201521123025 <<java程序设计>>第3周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  4. 201521123025<<java程序设计>>第9周学习总结

    1. 本周学习总结 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Array ...

  5. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  6. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  7. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  8. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  9. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  10. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

随机推荐

  1. 怎样做才是最优雅方式切换 web 项目数据源 ?

    随着业务变迁/需求变更,JavaEE 应用中会被迫连接多个数据源进行业务处理. 怎样在不影响原有项目结构的情况下,已最优雅/最简洁的方式动态切换数据源呢? 本文已一次添加数据源后动态切换实践为例,描述 ...

  2. Linux-进程描述(2)之进程标识符进程位置与环境变量

    在上一篇文章中详细介绍了task_struct结构体内的常见成员,然后我们就来看一下具体内容.每个进程都把它的信息放在 task_struct 这个数据结构中,task_struct 包含了这些内容: ...

  3. java调用copy复制子文件夹及文件到指定目录(非xcopy)

    因为作所以烦因为烦所以快乐...(为什么不先查一下有没有现成的命令,后悔啊!!) 不知道有xcopy这个命令就自己想写个复制子目录和文件的功能...以下故事诞生了 是这样的,昨天在学校弄的半成品,半成 ...

  4. jQuery选择器使用习惯

    http://www.cnblogs.com/fredlau/archive/2009/03/19/1416327.html

  5. 一步步学习操作系统(1)——参照ucos,在STM32上实现一个简单的多任务(“啰里啰嗦版”)

    该篇为“啰里啰嗦版”,另有相应的“精简版”供参考 “不到长城非好汉:不做OS,枉为程序员” OS之于程序员,如同梵蒂冈之于天主教徒,那永远都是块神圣的领土.若今生不能亲历之,实乃憾事! 但是,圣域不是 ...

  6. 第11天:JS中变量、字符串基础知识

    一.js简介用来制作页面交互效果,提高用户体验. js页面效果:轮播图.选项卡.地图.表单验证javascript是弱变量类型的语言,变量只需要用var来声明.而java要根据变 量类型来声明, in ...

  7. Springboot+resteasy定时任务

    定时任务 需求:按每日统计点赞数.评论数.热度的增加量(不是现有量) 1.每天零点执行:首先遍历出user的统计字段 然后插入到新创建的表中. 2.每天一点执行:根据时间段将两表的数据相减创建增量字段 ...

  8. redis实现消息队列

    业务需求 本文是以laravel框架来介绍redis队列,具体用法你可以参考http://www.cnblogs.com/lengthuo/p/7277260.html最近接受一个很简单的东西,(说起 ...

  9. 【渗透课程】第二篇上-http请求协议的简单描述

    HTTP协议剖析 什么是HTTP协议?如何发起请求?我认为这样讲大家能够理解: 浏览器访问网站也是http请求的一个过程.当你打开浏览器,访问一个URL (协议://服务器IP:端口/路径/文件)的时 ...

  10. Java入门(6)——集合、基本数据类型和引用数据类型的相互转换

    集合: 1.HashMap ---->  类 概述: 通过key可以找到value, key就是键, values就是值. 俗称键值对. 特点: 无序的    值可以重复  键不可以重复的  如 ...