Java 自己补充知识(2)变量 数据类型
2016-03-06 15:27
260 查看
计算机存储数据:寄存器 栈 堆
java只能控制:栈 堆
1.栈:
栈空间存取数据效率高
数据先进后出
存储空间小
JVM将基本类型的数据放在栈空间
2堆:
1.存取数据低
2.数据存放随机分配
3 堆的存储空间大
计算机高级语言普遍使用变量来管理内存中的存储数据
变量管理 基本类型存在栈中
变量管理引用类型
1.在栈中定义一个变量 变量存放数据为堆中地址
在堆中存储数据
离开作用域 jvm就回收变量
包装类
Byte Integer Long Double Float都有最大常量和最小常量 .MIN_VALUE .MAX_VALUE
Integer 还能转化二进制和十六进制
String Integer.toBinaryString(int value)
String Integer.toHexString(int value)
long float 赋值后面都要l(f)
整型比浮点型精度高 运算
float 32位1个符号位 指数8位 尾数23位 int 32 符号位1 尾数 31
double 64 1 11 52 long 64 1 63
char :java底层都是Unicode 实现 16位
转移字符:'\n' :回车 '\t' 制表符表示向右跳8-10个字符
'\u4e26':表示Unicode 码对应的字符 Unicode码一定要十六进制
小类转大类:
1小类转大类 jvm自行转换 不许额外代码
2.自动类型转换也叫“隐式类型转换” 规则:符号位自动扩展 负数补1,正数补0
3.转换情况:
(1).byte->short->int->long->float->double
(2)int和char类型的数据在某些情况下可以自动相互转换
int i = 'B';
4精度丢失:正数到浮点数 转换会损失精确度
大类转小类
强制类型转换 小心精度丢失 丢最高位
args
通过main方法的args数组可以从控制台获取一组字符串数据
Scanner:用于扫描从控制台输入的数据可以接受字符串和基本数据类型数据
通过Scanner从控制台获取数据
常用方法
1 String next() next以空格或回车做一次输入的结束所以不能接受空格
2 String nextLine() 可接受空格
3 int nextInt() 接受控制台输入的一个int类型
4 double nextDouble 。。。
5 boolean nextBoolean() 。。。 以上5条 可以控制台直接输入
6输入char类型的数据
Scanner类没有提供直接输入char类型的方法 可用charAt()从next()或nextLine()获取输入字符
eg:Scanner sc = new Scanner(System.in)
System.out.println(姓名:)
String name = sc.next(); //这里就是直接在控制台输入
java只能控制:栈 堆
1.栈:
栈空间存取数据效率高
数据先进后出
存储空间小
JVM将基本类型的数据放在栈空间
2堆:
1.存取数据低
2.数据存放随机分配
3 堆的存储空间大
计算机高级语言普遍使用变量来管理内存中的存储数据
变量管理 基本类型存在栈中
变量管理引用类型
1.在栈中定义一个变量 变量存放数据为堆中地址
在堆中存储数据
离开作用域 jvm就回收变量
包装类
Byte Integer Long Double Float都有最大常量和最小常量 .MIN_VALUE .MAX_VALUE
Integer 还能转化二进制和十六进制
String Integer.toBinaryString(int value)
String Integer.toHexString(int value)
long float 赋值后面都要l(f)
整型比浮点型精度高 运算
float 32位1个符号位 指数8位 尾数23位 int 32 符号位1 尾数 31
double 64 1 11 52 long 64 1 63
char :java底层都是Unicode 实现 16位
转移字符:'\n' :回车 '\t' 制表符表示向右跳8-10个字符
'\u4e26':表示Unicode 码对应的字符 Unicode码一定要十六进制
小类转大类:
1小类转大类 jvm自行转换 不许额外代码
2.自动类型转换也叫“隐式类型转换” 规则:符号位自动扩展 负数补1,正数补0
3.转换情况:
(1).byte->short->int->long->float->double
(2)int和char类型的数据在某些情况下可以自动相互转换
int i = 'B';
4精度丢失:正数到浮点数 转换会损失精确度
大类转小类
强制类型转换 小心精度丢失 丢最高位
args
通过main方法的args数组可以从控制台获取一组字符串数据
Scanner:用于扫描从控制台输入的数据可以接受字符串和基本数据类型数据
通过Scanner从控制台获取数据
常用方法
1 String next() next以空格或回车做一次输入的结束所以不能接受空格
2 String nextLine() 可接受空格
3 int nextInt() 接受控制台输入的一个int类型
4 double nextDouble 。。。
5 boolean nextBoolean() 。。。 以上5条 可以控制台直接输入
6输入char类型的数据
Scanner类没有提供直接输入char类型的方法 可用charAt()从next()或nextLine()获取输入字符
eg:Scanner sc = new Scanner(System.in)
System.out.println(姓名:)
String name = sc.next(); //这里就是直接在控制台输入
相关文章推荐
- C++基于栈实现铁轨问题
- C语言栈的表示与实现实例详解
- C语言实现颠倒栈的方法
- 算法系列15天速成 第十天 栈
- 一看就懂:图解C#中的值类型、引用类型、栈、堆、ref、out
- Array栈方法和队列方法的特点说明
- java数据结构之java实现栈
- 浅析栈区和堆区内存分配的区别
- 用Java代码实现栈数据结构的基本方法归纳
- PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
- 用PHP解决的一个栈的面试题
- 浅谈C#中堆和栈的区别(附上图解)
- JavaScript数据结构与算法之栈详解
- C语言之栈和堆(Stack && Heap)的优缺点及其使用区别
- Python实现栈的方法
- JavaScript数据结构与算法之栈与队列
- 【数据结构】——堆及其应用
- JAVA 虚拟机 栈
- 最小堆的构建和排序
- c++内存优化:二级间接索引模式内存池