JAVA的加载与执行
-编译阶段(下图红线左边为编译阶段)
-运行阶段(下图红线右边为运行阶段)
JAVA程序的编译阶段
1.编译阶段主要的任务是检查Java源程序是否符合Java语法,符合Java语法在能够生成正常的字节码文件(.class),不符合Java语法规则则无法生成字节码文件
2.字节码文件中不是纯粹的二进制,这种文件无法在操作系统中直接执行
3.编译阶段的过程:
(1)程序员需要在硬盘的某个位置<位置任意>新建一个.java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随意编写,必须符合Java语法规则
(2)Java程序员需要使用JDK当中自带的javac.exe命令进行程序的编译
javac怎么用呢?在哪用呢?
-在Dos命令窗口中使用
-javac的使用规则: javac java源文件的路径
javac是一个java编译器工具/命令
一个java源文件可以编译生成多个.class文件
字节码文件/class文件是最终要执行的文件,所以说clss文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序
不要删除,因为class文件最终执行效果可能不是我们想要的,
JAVA数据类型
A .基本数据类型
数值类型:
整数类型
byte 1字节 -128~127
short 2字节 -32768~32767
int 4字节 -2147483648~2147483647
long 8字节//Long类型后面要加L long num = 30L;
浮点类型
float 4字节//后面要加F float num1 = 50.1F;
double 8字节
注意:对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
避免使用浮点数进行比较,因为浮点数有舍入误差,都是近似值
字符类型
char 2字节 (一个字:char name = ‘A’(正确);char name = ‘AB’(错误))
boolean类型
占一位
引用数据类型:类,接口,数组
字符串拓展
String a = new String("abc");
String b = new String("abc");
String c = "abc";
String d = "abc";
sout(a==b);// false
sout(c==d);// true 字符串常量池
字节
位(bit):计算机内部数据储存的最小单位,1100 1100是一个8位二进制数。
字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写的B来表示
1B(byte,字节)=8bit(位)
字符:是指计算机中使用的字母,数字,字和符号
进制
二进制 0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x 0-9 A-F 注意都是写在前面;
类型转换
低--------------------------------------------->高
byte,short,char----->int----->long----->float----->double
运算中,不同类型的数据要先转化成同一类型,然后进行运算
//强制转换 (类型)变量名 高---->低
//自动转换 低---->高
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换成低容量时,强制转换
4.转换时可能存在内存溢出或者精度问题
运算时先转后运算
例子:
int a = 10_0000_0000;
int b = 20;
int total = a*b;// -1474836480,溢出了
long total2 = a*b;// 默认是int,转换之前已经存在问题了
long total3 = a*((long)b)// 正确
https://www.cnblogs.com/justcooooode/p/7603381.html