Java基础学习(一),java基础学习
Java基础学习(一),java基础学习
- java程序运行关系
java文件经过java编译器(javac.exe)编译成java字节码程序(.class文件),由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm),字节码文件(.class)就会在java虚拟机中执行
- java基本数据类型(一个字节8个bit)
byte(一个字节):
默认值:0
short(二个字节):
默认值:0
int(4个字节):
默认值:0
long(8个字节):
默认值:0L
单精度(float):
默认值:0.0f
单精度数的输出只能保证6到7位的有效数字,其余各位不准确,但是在内存中存放的是准确的。
双精度(double):
默认值:0.0d
float和double的精度是由尾数的位数来决定的。
char:
char类型是一个单一的16位unicode字符
最小值:\u0000(即为0);
最大值:\uffff(即为65535)
char数据类型可以储存任何字符
浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
注意:对于数据类型的基本类型的取值范围,我们不需要强行去记住,因为它们的值都已经以常量的形式定义在对应的包装类中了Byte.SIZE(二进制位数)、Byte.MIN_VALUE......
- 基本类型和引用类型的差别
Java把内存分为两种:一种是栈内存,另一种是堆内存
在函数的定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,而实际的对象是在存储堆内存中。
如:int i =1 ;直接在栈内存中分配空间
Integer i = 1;对象值1是在堆内存中的,而i(引用变量)是在栈内存中
在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理
因为在堆中分配内存空间的时间远大于在栈中分配存储空间,所以c的运行速度比Java快多了
如Java中的容器类,ArrayList,HashMap等,像int,double这种基本数据类型是放不进去的,因为容器类装object的,Java为每种基本数据类型都提供了对应的封装类
基本数据类型的缺省值与它们的类型有惯,但是都有值,而引用类型的缺省值为null.
int 是基本类型,(int)(Math.Random()*100)就是一个数,可以进行加见乘除。 Integer是class ,那么 new Integer(temp)就是一个对象了,可以用到Integer这个class的方法,例如用intvalue()可以返回这个int的值
- Java常量
定义常量:final double PI_NUM = 3.14171;
byte、short、int、long都可以用10进制,8进制,16进制来表示,前缀0表示8进制,0x表示16进制
- 自动类型转换
- 隐含类型转换
相关文章
- 暂无相关文章
用户点评