String 类的理解

【前面的话】

最痛苦的工作就是大部分系统外包,所以比较少写代码,在这七个月中只写了两个月左右的代码,然后每天都在做一些比较杂的事情,希望有机会可以写一写代码,提高技术。

前段时间做了一下开发,还有两个月马上也要过年了,时间相对就比较多了,所以又回过头来看看书,巩固一下基础知识,做一些笔记,看看自己的思维,主要目的是为了自己积累,所以都是很基础、很基础的知识,请自行选择。如果看到这里要走了,祝新年快乐,也不枉进来一趟。

​   如果大家在学习Java过程中遇到什么问题,或者缺乏相关的Java学习资料,可查看右侧公告栏获取,有问题随问随答,还有我这段时间整理的一些Java学习手册,面试题,开发工具,PDF文档书籍教程,需要的话都可以免费分享给大家。

【知识汇总】

  • String类的定义:String在java中是一个比较特殊的类,因为其自己可以做一种数据类型直接定义变量,如下:

  1. String str = "hello";

  2. String str = new String ("hello");

  • String两种不同定义地理解:

  1. String str = "hello"; //可以把str理解为一个char*,str指向数据段中的字符串"hello"。

  2. String str = new String ("hello");//是new了一个对象,堆空间分配了一块内存,把对象放在里面,str 指向这个对象

  • 上面两者的区别:

  1. String str 1= "hello";

  2. String str 2= "hello";

//当定义str2的时候,系统会先检测数据段里是否已经有了“hello”,如果有了那么str2直接指向这个“hello”,这是系统的优化。也就是说不会单独再在数据段中存储“hello”,str1和str2指向的是同一个数据段,也就是str1和str2代表的数据段地址也是一样的。

//改正哈,下面1楼指出了这里有误哈:可以参见1楼。

  1. String str 3= new String ("hello");

  2. String str 4= new String ("hello");

//str4是重新new的一个对象,是在堆空间又单独存储的,也就是说str3和str4的地址是不一样的,但是存储内容是一样的。读者可以运行一下下面的代码:

代码:

运行结果:

  • 对于String类对象是不可变字符的理解:

  1. String str1="hello";

  2. str1=str1.substring(0, 3)+” p!”;

//首先substring(0, 3)表示提取字符串第一个到第三个的字母。

//对于不可变的理解就是说,存储“hello”的地方永远存储的是“hello”,除非系统自动收回,是永远不会变的。对于str1提取子串,只是让str1再次指向“hello”的引用,对于这个引用再进行改变,而原来存储“hello”的地方是不变的。读者可以运行一下下面的代码:

代码:

运行结果:

//因为第2行代码是让str1和str2指向了同一个地址段,后面改变了str1的指向,而str2指向的东西是没有改变的。

java代码】

【运行结果】

【后面的话】

将看到的、学到的东西写出来的感觉还是非常好的,一方面可以锻炼自己的思维能力,另一方面可以更加好的理解所学。

这几天看到了几句话分享一下:

  1. 你养兰花不是今天用来生气的。

  2. 昨日黄土陇头送白骨,今宵红灯帐底卧鸳鸯。

完结撒花!!!

(0)

相关推荐

  • 面向对象六大原则

    这篇文章主要讲的是面向对象设计中,应该遵循的六大原则.只有掌握了这些原则,才能更好的理解设计模式. 我们接下来要介绍以下6个内容. 单一职责原则--SRP 开闭原则--OCP 里氏替换原则--LSP ...

  • #String类简述(小白理解,小白编写,欢迎大神指点,小白跪谢)

    @ 目录 一.前言(可忽略) 二.String变量的认知 三.String类的构造方法 四.String类的基本方法 4.1 toString()方法 4.2 equals()方法 4.3 equal ...

  • Java中String类的concat方法

    在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变  这两点从源码中对String的声明可以体现: private final char[] value ; ...

  • 看完这个String类,保证你不敢在吹牛了!!!

    一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Ser ...

  • 心中有这四个词,这类阅读理解题都不怕。说说景色描写的作用。

    今天讲我们常考的一个题型:景色描写的作用. 我们经常遇到这样的题目:文中X段画线句子景色描写有什么作用? 首先,审题,规范答题格式.最重要的一点就是:分点陈述.答题时,一定要标注①②③-- 景色描写的 ...

  • 浅拷贝,深拷贝和写时拷贝(string类)

    浅拷贝浅拷贝:编译器只是直接将指针的值拷贝过来,结果多个对象共用了一块内存,当一个对象调用了析构函数将这块内存释放掉之后,另一些对象不知道这块空间已经还给了系统,再次调用析构函数进行释放时发现已经释放 ...

  • 27 String类

    27 String类 底层实现 ​ final的char数组 常用的加强版 StringBuffer 特点:线程安全.速度慢 StringBuilder 特点:线程不安全.速度快 出现的原因:解决St ...

  • 语文 | 概括类阅读理解答题技巧:4点归纳法让你准确总结,快速读懂文章……

    小学语文期末考试,有一类阅读题是必考的,那就是概括总结.这对大部分学生来说,难度有点大.文章明明看懂了,可是要组织语言去概括,不知道该怎么说.明明是概括了文章的主要内容,可是老师只给了1分,到底是我理 ...

  • VBA 类模块理解和使用总结

    目 录 VBA 类模块理解和使用总结 一.类的概念 二.类的定义 三.类详细定义 关于封装 关于多态 关于异常 关于自定义事件 四.结论: VBA 类模块理解和使用总结 一.类的概念 记得有人总结,V ...

  • string类

    2019-11-22 18:08:06 构造字符串 #include<iostream> #include<string> using namespace std; int m ...