java中一切都是对象这句话是不是错的?
题目描述
经常听到这句话,这句话也是所谓老鸟给新手说的看起来最高级的一句话,在很多教材上也被广泛引用。网上也有很多不一样的理解方式
比如
JAVA的一切都是为对象服务
- 但是如果这么理解,那也相当于给“java中一切都是对象”这句话判了死刑。我给客户服务,但我不是看客户,java的一切可以都给对象服务,但是不能因此就说一切都是对象。
java的一切都是对象,都可以调用方法。
- 很明显基本数据类型就不是对象,否则也不需要引入包装类来帮助解决这个问题。
所以,java中一切都是对象这句我们几乎每天都能听到的话,是不是本身就是个伪命题。
回答:
不是
- 基本类型不是对象
static
的东西也不依赖对象存在
回答:
java中一切都是对象这句我们几乎每天都能听到的话
我怎么没听过
回答:
我们大二学习的JAVA是这本教材。
里面虽然没有这句话,不过的确也体现了这个思想。
java中一切都是对象
【老鸟给新手说的看起来最高级的一句话】
我的理解是,每一中语言都是一种思维模式的学习,来帮助人表达思维。而JAVA的核心思维就是【对象】,所以老鸟们才喜欢这样说吧。
C语言中,可用的数据类型(基本上)已经预设好,比如int, float。在Java中,我们除了可以用这些预设的数据类型外,还可以通过类来定制自己想要的数据类型,然后通过组合来使用。但基本类型和普通类型还是有所区别的。基本类型经常被使用,且所占据内存空间不大,所以在
Java中,为了效率起见,这些基本类型与普通的类型(也就是自定义的类)的内存管理方式不同。比如,基本类型一旦声明就会被分配内存空间,而普通类型需要使用new关键字来分配内存空间。
Java为每个基本类型提供了相应的普通类型。比如int基本类型对应Integer类型。如果将基本类型的对象转成相应的普通类型变量,所谓的基本类型也就成为了一般意义上的类型(不再有内存管理上的不同)。
下面是一些学习笔记:
Java语言假设我们只进行面向对象的程序设计,即在开始用Java进行设计前,我们需要将思想切换到面向对象的世界中。
1.用引用操纵对象
每种编程语言都有自己操纵内存中元素的方式。是直接操纵元素还是用某种基于特殊语法的间接表示来操纵对象?
Java中将一切都视为对象,这样就可采用较为单一固定的语法。
虽然将一切都看做对象,但操纵的标识符实际上是对象的引用。
拥有一个引用,并不一定与一个对象相关联。
2.必须由使用者创建所有对象
1).Java内存分配
五个地方可以存储数据:
a.寄存器。位于处理器内部,速度最快,但数量有限,不能直接控制。
b.堆栈。位于RAM中,通过堆栈指针可以从处理器那里获得直接支持。速度仅次于寄存器。
但Java系统必须知道存储在堆栈的所有项的生命周期,这样才能操纵堆栈指针分配或者释放内存。
对象引用存储在堆栈中(堆栈还存储着其他项),但对象不存储在堆栈中。
c.堆。位于RAM区,一种通用的内存池,存放所有的Java对象。编译器不需要知道存储在堆里的数据的存活时间。速度慢于堆栈。
d.常量存储。常量值通常存于程序代码内部。
e.非RAM存储。如持久化对象,数据存储在磁盘上。
2).一切皆是对象的特例:基本类型
new创建对象存放在堆上,但创建简单、较小的变量没有必要用new。因此Java采用创建并非是引用的自动变量来存储这类小而简单的变量,并将它们放在堆栈里,以提高效率。这类自动变量就是Java的基本类型。
基本类型共9种,如下表所示:
基本类型 大小 最小值 最大值 包装器类型
boolean — — — Boolean
char 16-bit Unicode 0 Unicode 216-1 Character
byte 8 bits -128 +127 Byte
short 16 bits -215 +215-1 Short
int 32 bits -231 +231-1 Integer
long 64 bits -263 +263-1 Long
float 32 bits IEEE754 IEEE754 Float
double 64 bits IEEE754 IEEE754 Double
void — — — Void
从表中可知基本类型的特点:占用存储空间大小不变;所有数值类型都是有符号数;具有包装器。
占用存储空间大小不变提高了Java程序的可移植性。
Java中一切皆对象,但基本类型却不是对象,为了解决这个问题,Java让每个基本类型都对应了一个包装器类型。
包装器类型将基本类型包装起来,添加了属性和方法。Java SE5自动包装功能可以将基本类型转换为包装器类型,当然也可以反向转换。
基本类型和它们的包装器类型有哪些区别呢?
a)包含内容不同。基本类型只是表示一个数据,包装器类型包括数据和方法。
b)声明方式不同。包装器类型需要使用new来声明,而基本类型不需要。
c)未进行初始化时,默认初始值不同。如int作为类成员变量时,默认初始值为0,而包装器类型都为null。
d)存储位置不同。基本类型存储在堆栈中,而包装器类型的引用存储在堆栈中,引用引用的对象存储在堆中。
e)使用方式不同。基本类型可以直接赋值,不能放进List,Map等集合类中,而包装器类型可以。
Java还提供了两个用于高精度计算的类,BigInteger(支持任意精读的整数)和BigDecimal(支持任何精度的定点数)。它们大体上属于包装器类型,但没有对应的基本类型。
回答:
明显不是的,别想太多?
回答:
你可以把语言本身当成个对象
回答:
面向对象的语言
以上是 java中一切都是对象这句话是不是错的? 的全部内容, 来源链接: utcz.com/p/181154.html