1.String类

String s1 = "hello world";

String s2 = "hello world";

String s3 = s1 + "桔子桑";

String s4 = s1 + "桔子桑";

String s5 = new String("桔子桑");

String s6 = new String("桔子桑");

s1 == s2;            //返回true;

s3 == s4;            //返回false;

s5 == s6;            //返回false;

分析:s1-s2:声明一个对象"hello world",内存中没有这个对象,于是新建;

指针s1指向这个对象在内存中的地址,创建s2指针时发现内存中已经有"hello world"对象,

于是指针直接指向这个已有的对象,所以s1和s2指向的是内存中相同的地址。

s3-s4:只要是使用+操作符对变量的修改,都是新建一个对象,就算这个修改后的结果可以在

内存中找到,也是新建一个对象。

s5-s6:new 一个字符,也是新建一个对象,不会考虑这个对象之前在内存中有没有。

总结:使用操作符+和new出来的对象都是新对象,在内存中是拥有自己独立的空间的,不会和他人共享内存。

String方法创建的对象是不可更改的,String s7 ="hello";String s7=s7+"桔子桑",先后两个s7占据了内存中的两块位置。

2.String类方法

其实String也是java中的一个类,作为类,它自然有它的方法,这里简要列举几种常见的:

String str ="桔 子 桑";

str.length();                                //字符串长度:5

str.indexOf('桑');                        //字符“桑”的位置:4

str.split(" ");                                //按空格拆分成字符串数组

str.substring(1,4)                       //截取 [1,4)位的子串:" 子 "

str.equals(" 子 ")                         //是否含有字符串" 子 ",字符串之间的比较,str是字符串," 子 "也是三个字符的字符串

str.charAt(4)                               //索引为4位置上的字符"桑",字符之间的比较用==,str.charAt(4)=='桑',返回true

3.StringBuilder类

之前我们看了String类存储字符串,缺点在于String具有不可变性,当对字符串进行+操作时,会不断创建临时变量;

StringBuilder类创建的对象是内容可变的;

StringBuilder str1 = new StringBuilder();                                   //空的对象

StringBuilder str2 = new StringBuilder("桔子桑");                     //存储字符串"桔子桑"

与此相同的还有StringBuffer类,StringBuffer类是线程安全的,而StringBuilder没有实现线程安全,所以性能高,通常

我们要创建一个可变的字符串对象,优先考虑StringBuffer类。

4.StringBuilder类方法

StringBuilder str3 = new StringBuilder("桔子桑");

str3.append("java");                       //在末尾追加字符串"java";桔子桑java

str3.insert(3,"hello");                        //在索引为3位置上添加字符串"hello";桔子桑hellojava

String str4 = str3.toString();             //转化为String对象

5.包装类

我们已经知道了java里的一些数据类型,原本它们只能用来定义一个数据类型,例如:string int char double等

其实,java还额外为每个数据类型添加了一个配套的类;

为string添加的类名为String,当然String类内部自然就有一套相应的方法,这一点上面第二条已经列举出来了;

相似的,int的包装类名为Integer,Integer int1=new Integer(520);double int2=int1.doubleValue();

创建Integer包装类对象int1,并赋值520,然后调用Integer类的方法doubleValue()将int1转化为double型数据赋值给int2。

其他数据类型也定义了这样的包装类和方法,在此就不一一赘述了。

6.基本类型和包装类之间的转换(装箱和拆箱)

int a = 520;

Integer x = new Integer(a);               //手动装箱

Integer y =  a;                                   //自动装箱

Integer z = new Integer(2017);

int b = z.intValue();                           //手动拆箱

int c = z;                                           //自动拆箱

7.基本类型和字符串之间的转换

基本类型==>字符串

int a = 123;

String b = Integer.toString(a);          //基本类包装类的toString()方法

String c = String.vauleOf(a);            //String的vauleOf()方法

String d = a + "";                              //基本类型加上一个空字符串

字符串==>基本类型

String str ="88888";                         //该字符串转化的类型必须可行,你总不能把中文转化为数字吧

int f = Integer.parseInt(str);             //基本类包装类的parseXxx()方法

int g = Integer.vauleOf(str);             //基本类包装类的vauleOf()方法

8.Date类和SimpleDateFormat类

Date date = new Date();                 //获取系统时间

SimpleDateFormat way = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      //定义一种时间显示样式

way.format(date);                            //对时间使用显示样式,返回字符串(format)

String str = "2017-10-23 12:57:58";//设置时间字符串,格式要和方法匹配

way.parse(str);                                //对时间字符串使用显示样式,返回日期(parse)

9.Calendar类的使用

Calendar c = Calendar.getInstance();//实例化一个Calendar对象

int year = c.get(Calendar.YEAR);       //获取年

int month = c.get(Calendar.MONTH); //获取月份

Date date = c.getTime();                     //获取时间,转化为Date对象

10.Math类的使用

Math类下常用的方法主要有以下几种:

