java基本数据类型及其包装类
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基本数据类型及其包装类的更多相关文章
- Java基本数据类型、包装类与String类之间的转换
一.基本数据类型与包装类之间的转换: import org.junit.Test; public class MainTest { /** * 基本数据类型与包装类之间的转换 */ @Test pub ...
- java ->基本数据类型与包装类的概述和转化
基本类型 包装类概述 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需 ...
- Java基本数据类型与包装类、字符串之间的转换
基本数据类型和包装类的转换:1.装箱:基本数据类型→对应包装类,可分为手动装箱和自动装箱.2.拆箱:包装类→对应基本数据类型,可分为手动拆箱和自动拆箱. 例子:手动装箱:Integer iObj=ne ...
- java基本数据类型和包装类相互转换
把基本数据类型 → 包装类: 通过对应包装类的构造方法实现 除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象. 包装类 → 基本数据类型 包装类的实例方法xxxValue() ...
- Java基本数据类型和包装类
一:八大基本类型 二:基本数据类型及包装类 三:基本类型和包装类的区别 1:定义不同.封装类是对象:基本类型不是. 2:使用方式不同.包装类需要先new初始化,再通过JVM根据具体情况实例化后赋值:基 ...
- Java基础-数据类型和包装类
数据类型 分为基本数据类型和引用数据类型 基本数据类型变量存储的就是数据本身,引用数据类型的变量是保存数据的空间地址 四种基本数据类型: 逻辑型 boolean 文本型 char 整数型 byte s ...
- java基本数据类型的包装类
基本类型对应的包装类 byte(Byte).short(Short).int(Integer).long(Long).float(Float).double(Double).char(Characte ...
- java基本数据类型和包装类之间的转换(装箱,拆箱)
1.装箱:把基本数据类型转换成包装类 1.1自动装箱 int t1=2; Integer t2 =t1; 1.2手动装箱 Integer t3 = new Integer(t1); 2.拆箱:把包装类 ...
- java基本数据类型和包装类之间的区别
1.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间: 2.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用 ...
随机推荐
- MongoDB分组
MongoDB三种分组方式 group(先筛选再分组,不支持分片,对数据量有所限制,效率不高) [简单分组实测150W 12.5s] mapreduce(基于js引擎,单线程执行,效率较低,适合用做后 ...
- django练习——博客系统优化
一直准备使用Django搭建一个个人网站,最近终于开始动手,上周已经完成了基本博客功能的搭建(http://blog.csdn.net/hcx25909/article/details/2460133 ...
- 【Linux 操作系统】Ubuntu 配置 ftp freemind adb
. 1. 配置apt-get源 配置过程 : sudo vim /etc/profile 命令, 在后面添加下面的内容; 刷新配置文件 : source /etc/profie 命令; 刷新源 : s ...
- 程序员的软实力武器-smart原则
smart对于程序员来说不是仅仅意味一个法则: 面对需求和提出需求时候,smart原则可以极大的提高效率 目标管理是使管理者的工作由被动变为主动的一个很好的管理手段,实施目标管理不仅是为了利于员工更加 ...
- 理解WebKit和Chromium: Web应用和Web运行环境
转载请注明原文地址:http://blog.csdn.net/milado_nju 注:鉴于这一领域非常热,自己也投身其中,会单独开辟一个专题介绍Web应用和Web运行环境. ## 概述 Web已经从 ...
- lvs与haproxy
最近一直在看一些高可用性的负载均衡方案,当然那些f5之类的硬件设备是玩不起也接触不到了.只能看这些for free的开源方案. 目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实 ...
- linux下播放组播流出现setsockopt:No such device错误
在linux下播放组播流出现setsockopt:No such device错误是因为多播IP没有add路由表里面 可以采用如下命令完成: root@android:/ # busybox rout ...
- MTK Android添加驱动模块
1 [编写linux驱动程序] 1.1 一.编写驱动核心程序 1.2 二.配置Kconfig 1.3 三.配置Makefile 1.4 四.配置系统的autoconfig 1.5 五.编译 2 [编写 ...
- 【1】mac下面iTerm配置oh-my-zsh教程
1.安装iterm 地址如下: http://iterm2.com/ 2.安装oh-my-zsh 打开iterm输入如下命令: sh -c "$(curl -fsSL https://raw ...
- android bitmap压缩几种色彩详解
android中的大图片一般都要经过压缩才显示,不然容易发生oom,一般我们压缩的时候都只关注其尺寸方面的大小,其实除了尺寸之外,影响一个图片占用空间的还有其色彩细节. 打开Android.graph ...