15--JAVA中类型
03年之前写Delphi程序写习惯了,发现在JAVA这个随处充满面向对象的概念中实际上是没有全局变量这么一个概念的,不像Delphi程序因为有个Application类作为范围,任何变量依附在该范围内便可生存,然而JAVA中都是以面向对象为根本的架构,所以在JAVA中编码要本着所有的事物都必须依附在类的代码中,类与类之间的交互成为代码编写者主要工作。所以对于全局变量基本上要加上public,static,final的修饰才能被作为全局变量作用着。
在JAVA的世界里,一切都是对象。当对象创建时,这些对象会被放在JAVA特意指定的对象堆上,这些堆并非指定的普通堆,在可回收的堆!这也是JAVA一直灌输的垃圾回收机制。其实机制也很简单,就是JAVA虚拟机用了一段内存区域管理你创建的对象,并且对这些对象进行监视,当发现这些对象不再被使用时就会打上回收的标签。垃圾回收的机制就会启动开始清除内存!
JAVA是一个非常注重类型的语言,所以在代码中我们必须声明所写变量对象的类型。类型基本上是以JAVA本身的Primitive类型像int,blooean,float等,这些类型实际上是该值字节表示的。另一种则是对对象的引用。各种变量都会被系统分配相应的内存大小来装存信息,当装载不同类型的变量时便可能出现溢出的现象。我们也经常运用对象作为变量使用,实际上并没有一个有对象变量的东西存在,所有的都只是在引用这个对象的变量,也可以理解是类指向对象的指针。引用变量的值其实表示存储于堆之上的对象的存储方法。
eg:Tree mytree=new tree();我们可以这么理解,Tree mytree,java虚拟器分配一个空间给mytree,它引用的变量则是Tree并且永远都不能改变。new tree()则是虚拟机分配了一个堆空间给了tree对象。mytree=new tree()这句代码的意思就是将mytree赋值给了tree对象了,连接对象和引用。一旦结束引用,意味着引用的对象即将结束自己的生命周期将会被回收,那么引用的指针将为NULL即是我们常说的空指针。在JAVA的标准函数库里有许多复杂的数据结构,像MAP,SET,Tree等。这个结构不管多么复杂其实一样的都缺少不了连接对象和引用。