1.
类型(没有string)
八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char;
默认值与类型有关
它们的封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。引用数据类型默认为null
基本类型值:保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。
引用类型值:变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
对基本数据类型封装(wrapper类)之后,封装类可以有方法和属性,然后就可以利用这些方法和属性来处理数据,比如Ingeter对象中有parseInt(String s),可以把字符串转换为int类型等。我们都知道有些类型的数据会有默认值,基本数据类型跟封装类型的默认值是不一样的,比如int i ,如果不赋值i默认为0;但Integer j ,如果不赋值,则j 为null;因为封装类产生的是对象,对象默认值为null。
2.String类
java.lang.String类为final类型,即不可被继承、修改。String类属于特殊的引用类型,在栈空间引用,堆空间保持数据。
例:
String a = "a"; // 假设 a 指向地址 0x0001
String 类型的变量通常有两种赋值方式:一种直接赋值,例如String a = "hello world";另一种是用构造方法,例如 String b = new String ("hello world");
3.堆与栈
| 堆 | 栈 |
内存分配 | 动态 | 类加载中系统静态分配 |
回收 | 回收机制 | 内存自动释放 |
操作方式 | 链表 | 栈 |
申请方式 | New ,malloc,delet,free等 | 存放函数的参数值,局部变量值,main, |
大小限制 | 向高地址扩展的数据结构,是不连续的内存区域 | Windows下,向低地址扩展的数据结构,是一块连续内存区域,栈大小固定。 |
| 有内存地址值 |
|
| 实体是封装数据,有默认值 |
|
| 一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。 | 栈:在函数调用时第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈,然后是函数中的局部变量。 注意: 静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。 |
4.静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量
5.基本数据类型和字符串类型间转换
基本数据类型转成字符串
a. 基本数据类型+“”
b.基本数据类型.toString(基本数据类型值),例Integer.toStirng(35);
字符串转基本数据类型
xxx a=Xxx.parseXxx(String) 例:int Integer.parseInt("123");
基本数据类型转成字符串
a. 基本数据类型+“”
b.基本数据类型.toString(基本数据类型值),例Integer.toStirng(35);
字符串转基本数据类型
xxx a=Xxx.parseXxx(String) 例:int Integer.parseInt("123");
boolean b=Boolean.parseBoolean("true");
非静态方法
Integer i=new Integer("123");
int num=i.intValue();