java中有且仅有八种基本数据类型,记住就行,共分为四类:
第一类:整型--》byte short int long
第二类:浮点--》float double
第三类:逻辑--》boolean
第四类:字符--》char
(基础数据类型在栈 里面直接分配内存 ,而引用数据则是通过堆里的对象来对栈中的内容进行引用)
字节以及其范围:
boolean布尔型 1/8
byte 字节型 1
char 字符型 2
short 短整型 2
int 整数型 4
float 单精度 4
long 长整型 8
double 双精度 8
java中
默认的整型是int ,如果定义为long,要在后面加上L或l标识
默认的浮点类型是双精度的double,如果要定义为float,要在后面加上F火f
一个字节等于8位,一个字节等于256个数,就是-128到127一共256。
kB就是kBytes Bytes就是“字节”的意思!
K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024
1111111111(二进制)=1024(十进制)
1Bytes(字节)=8bit(比特)
一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节
一个汉字就是两个字符,占用两个字节。
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。
例:一个文件有8MBytes
例:我下载文件的速率是256KB/s,即2Mbit,这通常就是我们宽带上网的速率。
基本数据类型自动转换:
byte--》short
char--》int--》long
float--》double
int --》 float
long--》double
小可自动转大,大转小会失去精度
---------------------------------------------------------------------------------------------------------------------------------------------------
public static void main(String[] args) {
// TODO 自动生成的方法存根
double b = 123.000;
int a = 123;
if (a ==b) {
System.out.println("相等");
} else {
System.out.println("不等");
}
}
上面这段程序·的比较结果是“相等”
ps:在if语句中调换a和b的位置结果也是一样的
答:
类型对于一个数字“值”来说是没有意义的,类型和值是两个互不相关的东西,只有组合起来才有意义。就像 35 块钱和 35斤 这两个地方的 35 都是一样的数字。在编程语言中的基本类型的变量中这些都是这样处理的,这是历史原因。也正是这些历史原因,以前的C语言写的代码就太灵活,容易在不经意间出错。
如果需要逻辑意义上对类型也考虑到那就用 Double 和 Integer 这些东西,这样一来就是把类型属性和值绑定在一起成为一个基本单位。不再是分离的,面向对象的编程语言用一些“类”和“对象”的概念把这些东西整理成人类思维中对应的东西,思考起这些问题来就省事,不容易出错了。