Java中的几个重要的数据类型
来源:互联网 发布:眼睛红血丝 知乎 编辑:程序博客网 时间:2024/06/05 15:52
1.一些基本类型,像int,char这些类型(小的,简单的变量),为了方便,Java并没有把他们也创建到堆中,而是放在了堆栈中,可以高效的存取
主类型
大小
最小值
最大值
封装器类型
boolean
1-bit
–
–
Boolean
char
16-bit
Unicode 0
Unicode 216- 1
Character
byte
8-bit
-128
+127
Byte
short
16-bit
-215
+215 – 1
Short1
int
32-bit
-231
+231 – 1
Integer
long
64-bit
-263
+263 – 1
Long
float
32-bit
IEEE754
IEEE754
Float
double
64-bit
IEEE754
IEEE754
Double
void
–
–
–
Void1
Java的基本数据类型与机器无关,这点与C++不同,由于这个特性,Java的可移植性比C++强很多,号称一次编译,到处运行(呵呵,有点牛吧)
讲讲封装器类型的好处:
2.高精度数字
Java 1.1增加了两个类,用于进行高精度的计算:BigInteger和BigDecimal。尽管它们大致可以划分为“封装器”类型,但两者都没有对应的“主类型”。
这两个类都有自己特殊的“方法”,对应于我们针对主类型执行的操作。也就是说,能对int或float做的事情,对BigInteger和BigDecimal一样可以做。只是必须使用方法调用,不能使用运算符。此外,由于牵涉更多,所以运算速度会慢一些。我们牺牲了速度,但换来了精度。
BigInteger支持任意精度的整数。也就是说,我们可精确表示任意大小的整数值,同时在运算过程中不会丢失任何信息。
BigDecimal支持任意精度的定点数字。例如,可用它进行精确的币值计算
3.Java的数组
使用C++的可能对里面的数组越界的问题比较愤怒吧,往往编译器跳出来的内存错误很多是数组越界的问题;
Java可以保证被初始化,而且不可在它的范围之外访问(Java程序员应该感到庆幸了)。由于系统自动进行范围检查,所以必然要付出一些代价:针对每个数组,以及在运行期间对索引的校验,都会造成少量的内存开销。但由此换回的是更高的安全性,以及更高的工作效率。为此付出少许代价是值得的。
创建对象数组时,实际创建的是一个句柄数组。而且每个句柄都会自动初始化成一个特殊值,并带有自己的关键字:null(空)。一旦Java看到null,就知道该句柄并未指向一个对象。正式使用前,必须为每个句柄都分配一个对象。若试图使用依然为null的一个句柄,就会在运行期报告问题。因此,典型的数组错误在Java里就得到了避免
4.自定义的类
class ATypeName {/*类主体置于这里}
这样就引入了一种新类型,接下来便可用new创建这种类型的一个新对象:
ATypeName a = new ATypeName();
在ATypeName里,类主体只由一条注释构成(星号和斜杠以及其中的内容,本章后面还会详细讲述),所以并不能对它做太多的事情。事实上,除非为其定义了某些方法,否则根本不能指示它做任何事情
- Java中的几个重要的数据类型
- caffe.proto中的几个重要数据类型
- java设计模式中的几个重要原则
- Java 线程中的几个重要方法
- 命令提示符中的几个重要的命令
- Hyperledger fabric中的几个重要的角色
- Python中的重要数据类型
- Java多线程的几个重要概念
- java中几个重要的知识细节!
- JAVA的几个重要概念小总结
- Java几个重要关键字的使用
- java NIO几个重要的概念
- java中重要的几个常用类
- Java的引用数据类型(重要,面试)
- java几个重要函数
- java中操作数据库中的几个重要类
- AOP中的几个重要概念
- 计算机网络中的几个重要概念
- 线性表
- rtw
- 用C#统计文件夹大小
- C语言题面试大全
- 如何在查看PDF文档时使用金山词霸自动取词查询功能
- Java中的几个重要的数据类型
- Oracle PL/SQL Q&A
- 今天遇到的问题是tftpd的使用问题
- 第8章十一题关键函数
- 第八章十六题关键代码,输出的时候有些问题,主要看算法。
- Adodb.Stream取得图像的高宽
- Socket编程相关数据类型定义
- BUG名字的出处
- 仿QQ导航菜单(javascript)