java虚拟机
JVM (Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
跨平台 :任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系 统上,这个特性称为Java语言的跨平台特性 。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM 运行在操作系统上。
Java的虚拟机本身不具备跨平台功能的,每个操作系统下都有不同版本的虚拟机
jre jdk
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。 我们想要开发一个全新的Java程序,那么必须安装 JDK 。
java程序开发步骤
编写、编译、运行。
Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再通过Java虚拟机 解释成机器码运行。
字节码文件是经过编译器预处理过的一种文件,是JAVA的执行文件存在形式。
什么是java虚拟机?为什么java被称作是跨平台的编程语言?
JVM是Java Virtual Machine(Java虚拟机)的缩写,它是一个虚构出来的计算机,是用来运行java的字节码文件的。
java的跨平台实际上指的是字节码文件的跨平台,字节码文件是运行在jvm上的,与平台无关。 不同的操作系统有相对应的jvm,一套相同的字节码文件经过不同的jvm解释成相对应的机器码执行,这就是跨平台。
什么是机器码?
完全依附硬件而存在~并且不同硬件由于内嵌指令集不同,即使相同的0 1代码 意思也可能是不同的~换句话说,根本不存在跨平台性~比如~不同型号的CPU,你给他个指令10001101,他们可能会解析为不同的结果~
java基本数据类型
Java中的默认类型:整数类型是 int 、浮点类型是 double 。
虽然float占4个字节,但是采用科学技术法,取值范围远远大于8个字节的long
数据类型转换
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
自动转换
当表达式两边数据类型不一致时,取值范围小的数据或者变量,可以直接赋值给取值范围大的变量
- 不需要进行代码的特殊处理
- byte,short,char数据,只要参加运算,就会自动转换成int类型
- 表达式最终的数据类型,一定是表达式中取值范围最大的类型
byte、short、char -> int -> long -> float -> double
long num = 100;
double num = 100;
强制转换
浮点转换成整数,直接取消小数点,可能造成数据损失精度。
int num = (int)6000000000L;
常量和变量的运算的注意事项
byte a = 1;
byte b = 2;
byte c = 1 + 2;
byte d = a + b;
java运算符
++ - -
-
单独使用a++,a- -,++a,- -a,是没有区别的,都是加1,或者减1 -
和其他操作(赋值,打印)一起使用,
int a = 1;
a++;
sout(a)
int b = 1;
int c = ++b;
sout(b);
sout(c)
int d = 1;
int e = d++;
sout(d)
sout(e)
复合赋值运算符
+=,-=,*=,/=,%=
int a = 1;
int b =2;
int a += b;
逻辑运算符的短路效果
and,表达式左边为false,右边不计算 or,表达式左边为true,右边不计算
三元运算符
int a = true ? 1 : 2;
java流程控制语句
switch
- case后面的常量值不能重复,case后不写break,匹配成功依然会对下一个case值进行匹配,这叫case穿透
- switch后面表达式的数据类型:byte/short/char int String 枚举
- default:所有值都不匹配时,执行这个
public static void main(String[] args) {
int month = 3;
switch (month) {
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("火星来的吧,滚...");
break;
}
System.out.println("game...over...");
}
部分知识引用自: https://baijiahao.baidu.com/s?id=1614769568984126810&wfr=spider&for=pc(java的方法中是引用传递还是值传递) https://www.nowcoder.com/questionTerminal/a90230b35b5f4a7287f779ecdd88841d https://blog.csdn.net/u010945925/article/details/9050917
在农村讲知识,是过不了日子的。
一位左右为难的一分钱都没有的母亲
|