计算机的存储单元
Bit (一个位)
JDK 开发工具包包含了:
JVM (Java Virtual Machine是对应不同的系统有不同的版本 但是统一适配java语言)
Java系统类库
Java工具编译器和开发工具
class 是Java里面所有源代码的组织单位
final 常量:在程序运行期间 固定不变的量
字符串“helloworld” 就是一个字符串常量
整数常量
浮点数常量
字符常量 ‘a’ ‘中’ 只能有一个字符 (不能为空 必须有且仅有一个字符)
布尔常量 false true
空常量 null 代表没有任何数据 (不能直接调用 不明类型异常)
基本数据类型 和 引用数据类型(到java10为止 就这两种类型数据)
float使用的是科学计数法,虽然字节只有4个字节长度,但是表达数值的范围比 8个字节的long 要广泛
变量 (java属于强类型语言)
程序运行期间,引用存储数据的容器的一个名字 存储数据的容器将会根据前面的类型修饰定义不同长度的存储范围
一定要赋初值才能调用,否者调用异常
数据类型强转
大数值类型 强转成 小数值类型 会出现数据溢出 (具体数据转换细节待查)
在加减运算byte short char 会自动提升为int
如果声明数值的范围没有超过byte short char 在赋值的时候 java编译器自动在赋值的左侧加了强转操作
四则运算
加减乘除 + - * / (字符串中 “+”这个是连接符)
取模运算:取余数
integerA % integerB 针对整数运算才有意义
自增自减运算
先加加 (当前变量数值立刻变化)和 后加加(当前数值先被使用 然后才变化) 坑逼
jShell — java 9 新特性
直接在命令行里面写代码,适用轻量的逻辑测试
Java 数组初始化
静态初始化数组 ,先声明变量 ,后赋值的时候,右侧一定要声明数组的类型
(推测:因为右侧不声明具体类型,编译器无法理解右边的数据到底是个什么玩意儿,从 而导致赋值时发生异常)
静态初始化数组的时候 也有默认值 到 赋值的过程 ,系统默认的进行了替换大括号里面的值
java 数组
数组的length在程序运行期间 不可以改变(不可以增删操作)
Java 内存
Java内存需要划分成为5个部分
1.栈(Stack):存放的都是方法中的局部变量 。
(方法运行一定需要先在栈内存中开辟一段空间,再进栈,再运行)
作用域:一旦超出作用域,立刻从栈内存中消失
2.堆(Heap):凡是new出来的东西,都在堆内存中
堆内存中的东西都有一个地址值(16进制表达)
堆内存里面的数据,都有默认值。规则:
整数:默认为0
浮点数: 默认为0.0
字符:默认 ‘\u0000’
布尔:默认false
引用类型:默认null
3.方法区(Method Area):存储.class 相关信息,包含方法的信息
4.本地方法栈(Native Method Stack): 与操作系统相关
5.寄存器(PC Register): 与CPU相关