方法名                      返回值                     用途

Math.round(a)           long                      参数a四舍五入后的整数

Math.floor(a)             double                  参数a向下取整

Math.ceil(a)               double                  参数a向上取整

Math.random()          double                  返回 [0,1)之间的随机浮点数

这一篇讲到的都是java里面一些常用的类及其方法,毋须死记,写得多了,自然就记住了。

java基本数据类型及其包装类的更多相关文章

  1. Java基本数据类型、包装类与String类之间的转换

    一.基本数据类型与包装类之间的转换: import org.junit.Test; public class MainTest { /** * 基本数据类型与包装类之间的转换 */ @Test pub ...

  2. java ->基本数据类型与包装类的概述和转化

    基本类型 包装类概述 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需 ...

  3. Java基本数据类型与包装类、字符串之间的转换

    基本数据类型和包装类的转换:1.装箱:基本数据类型→对应包装类,可分为手动装箱和自动装箱.2.拆箱:包装类→对应基本数据类型,可分为手动拆箱和自动拆箱. 例子:手动装箱:Integer iObj=ne ...

  4. java基本数据类型和包装类相互转换

    把基本数据类型 → 包装类: 通过对应包装类的构造方法实现 除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象. 包装类 → 基本数据类型 包装类的实例方法xxxValue() ...

  5. Java基本数据类型和包装类

    一:八大基本类型 二:基本数据类型及包装类 三:基本类型和包装类的区别 1:定义不同.封装类是对象:基本类型不是. 2:使用方式不同.包装类需要先new初始化,再通过JVM根据具体情况实例化后赋值:基 ...

  6. Java基础-数据类型和包装类

    数据类型 分为基本数据类型和引用数据类型 基本数据类型变量存储的就是数据本身,引用数据类型的变量是保存数据的空间地址 四种基本数据类型: 逻辑型 boolean 文本型 char 整数型 byte s ...

  7. java基本数据类型的包装类

    基本类型对应的包装类 byte(Byte).short(Short).int(Integer).long(Long).float(Float).double(Double).char(Characte ...

  8. java基本数据类型和包装类之间的转换(装箱,拆箱)

    1.装箱:把基本数据类型转换成包装类 1.1自动装箱 int t1=2; Integer t2 =t1; 1.2手动装箱 Integer t3 = new Integer(t1); 2.拆箱:把包装类 ...

  9. java基本数据类型和包装类之间的区别

    1.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间: 2.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用 ...

随机推荐

  1. hibernate 关于主键

    本文为北京尚学堂hibernate视频的学习笔记 1在xml中定义单个主键生成策略 1.1通过xml <id name="id" type="long" ...

  2. UNIX环境高级编程——标准I/O库函数和Unbuffered I/O函数

    以写文件为例,C标准I/O库函数(printf(3) .putchar(3) .fputs(3) )与系统调用write(2) 的关 系如下图所示. 库函数与系统调用的层次关系 open .read ...

  3. javascript之DOM编程改变CSS样式(简易验证码显示)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Linux Shell 命令--tr

    tr        用来从标准输入中通过替换或删除操作进行字符转换                -c或--complerment 取代所有不属于第一字符集的字符.                -d ...

  5. vim的颜色修改,高亮设置。

    在vim.org 搜一下,下载一个color scheme, 放到~/.vim/colors/下(linux)或者$HOME/.vim/colors/下(windows) 再在你的.vimrc文件中加 ...

  6. 如何反编译APK?

    1.概述 一些商业的app都包含很多精美的图片还有一些比较好的配置文件,以前某师兄就说过apk把后缀改为zip,然后解压一下就可以获得很多图片资源,但是这时候你打开一下解压出来的xml资源全是乱码.通 ...

  7. InfiniDB 修改一行的效率?

    InfiniDB引擎的DML速度比较慢,无论设置自动提交开关为关闭或开启,插入性能都很糟糕,但更新和删除的效率还可以,并且不支持truncate表操作. 删,改 效率高 插入,效率低(测试,在数据量稍 ...

  8. SpriteBuilder中的粒子系统属性

    一个粒子发射器可以有2种模式,放射状和重力的(radial or gravity) 放射状模式允许你去使用发射器创建粒子旋涡状环绕在指定位置的效果. 当启用重力效果,你可以使得粒子在任何方向任意飞行, ...

  9. 报表软件公司高价悬赏BUG,100块1个我真是醉了

    一直在用帆软的报表软件FineReport来做项目,也一直关注着这个公司的发展. 看到<提BUG,拿奖金>的这个活动,有些疑问和思考. 一般FineReport新版本在正式发布前,都会经过 ...

  10. Struts2技术内幕 读书笔记二 web开发的基本模式

    最佳实践 在讨论基本模式之前,我们先说说一个词:最佳实践 任何程序的编写都得遵循一个特定的规范.这种规范有约定俗称的例如:包名全小写,类名每个单词第一个字母大写等等等等;另外还有一些需要我们严格遵守的 ...