当前位置: 首页 > news >正文

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

计算机的存储单元

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







转载于:https://juejin.im/post/5c18c7ee5188253847206a76

相关文章:

  • Hibernate关联关系注解配置简单理解
  • 五大好用的开源MySQL管理工具推荐
  • day--42 前端基础小结
  • 【python】【基础】mac安装python3及pip
  • Using system view: sys.sysprocesses to check SqlServer's block and deadlock
  • JavaScript中for in 和for of的区别
  • 对于你们驳来驳去的《停止学习框架》,我有话说!
  • Linux下调整ext3分区大小【转】
  • 大快搜索获评“2018中国大数据基础软件领域领军企业”
  • leetcode讲解--894. All Possible Full Binary Trees
  • React降级配置及Ant Design配置
  • 解决iOS10的Safari下Meta设置user-scalable=no无效的方法
  • 中国智慧城市“热战”的2018
  • django之中间件及CSRF跨站请求伪造-68
  • Javascripit类型转换比较那点事儿,双等号(==)
  • extjs4学习之配置
  • JavaScript新鲜事·第5期
  • js学习笔记
  • mysql外键的使用
  • Python中eval与exec的使用及区别
  • Service Worker
  • text-decoration与color属性
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • uni-app项目数字滚动
  • 聊聊redis的数据结构的应用
  • 漂亮刷新控件-iOS
  • 正则表达式
  • scrapy中间件源码分析及常用中间件大全
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #stm32驱动外设模块总结w5500模块
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.each()与$(selector).each()
  • (1)Android开发优化---------UI优化
  • (二)WCF的Binding模型
  • (十六)串口UART
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net 4.0并行库实用性演练
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 使窗口永不获得焦点
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET轻量级ORM组件Dapper葵花宝典
  • @AutoConfigurationPackage的使用
  • @Autowired标签与 @Resource标签 的区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [Asp.net mvc]国际化
  • [C++]STL之map
  • [C++]高精度 bign (重载运算符版本)
  • [iOS]如何删除工程里面用cocoapods导入的第三方库