冯诺依曼体系结构
JAVA核心优势:跨平台---通过JVM(java虚拟机)来实现
JVM:Java虚拟机的一种规范
标示符:只能以下划线、美元符号($)、字母、数字组成,不能以数字开头
float:(占用4个字节的储存空间)浮点数并不能精确地表示所有的小数,存在舍入误差
double占用8个字节的存储空间
char占2个字节
int占4个字节
Boolean类型(占一位不是一个字节),一个字节占8位
需要精确的高可以使用BigDecimal类
double和float 都不能精确的表示一个数值
自动数据类型转换:容量小的数据类型可以转换为容量大的数据类型
为什么java能够跨平台运行:
java之所以能够实现跨平台运行,是因为他根本不直接运行在任何底层平台上,而是需要在哪里运行,就在哪里事先准备好自己的java平台。
JVM(java虚拟机),是java语言的运行环境
java编译器针对jvm产生class文件,因此事独立于平台的
java解释器负责将jvm的代码在特定的平台上运行的
java虚拟机是不跨平台的。
class文件---字节码文件
main方法的作用:
程序的入口保证程序的独立运行被jvm调用
数据类型:基本数据类型和引用数据类型
基本数据类型:数值型(整数类型(byte、int、long、short)和浮点类型(float、double))、字符型(char)、布尔型(Boolean)
引用数据类型:类、枚举、注解、接口(interface)、数组([])
占用字节数:byte(8),short(16),int(32),long(64),float(32),double(64)
小----->大byte,short,char<int<long<float<double
整型默认:int
浮型点默认:double
类型转换:自动类型转换也叫隐式类型转换(向上转型)(小---->大)、强制类型转换也叫显式类型转换(大------>小)
++在变量的后面,表示先运算在自身加1
++在变量的前面,表示先自身加1在运算
1.0/0 或者1/0.0 结果为Infinity(正无穷大)因为数值类型被提升为double型 double的精度比int精度高
+=,-=,*=,/=,%=:有一个隐式的类型转换
异或(^):相同就为FALSE,不同就为TRUE
"&"和"&&"的区别:单与时无论左边真假右边都进行运算,双与时,如果左边为真右边参与运算,如果左边为假,那么右边不参与运算
"|"的"||"区别同理:双或时,左边为真右边不参与运算
"^"和"|"不同之处时,当左右都为TRUE时,"^"结果为FALSE
短路与(&&):当&&左边的运算为FALSE时,就不在判断右边的运算了
短路或(||):当||左边的运算为TRUE的时候,就不在判断||右边的运算了。
三元运算符:
Boolean表达式?语句1:语句2
当Boolean为TRUE时执行语句1,当Boolean表达式为FALSE时,执行语句2
移位:
左移(>>)与右移(<<)
左移(右移):将二进制码整体左移指定位数,左移之后的空使用‘符号位’来补充
1)若是正数,则使用0来补充
2)若是负数,则使用1来补充
无符号右移(>>>),将二进制码整体右移指定位数,向右移一位就是除以2,
右移之后的空使用‘0’来补充
循环的控制:
控制外层循环,可以使用标签(outer:for(){} break outer;)
终止外层循环:break 外层循环的标签
跳出外层循环:continue 外层循环的标签
return:结束循环所在的方法
break,return,continue语句后面不能再有语句
System.out.print()可以不传参传参
System.out.print()必须传参