问题1:为什么java是无关平台? |
问题:java中整数的范围? |
类似的其他
类型 | 占用存储空间 | 表示数的范围 | 表示 |
---|---|---|---|
byte | 1字节 | -128~127 | -27~27-1 |
short | 2字节 | -32768~32767 | -215~215-1 |
int | 4字节 | -2147483648~2147483647 | -231~231-1 |
long | 8 字节 | -9223372036854775808~9223372036854775807 | -263~263-1 |
不论在什么平台上都一样
问题:java中浮点数的表示? |
1. 十进制表示 :3.14 或 314.0 或 0.314
2. 科学计数法表示:
科学计数法的表示 | 真实值 |
---|---|
3.14e2 | 3.14×102 |
3.14E2 | 3.14×102 |
100E-2 | 100×10-2 |
3. java中的浮点数:
类型 | 占用存储空间 | 表示数的范围 |
---|---|---|
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
浮点数,在科学计算中用到,在普通的开发中运用较少,可以先忽略
问题:引用数据类型? |
1.java中有4种8类基本数据类型(basic type)
类型 | 类别 |
---|---|
逻辑型 | boolean |
文本型 | char |
整数型 | byte short int long |
浮点数型 | float double |
2.java中除了基本类型,其他类型都属于引用类型(reference type) 例如:实例化类产生的对象就是引用类型
问题:引用类型传递的是对对象的引用,而不是对象本身? |
1.java中值传递就是将元数据拷贝一份,将拷贝数据进行运算,拷贝数据的运算不会影响元数据
2.java中引用传递就是将元数据的地址赋值给变量,若指向这个地址的变量改变,该地址里的元数据也就会跟着改变
3.值传递类似C语言中的传值调用,将实参的值赋给形参
4.引用传递类似C语言中的传址调用,将实参的地址赋给形参
引用类型传递的是地址(对象的引用),而不是对象本身的值
问题:值传递 引用传递? |
1.在java中只有基本数据类型和 这种方式定义的string 【string str ="Java" 】 是按值传递的
2.其它都是按引用传递的
问题:堆内存 栈内存 调用过程?? |
从main函数调用进去后。实例化基础类型时,只在栈内存开辟一个内存空间,用来存放这个值。
实例化引用类型,如类时,构造函数在堆内存中构造出对象后
在栈内存中开辟空间用来给为构造方法的局部变量
在类的成员变量通过构造函数赋值结束后,将栈内存中为构造方法分配的局部变量释放
此时 类的栈内存会在开辟的空间存放该对象堆内存所在的地址。
在程序运行结束后,为构造方法分配的局部变量消失。
堆内存中对象,垃圾回收机制发现没有指向它的引用,就自动将它回收。