1. String

概述

程序中直接写上双引号的字符串就在字符串常量池中,new的不在池当中

java6之前常量池在方法区,java7以后将字符串常量池放在堆中

因为字符串是对象,应该在堆中

相同的字符串在常量池中只有一份

字符串内容用不可变,可以共享

字符串效果上是char [ ],但底层是byte [ ]字节数组

创建字符串的常见方式 3 + 1

new String( );

new String(char [ ]);

new String(byte [ ]);

String  str  =  “Hello”;

字符串的比较

boolean equals (Object obj) 比较字符串内容(参数可以是任意对象)

boolean equalsIgnoreCass(String str) 忽略大小写的比较

字符串的获取相关

int length( ) 拿到字符串长度

String concat (String str) 拼接当前字符串和参数字符串并返回新的字符串

char charAt (int index) 获取指定索引位置的单个字符串

int indexOf (String str) 查找参数字符串在本字符串中首次出现的位置,没有返回-1

除了length方法其他的用的比较少

字符串的截取

String substring(int index) 截取从参数位置一直到字符串末尾

String substring(int begin, int end) 截取从begin开始到end结束 [begin,end) 不包含end

字符串的分割

public String[ ]  split (String regex)

按照参数规则分割字符串,返回字符串数组

(如果按英文句点切分必须写\\. )

字符串的转数组

public  char[ ]  toCharArray( ) 将当前字符串拆分成字符数组并返回

public  byte[ ]  getBytes( )  获得当前字符串底层的字节数组

public  String  replace(CharSequence oldString, CharSequence newString) 替换并返回新字符串

2. StringBuilder

概述

java. lang. StringBuilder 又称为可变字符序列,它是一个类似于String的字符串缓冲区,通过某些方法调用可 以改变该序列的长度和内容,StringBuilder内部拥有一个数组用来存放字符串内容,进行字符串拼接时, 直 接在数组中加入新内容,StringBuilder会自动维护数组的扩容,默认空间16个字符

构造方法

StringBuilder ( ) 构造一个空的StringBuilde容器

StringBuilder (String str) 构造一个StringBuilder容器,并将字符串添加进去

常用方法

StringBuilder append(...) 添加任意类型数据的字符串形式,并返回当前对象自身(this)链式编程

StringBuilder reverse( ) 将给定StringBuilder反转(返回自己)

String toString( ) 将当前StringBuilder对象转换为String对象

String和StringBuilder的相互转化

String --> StringBuilder 通过StringBuilder的构造方法

StringBuilder --> String 通过StringBuilder的toString方法

+ “” 加空字符串

3. 包装类

概述

Java提供了基本类型与引用类型这两个类型系统,基本类型效率高,然而有时需要创建对象使用,因为对象可 以做更多的功能,这时可以使用基本类型对应的包装类,让我们可以像操作对象一样操作基本类型

装箱与装箱

装箱:从基本类型转换为对应的包装类对象

Integer  a  =  new  Integer(4);   构造方法

Integer  b  =  Integer.valueOf(4);   成员方法

拆箱:从包装类对象转换为对应的基本类型

Int  num  =  a.intValue( );

自动装箱与自动拆箱

Java 5开始基本类型与包装类的装箱和拆箱动作可以自动完成

Integer  i  =  4;  自动装箱 相当于Integer i = Integer. valueOf(4);

i  =  i  +  5;  将i对象转成基本数值(自动拆箱),加完后再次装箱,把基本数值转成对象

基本类型 --> 字符串

1.基本类型 + ““ (最常用)

2.包装类.toString(基本类型数据)

3.String.valueOf(基本类型数据)

字符串 --> 基本类型(解析)

Integer.parseInt(String s)

Double.parseDouble(String s)

注意: String类型不能转换为char类型

