wei少壮不努力,老大徒伤悲呀,童鞋萌,卷起来~~
?这个是谁
这个又是谁
冯诺伊曼体系
源文件和字节码文件都是存储在磁盘中的,JVM是用C/C++写的虚拟机,是独立于自身系统之外的,这就实现的跨平台的兼容。著名的“write once,run everyonce”就是由于有虚拟机的存在。
JDK、JRE、JVM的关系
三者的关系如图所示,三者的关系是包含的关系,所以我们平时下了JDK之后就可以直接在cmd中运行java代码了~~
INT(整形)
在java中,int变量都是四个字节,和操作系统没有关系。
int变量的大小是多少呢?
我们可以在编译器打印一下~~
其中Integer是int的plus版本,是个包装类。我们很容易可以看出4字节的整形变量大小在-2^31 -> 2^31-1 , 也就大概是 -21亿 到 +21亿.
long
Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1
public class Test{
public static void main()
{
long b = 20L; //定义长整型变量
System.out.print(b);
System.out.println(Long.MAX_VALUE); //打印Long变量的最大值
System.out.println(Long.MIN_VALUE); //打印Long变量的最小值
}
}
// 运行结果 10
//9223372036854775807
//-9223372036854775808
注意,在声明long变量的时候,要将初始化的值后加上L,比如:long b = 10L
双精度浮点型变量(4个字节)
这个变量的声明方式如下:
double a = 20.1;
在Java中,小数的存储默认是double类型的,这点是区别于C语言的!
double x = 1.1;
System.out.println(x * x);
// 执行结果 1.2100000000000002
为什么在java中1.1*1.1的值不是等于2.2呢?
其实啊,Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差。
int b = 30;
int c = 60;
System.out.println(b/c); //打印什么
System.out.println(90.0/c); //打印什么
System.out.println(b/90.0); //打印什么
小作业题目!!测试一下寄几~~
单精度浮点型变量(8个字节)
float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);
初始化时记得加上f或者F,虽然不写也不会出错,但是加上会比较严谨,在java中,对于小数,优先考虑double类型变量,不太推荐使用float。
字符串(2个字节)
char ch = "x";
char ch2 = 98;
System.out.println(ch);
System.out.println(ch2);
这个要说明什么呢?我只是想说明ch2打印的是b,和c语言的ANSI表类似,java使用的是Unicode编码,那么java的字符类型变量大小是几个字节呢,是2个字节~~
字节类型变量(一个字节)
byte value = 0;
注意事项:
1. 字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 )
2. 字节类型和字符类型互不相干
3.大小在-128 ~127之间
short类型(2个字节)
布尔类型变量(true、false)
1.boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定
2.在java中,没有0表示错误,正整数表示正确的用法!!!
字符串类型变量
String name = "cmy";
System.out.println(name);
C语言没有字符串类型的变量,这是java和C语言的区别之一!!~~
没人点赞,这相当于我的笔记!