java week 02 作业

1.本周学习总结

(1)基本数据类型java特有:boolean(布尔型)结果只有true或false。

(2)引用数据类型:存放指向对象的引用

(3)包装类:在包装类中除了int,char 其余的包装类都是基本类型的首字母大写 ,int 的包装类为Inegerchar的包装类为Character,包装类就是存放指向对象的引用。包装类与基本的数据类型转换要经过拆箱与装箱像:Integer a=100;为自动装箱 int b=a;就是自动拆箱。

(4)StringBuilderd,多维数组的使用及动态数组的运用

2.书面作业

1.String-使用Eclipse关联jbk源代码

1.1查看string对象的源代码(截图),String啊好i用什么来存储字符串?

1122290-20170923163659806-453619151.png

答:String是使用char数组来储存字符串的。

1.2分析其构造函数public String(char value[])的作用?

this.value = Arrays.copyOf(value, value.length);中Arrays.copyOf是传回的数组是新的数组对象,所以您改变传回数组中的元素值,也不会影响原来的数组。

参考:https://vinoit.me

1.3阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?

在oldChar的内容进行修改,并不是存储在原先的数组中而是创建了一个新的newChar进行存储与原先的数组并没有发生改变,这就是String的不变性。

1.4简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?

我觉得String与字符数组的最大区别在与数组是要有定义的数组大小的length,而String则不需要。对于String来说它的不变性。在改变String就要创建新的String而字符数组就会相对较为灵活。

2.StringBuilder

2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?

对于String来说频繁的修改就要频繁的创建新的字符串,在少量的情况下它与StringBuilder并没有太多的差别,但是在过多的情况下String就会造成时延变得很久运用StringBuilder就不会有这种情况。

2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?

StringBuilder的append(char[] str)方法功能是将 char 数组参数的字符串表示形式追加到此序列StringBuilder内部使用的应该是字符数组来存储字符,将 char 数组 str 中从索引 offset 开始的字符按顺序追加到此序列。此字符的长度增加 len。

参考了jbk的内容

字符串与字符串池

3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);

str1与str2都指向在字符池的“hi”,里输出的结果是ture,共创建了两个字符串

3.2 重点:对基本类型我们可以使用==比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?

在引用类型中“==”是比较两个引用变量的地址是否相同因此要比较内容就要使用equals来进行比较而在基础类型中是可以用“==”进行比较大小。

4.Wrapper(包装类)

4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y =x+1;x++;这一串命令中包含了些什么操作?

这个赋值过程中包含了自动装箱,<1>赋值并自动装箱<2>自动拆箱并赋值<3>基础数据自增。

4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?

我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

不是特别理解包装类这是百度的回答

5.实验总结

5.1结对编程

合作对象:吴俊杰
对于编程代码讨论会有些思维不同而产生的碰撞,我们会比较开始讨论但是比较容易跑偏主题进入不是我们所要讨论的目的所以有时候1+1会小于2。

附图:1122290-20170923185230931-1641356666.jpg

5.2 PTA-1综合小测验

我运用了递归的方法在search中对于不同的sort进行不同的排序最后截取身份正上的组要字符串

5.3PTA-3身份证排序

主要使用substring来进行对于字符串的截字还有就是要有Arrays的运用起初还不是运用的好

5.4动态数组

首先要做的就是建立一个二维数组进行数字的输入然后在对其进行编译

ArrayList入门

我使用List add();添加元素和对于原位置的修改使用clean();进行。清空str动态数组相比于一般的数组可以动态增加减少空间,相对来说一维数组是要在编译是结束时不能改变。

3.PTA截图

1122290-20170923204911540-1658444708.png
1122290-20170923204944275-333396825.png

3.1 学长统计代码我用了出现错误

转载于:https://www.cnblogs.com/jmu201621123073/p/7581689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值