夯实爪哇基础-数据类型,内存

344 阅读3分钟

计算机的存储单元

Bit (一个位)

1 Byte(B) = 8 bit  八位一个字节,字节(Byte这个才是最小单位)
1 Kilo Byte(KB) = 1024B
1 Mega Byte(MB) = 1024 KB
1 Giga Byte (GB)= 1024 MB
1 Tera Byte(TB)= 1024 GB
1 Peta Byte(PB) = 1024 TB
1 Exa Byte(EB) = 1024 PB
1 Zetta Byte(ZB) = 1024 EB
1Yotta Byte(YB)= 1024 ZB
1 Bronto Byte(BB) = 1024 YB
1Nona Byte(NB)=1024 BB
1 Dogga Byte(DB)=1024 NB
1 Corydon Byte(CB)=1024DB
1 Xero Byte (XB)=1024CB


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相关