20175311 2018-2019-2 《Java程序设计》第7周学习总结

20175311 2018-2019-2 《Java程序设计》第7周学习总结

教材学习内容总结

这一周我主要学习了第八章的内容-常用实用类String类

  • 构造String对象
  • 字符串的并置
  • String类的常用方法
  • 字符串与基本数据的互相转化
  • 对象的字符串表示
  • 字符串与字符、字节数组
  • 正则表达式及字符串的替换和分解

教材学习中的问题和解决过程

字符串常量概述

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。

创建字符串对象两种方式的区别

其中两种方式分别为直接赋值方式创建对象通过构造方法创建字符串对象
直接赋值(String str = "hello"):只开辟一块堆内存空间,并且会自动入池,不会产生垃圾。
构造方法(String str= new String("hello");):会开辟两块堆内存空间,其中一块堆内存会变成垃圾被系统回收,而且不能够自动入池,需要通过public String intern();方法进行手工入池。
在开发的过程中不会采用构造方法进行字符串的实例化

代码调试中的问题和解决过程

  • 问题1:根据书本上Example8_2.java的例子,开始时并不理解为什么有时候字符串相互比较得到的结果为true,而有时候又是false。
  • 问题1解决方案:课本中介绍了调用equals(String s)方法比较当前的字符串对象是否与参数s的字符序列相同。简单来说,就是比较两者内容是否相同,若相同返回true,不相同则返回false。 而如果直接利用“==”来比较的话,比较的是字符串的地址。
  • 问题2:对于public int indexOf (String s)的作用不理解。
  • 问题2解决方案:课本上详细提及,序列的索引位置从0开始,如果设置了具体的索引位置则从设置处开始。依次遍历之后的元素直到找到对应的字符串。

[代码托管]

https://gitee.com/H2742/HelloWorld

一些心得:

这周我们学习了字符串的定义、常用方法等内容,这周的学习主要是以看书和看代码为主。不过更多的时间还是花在了结对作业上面,因为在清明之前我们的结对作业还有很大一部分没有完成,加上这一章的内容不是特别艰涩难懂,不像之前几个章节。在看书时,例子Example8_8中,示例将密码学的加解密过程利用java的程序实现,刚刚好上周也有密码学的实验课,要求也是让我们编写代替密码体制的加解密,当时因为还没有看到这一章,所以我用的是c语言进行编写。而在看到这道例题时,我仔细的研究了一下,原来java也同样可以用来编写加解密的程序。可以说是很神奇了,而且受益匪浅哈哈哈。

posted on 2019-04-12 16:43  20175311胡济栋  阅读(190)  评论(1编辑  收藏  举报