数据类型转换,常量池,及final关键字
来源:互联网 发布:node excelexport 编辑:程序博客网 时间:2024/06/05 00:08
(一)基本数据类型包装类
回顾:
基本数据类型并没有继承Object类。所以提供了基本数据类型包装类
其中构造方法中可以以字符串的形式传入。
1.基本数据类型包装类对象和基本数据类型之间的转换:
例如:
Float f = new Float("3.14f"); Boolean b = new Boolean("true"); float ff = f.FloatValue(); boolean bb = b.BooleanFloat();
2.字符串和基本数据类型之间的转换:
字符串转化数据类型:
eg:
基本数据类型引用 基本数据类型 =包装类.prasexxx("");
float f = Float.parseFloat("");
基本数据类型转成字符串:
String s = String.valueof(基本数据类型);
//通过上述方法实现装箱和拆箱。
3.jdk1.5后提供自动装箱拆箱
Float f = 3.14; float ff = f
注意:Integer数据类型在-127-127之间的值是存储在常量池中的。 超过值才会分配栈内存。
(二)String字符串的缓存机制
判断相等有两种方式
1(==):
用于判断两个基本数据类型是否相等,如果判断对象的话则是判断对象引用的地址是否相同,即是否是同一个对象
2(equse):
Object类中的方法。可以进行重写。
用于判断两个对象是否相同,两个字符串则是判断两个字符串内字符串的字符排列顺序是否相同。
这里要注意:当字符串的值是编译时确定的时候,字符串的值是缓存在常量池中的,而字符串对象是存储在堆内存中的.
eg:
String s1="我是字符串"//缓存在常量池中 String s2=new String(我是字符串);//存储在堆内存中
所以以上两个引用指向的是不同的对象,因此==的结果是false
常量池中只会存在一个原本,不会存在多个常量副本。因此当编译时相同的常量值,指向的是同一个地址。
String s1="我是字符串"; String s2= "我是"+"字符串";
上面这两个s1==s2 输出的是true
因为在常量池中他们指向的是一个对象
而:
String s3 = "我是"; String s4 = "字符串"; String s5 = s3+s4;
s1 == s5输出的则是false 因为s5是编译时不确定的量无法指向常量池.
(三)final关键字的用法
final修饰类:无法被继承,final修饰方法不能被重写,但是可以被重载,
final修饰变量分为两种:
final修饰的变量只能被赋值一次;由于赋值方式机制的不同因此分为两种情况:
成员变量:由于分配内存后系统自动赋初值,这样使得此变量失去意义,因此在定义成员变量时需要赋值,或者在代码块,构造器中对其赋值
局部变量:没有赋值,系统并不为它分配,栈内存,所以可以定义时可以赋值也可以不赋值,但是,形参作为局部变量,系统当将形参传递时已经赋值了所以,形参不能再次改变.
宏变量:一个变量被final修饰且是编译时确定的。那么这个变量可称为宏变量。宏变量可以将 引用指向常量池。
注意:final修饰的引用型变量,只是引用的对象地址是不可变的,即一直引用的是一个对象,但对象是可变的
eg:
final List marrayList=new ArrayList(); marrayList.add(""); //对象是可以改变的//marrayList=null //对象地址不能变,这样的操作是非法的!
- 数据类型转换,常量池,及final关键字
- JavaSE_2th_标识符、关键字、基本数据类型、类型转换、变量和常量
- 2 Java基础语法(关键字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换)
- 关键字|标识符|注释|常量|进制转换|变量|数据类型|数据类型转换
- final、数据类型转换
- 数据类型、变量、常量、数据类型转换
- js常量 数据类型 数据类型转换
- 关键字标示符包的命名注释常量进制转换变量基本数据类型引用数据类型数据类型转换
- postgres关键字、常量和数据类型
- JavaSE-day1 关键字 数据类型 常量
- JAVA_Day_02(注释 关键字 标识符 常量 进制转换 变量 数据类型 (类型转换))
- php 常量及数据类型
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- Java基础一:关键字、标示符、变量、常量和数据类型转换
- 黑马程序员——c语言关键字、标识符、数据类型、常量、变量及函数
- 抽象类及final关键字。
- final关键字及抽象类
- FLWSCRIPT语法-关键字数据类型变量常量
- 深入剖析Nodejs的异步IO
- 牛人ACM
- 【Cocos2d-x 3.0 中文基础教程】精灵帧缓存
- Unity视角控制和Camera的移动
- 琐事小记
- 数据类型转换,常量池,及final关键字
- Hello,world
- 并排打印不同形状三角形(Modified Triangle Printing Program)
- win平台C语言油槽通信
- Map 与 Multimap
- [代码实例][C语言]MD5算法
- 文章标题
- Chromium网页输入事件处理机制简要介绍和学习计划
- fread读取模式的选择