在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好了~
发表评论
-
Servlet
2010-08-20 11:28 4941.什么是Servlet? ... -
MyEclipse快捷键
2010-08-20 11:27 521存盘 Ctrl+s(肯定知道) 注释代码 Ctrl+/ 取 ... -
java面试题
2010-08-20 11:26 474第一,谈谈final, finally, finalize的区 ... -
Java学习笔记---16.面向对象编程11-Java多态性,instanceof及Object类
2010-08-20 11:26 690多态是一个之前一直搞不清楚的概念,通过这次笔记,对多态的概念及 ... -
Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口
2010-08-20 11:24 935抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下 ... -
Java学习笔记---14.面向对象编程09-Java中重载与复写的区别、super与this的比较
2010-08-20 11:22 8191. 方法重载与方法复写的区别 区别 ... -
Java学习笔记---13.面向对象编程08-Java中继承的概念,子类实例化过程,super()及方法复写
2010-08-20 11:12 1001继承是OOP的三大特点之一. 这一节主要做一下继承的笔记. ... -
Java学习笔记---12.面向对象编程07-Java中的static关键字用法
2010-08-20 11:08 851static关键字应用点有3个: static变量(属性)的声 ... -
Java学习笔记---11.面向对象编程06-Java的内部类及对象数组
2010-08-20 11:04 8281. Java的内部类机制 所谓内部类,是指在一 ... -
java学习笔记---10.面向对象编程05-面向对象程序的设计步骤
2010-08-20 11:03 770这一部分需要注意一个原则, 熟练掌握OOP的程序设计方法. ... -
Java学习笔记---9.面向对象编程04-this关键字的使用
2010-08-20 11:00 729Java学习笔记---9.面向对象编程04-this关键字的使 ... -
Java学习笔记---7.面向对象编程02-类的封装性以及构造方法
2010-08-20 10:57 7921. 类的封装特性: 类的封装性是指类 ... -
Java学习笔记---6.面向对象编程01-类对象的构建及对象的引用传递
2010-08-20 10:54 667Java学习笔记---6.面向对象编程01-类对象的构建及对象 ... -
Java学习笔记---5.Java数组和方法
2010-08-20 10:53 7151. 数组的声明语法 Java中数组的声明有两种形 ... -
Java学习笔记---4.Java的分支循环语句
2010-08-20 10:51 690switch的使用如下例: view plain ... -
Java学习笔记---3.运算符与表达式
2010-08-20 10:49 679这一部分需要再强调的东西不多,因为运算符表达式都是平时最常用的 ... -
Java学习笔记---2.Java标识符和基本数据类型
2010-08-20 10:48 929这一块里面,标识符比较简单,没有什么需要记录的东西. ... -
Java学习笔记---1.Java发展及JDK配置
2010-08-20 10:47 768Java的老东家是Sun公司(Sun的全名,Stanford ...
相关推荐
好啊好啊 抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下这部分的笔记. 1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记...
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....
{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} ...
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...
JAVA 面向对象编程 (孙卫琴) 自己学习的笔记还有心德总结,希望大家共同进步
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据 类:类是一种相关属性和行为的集合,是抽象的 对象:对象是一类事物的具体体现,是类的一个实例 面向对象的特征:封装、继承、多态 ...
面向对象 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的面向对象编程--------课堂笔记 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做...
34.面向对象的语言具有________性、_________性、________性 答:封装、继承、多态。 35.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。 答:IEnumerable 、 ...
文档包含for/while/do-while、方法、方法重载、数组、面向对象、单例、重写、多态、抽象类、内部类、异常、String、八大基本数据类型、日期、集合、文件、多线程、网络编程、反射等基础讲解笔记。
看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创,有文为证:华山论剑:C#对Java。另外他对我上一集中说...
java初学者的学习笔记,很详细。 目录 0 第一节 7月15日 2 一、 IT行业相关介绍 2 二、C、C++和Java语言的比较 2 三、 JDK基础介绍 2 四、 面向对象与面向过程的比较 2 五、 Java相关介绍 2 六、 Path和Classpath...
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...
string :是编程语言中的字符串,字符串是一个特殊的对象,属于引用类型在的Java,C#中,字符串类对象创建后,字符串一旦初始化就不能更改,因为串类中所有字符串都是常量,数据是无法更改,由于字符串对象的不可...