`
yhalg1314
  • 浏览: 14045 次
  • 性别: Icon_minigender_2
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java学习笔记---8.面向对象编程03-String类的重点应用

    博客分类:
  • java
阅读更多
 

在String类这一部分很重要,分为三个问题来做笔记.


--------------------------------------------------------------------------------

1. String对象的赋值方式

      String对象有两种赋值方式, String str = "abc" 或者 String str = new String("abc") .两种赋值方式的效率是不一样的, 这是因为String类型与数组类似, 也是引用类型,具体分析一下:

      对于String str ="abc"的方式, 程序首先在栈内存中声明str引用, 然后在常量池中分配一个"abc"的匿名类对象空间,通过引用将str与"abc"联系起来. 这里感谢ZangTX老乡的提醒, "笔记"一下: 在Java源代码中,以""包围的字符串,会自动的放到常量池中. 就是说,""包围的字符串是一种匿名对象, 字符串的匿名对象是放在常量池的,而通过new创建的对象是在堆内存开辟的. 例图如下(按照上面的说法,下图有误,注意注意!):

     [

      而对于String str = new String("abc")这种方式而言,程序首先在栈内存声明str引用, 而后有些不同: 在常量池中,先分配一个"abc"的匿名对象空间,然后通过 new String()方法, 将该空间复制一份, 最后将复制后的空间与str对象引用联系起来. 这里多了一次堆内存的分配,因此比第一种赋值方式更耗空间.

      所以, 在进行String对象的赋值的时候,尽量采取String str ="abc"这样的方式, 避免使用String str = new String("abc")方式.


--------------------------------------------------------------------------------

2. String对象的比较

      String对象的比较方法有两种 : "=="和 equals()方法.

      "==" 方法用于比较String对象时,比较的是双方的内存地址的值, 即两个对象是否指向的是同一个地址;

      equals()用于比较String对象时, 比较的是两个String对象的内容是否一致.


--------------------------------------------------------------------------------

3. String对象常用的几个方法总结

      (1) 求字符串长度

       这个容易和求数组的长度混淆:

       求数组的长度: 数组名.length 如 a.length;

       求字符串长度: 字符串名.length() 如 str.length();

      (2)将字符串转变为字符数组

       使用的方法是 char[] toCharArray(). 这里要注意的是, 需要用一个字符数组即 char[] 数组来接收.

      (3)判定字符串是否相等的方法

       即上面说到的equal()方法, 该方法返回的是布尔值.

      (4)"瘦身"方法

       即trim()方法, 用于去掉输入字符串左右的空格,在实际应用中较常用到.

      (5)将字符串转为全大写/小写

       toUpperCase()方法和toLowerCase()方法

       其他还有一些如截取字符串,替换字符串等方法,在使用时查下API好了~

分享到:
评论

相关推荐

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    好啊好啊 抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下这部分的笔记. 1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记...

    java学习笔记 初学者必读

    6.1. 面向对象与面向过程 6-11 6.2. 对象的概念 6-12 6.3. 成员变量和局部变量 6-12 6.4. 成员方法 6-12 6.5. This关键字 6-13 6.6. 访问控制符 6-13 6.7. 构造方法 6-13 6.8. 数据和方法的隐藏―――封装 6-14 6.9....

    Java学习笔记-个人整理的

    {2.1.3}面向对象的编程}{47}{subsection.2.1.3} {2.2}继承}{48}{section.2.2} {2.2.1}super(), this()}{49}{subsection.2.2.1} {2.2.2}方法重写/覆盖}{50}{subsection.2.2.2} {2.3}修饰符}{51}{section.2.3} ...

    Java开发详解.zip

    000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...

    JAVA面向对象编程(孙卫琴)2

    JAVA 面向对象编程 (孙卫琴) 自己学习的笔记还有心德总结,希望大家共同进步

    记录所有有关java的学习笔记.rar

    面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据 类:类是一种相关属性和行为的集合,是抽象的 对象:对象是一类事物的具体体现,是类的一个实例 面向对象的特征:封装、继承、多态 ...

    java内部学习笔记.docx

    面向对象 16 3.1类 16 3.2对象 16 3.3包 16 3.4方法及其调用 17 3.5引用 17 3.6访问控制(封装) 17 3.7构造器 17 3.8 super()、super.和 this()、this. 18 3.9重载和重写 19 3.10继承 20 3.11 static 23 3.12 ...

    Java学习笔记(必看经典)

    JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做...

    net学习笔记及其他代码应用

    34.面向对象的语言具有________性、_________性、________性 答:封装、继承、多态。 35.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。 答:IEnumerable 、 ...

    JAVA-SE基础知识.pdf

    文档包含for/while/do-while、方法、方法重载、数组、面向对象、单例、重写、多态、抽象类、内部类、异常、String、八大基本数据类型、日期、集合、文件、多线程、网络编程、反射等基础讲解笔记。

    c#学习笔记.txt

    看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创,有文为证:华山论剑:C#对Java。另外他对我上一集中说...

    java基础笔记

    java初学者的学习笔记,很详细。 目录 0 第一节 7月15日 2 一、 IT行业相关介绍 2 二、C、C++和Java语言的比较 2 三、 JDK基础介绍 2 四、 面向对象与面向过程的比较 2 五、 Java相关介绍 2 六、 Path和Classpath...

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

    CLionProjects:学习阶段

    string :是编程语言中的字符串,字符串是一个特殊的对象,属于引用类型在的Java,C#中,字符串类对象创建后,字符串一旦初始化就不能更改,因为串类中所有字符串都是常量,数据是无法更改,由于字符串对象的不可...

Global site tag (gtag.js) - Google Analytics