A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© javamov 中级黑马   /  2013-9-17 19:17  /  1404 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-9-18 11:21 编辑

看了IO流,有一点我还是很疑惑,java到底是以什么结构储存的。
是像C里面数是以补码方式来储存的吗?

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

5 个回复

倒序浏览
JAVA是面向对象编程的语言,C语言是面向过程编程的语言,所以编程的思路不同。简单的C语言中的结构体不能像java类那样进行继承。另外C语言的结构体里面的变量和函数不能设置访问权限,但c++中的结构体里面的变量和函数可以设置访问权限,默认访问权限是public类可继承,默认访问权限是private结构体只是一种数据类型,不能被继承。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
本帖最后由 轩辕冰晨 于 2013-9-17 19:50 编辑

大家都知道在Java 数据存储方式。定1 int = 4 byte, 1 byte = 8 bit。以此推理那么1个int在计算机中就是以4 * 8 = 32位(bit)的方式存储的。而又由于java中的int是属于有符号类型(Java中不存在unsigned类型),所以32位的高一位是符号位,由此可以推理出int的储存大小区间

Integer.MAX_VALUE = 2147483647(十进制) = 1111111 11111111 11111111 11111111(二进制)

Integer.MIN_VALUE = -2147483648(十进制) = 10000000 00000000 00000000 00000000(二进制)

现在我们知道了二进制的概念了,但是其实二进制我想我们想象的那么单纯的表示的,他们是不同的表现方式如:原码,反码,补码

Java中的数据是以补码的形式储存的

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
java也有自己的数据结构,表、树、图等的数据结构,java也可以通过实现这些数据结构来存储数据,而在底层,程序运行时有六个地方可以存储数据,寄存器、栈、堆、静态存储、常量存储、和非RAM存储。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!

线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。

建议看一下这本书《Practical Java》

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
Java中数据存储方式主要分为:
1.寄存器(register)。2. 堆栈(stack)。3. 堆(heap)。4. 静态存储5. 常量存储6. 非RAM 存储

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马