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

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

教材学习内容总结

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

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

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

字符串常量概述

String 类表明字符串。Java 程序中的全部字符串字面值(如 "abc" )都做为此类的实例实现
字符串是常量;它们的值在建立以后不能更改。字符串缓冲区支持可变的字符串。由于 String 对象是不可变的,因此能够共享。git

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

其中两种方式分别为直接赋值方式建立对象经过构造方法建立字符串对象
直接赋值(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也一样能够用来编写加解密的程序。能够说是很神奇了,并且受益不浅哈哈哈。
学习

相关文章
相关标签/搜索