【Java 2 Platform Enterprise Edition】基础

问题1:为什么java是无关平台?
你之前用C或者C++写的源代码,编译好后,换一种操作系统,可能就执行不了了。因为新的操作系统不识别,你需要修改你的源码,并在新的操作系统上重新编译才能运行,比如Windows,它只识别exe,它能将EXE直接翻译成01代码,却无法将java编译器产生的东西翻译成01代码。 但java有一个虚拟机的机制,用java写的源代码先经过java编译器的翻译,产生class文件,这个class文件只能在java的操作系统上识别,但如果是别的平台,java虚拟机作为一个统一的接口,屏蔽了不同机器之前的区别,java虚拟机根据底层对应不同的平台有不同的虚拟机,屏蔽底层运行平台,实现了一次编译,随处执行 。java虚拟机是字节码为机器指令的CPU,这样对于java来说,它看不见操作系统底层,只是在自己的虚拟环境中执行,就实现了java语言的平台无关性。
问题:java中整数的范围?
答: 以1byte为例 ,它用二进制码表示的范围----映射----整数

在这里插入图片描述
类似的其他

类型占用存储空间表示数的范围表示
byte1字节-128~127-27~27-1
short2字节-32768~32767-215~215-1
int4字节-2147483648~2147483647-231~231-1
long8 字节-9223372036854775808~9223372036854775807-263~263-1

不论在什么平台上都一样

问题:java中浮点数的表示?
答:
1. 十进制表示 :3.14 或 314.0 或 0.314
2. 科学计数法表示:
科学计数法的表示真实值
3.14e23.14×102
3.14E23.14×102
100E-2100×10-2


3. java中的浮点数:

类型占用存储空间表示数的范围
float4字节-3.403E38~3.403E38
double8字节-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函数调用进去后。实例化基础类型时,只在栈内存开辟一个内存空间,用来存放这个值。
实例化引用类型,如类时,构造函数在堆内存中构造出对象后
在栈内存中开辟空间用来给为构造方法的局部变量
在类的成员变量通过构造函数赋值结束后,将栈内存中为构造方法分配的局部变量释放
此时 类的栈内存会在开辟的空间存放该对象堆内存所在的地址。
在程序运行结束后,为构造方法分配的局部变量消失。
堆内存中对象,垃圾回收机制发现没有指向它的引用,就自动将它回收。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值