String StringBuilder 包装类的更多相关文章

  1. String和包装类Integer\Double\Long\Float\Character 都是final类型

    String和包装类Integer\Double\Long\Float\Character\Boolean 都是final类型 不可以改变

  2. 深入源码剖析String,StringBuilder,StringBuffer

    [String,StringBuffer,StringBulider] 深入源码剖析String,StringBuilder,StringBuffer [作者:高瑞林] [博客地址]http://ww ...

  3. String, StringBuilder, StringBuffer问题

    1. 区别 String为字符串常量,而StringBuilder和StringBuffer都是字符串变量,其中StringBuilder线程非安全,StringBuffer线程安全. 每次对 Str ...

  4. String StringBuilder StringBuffer区别

    String StringBuilder StringBuffer String类是final类,不可以被继承,且它的成员方法也是final方法,当一个字符串对象进行操作操作时,任何的改变不会影响到这 ...

  5. difference among String,StringBuilder,StringBuffer

    difference among String,StringBuilder,StringBuffer String常用构造函数 String(byte[] bytes) String(byte[] b ...

  6. java中String、包装类、枚举类的引用传递

    一般情况下,我们认为Java中了除了八种基本数据类型,其他都是对象,进行引用传递: 但是:String.包装类.枚举类作为参数传递后发现,没有达到引用传递的效果,很多人认为它是值传递! 首先,对象肯定 ...

  7. int和Integer,String和String(包装类)

    1.int和Integer的值如果是一样的,则是在内存中开辟相同的内存空间 2.但是String和String(包装类)是不一样的 代码演示: int a=1; Integer b = new Int ...

  8. 谈String,StringBuilder,StringBuffer随笔

    一.谈谈三者在实现上的区别.   (1)先看String 方法,实现了Serializable, Comparable, CharSequence三个接口 package java.lang; imp ...

  9. String,StringBuilder性能对照

    import java.util.Date; import java.util.UUID; /**  * 測试String,StringBuilder性能,推断什么时候改用String,什么时候该用S ...

随机推荐

  1. log4net的简单使用记录一下,防止下次忘记

    1.在程序的assembly.cs下添加: [assembly: log4net.Config.XmlConfigurator(Watch = true)]  (忘记这一步,弄了半天,上次好像也是这样 ...

  2. 并发编程之synchronized关键字

    synchronized关键字 synchronized关键字最主要的三种使用方式的总结 1.修饰实例方法,作用于当前对象实例加锁,进入同步代码块前要获得当前对象实例的锁 2.修饰静态方法,作用于当前 ...

  3. 统计不同渠道的的UV,再合计渠道总计UV

    ( SELECT `统计时间`, `贷款公司名称`, `推广员姓名`, UV FROM ac_statistics WHERE `贷款公司名称` = "金腰袋" AND `统计时间 ...

  4. [Flutter] 因为不讲这个重点, 全网所有 flutter 实战视频沦为二流课程

    二流课程也有其存在的价值,看到不同组件的轮流使用也是不断熟悉的过程,不过太眼花缭乱了. 授人以渔,基础用法是其一,讲清套路是其二,不然坑萌新. 那么 flutter 的套路是什么呢,我认为有下面几点: ...

  5. 【深入Java虚拟机(1)】:Java内存区域与内存溢出

    原文出处: 兰亭风雨 内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域.Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器.Jav ...

  6. C# 乐观锁、悲观锁、共享锁、排它锁、互斥锁

    悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据 ...

  7. 区块链入门(4)Truffle创建项目,编译,及项目部署

    上一章的结尾说这一次要讲编写一个智能合约部署到测试网络集群中,并进行交易,但我自己越看越觉得内容挺多的.先讲下truffle的项目创建,编译和部署的问题,然后再做上面说的事情吧. truffle是一套 ...

  8. Linux-03

    目录处理命令 目录处理命令:ls 命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能描述:现实目录文件 语法:ls 选项[-ald] [文件或目录] -a ...

  9. mysql mycat 中间件安装与使用

    一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...

  10. SpringCloud Zuul网关超时

    最近在使用SpringCloudZuul网关时,报错"NUMBEROF_RETRIES_NEXTSERVER_EXCEEDED", 查询资料后,发现: ribbon.Connect ...