文档章节

<JAVA思想> 一切皆是对象!

郏高阳
 郏高阳
发布于 2012/05/20 14:55
字数 1132
阅读 223
收藏 0

3 月,跳不动了?>>>

最近重新开始读《Java编程思想》,系统的复习一下Java基础知识,只有打好了坚实的基础,才能有进一步的提高。

在读的过程中发现好多东西又有了更深的理解,还有些东西已经遗忘,为了避免再次遗忘,在这里简单的做一些记录,以备以后查阅。

1.       在Java里一切都被视为对象,但操纵的标识符实际上是一个引用,可以将这一情绪想象成遥控器和电视机,只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或者减小音量时,实际操纵的知识遥控器(引用),再由遥控器来调控电视机(对象)。

2.       对象存储在什么地方?

1)  寄存器,这是最快的存储区,处在处理器内部。

2)  堆栈,位于通用RAM(随机访问存储器)中。

3)  堆,一种通用的内存池,也位于RAM区,堆不同于堆栈的地方是编译器不需要知道存储的数据在堆里存活多长时间。

4)  常量存储,常量通常直接存储在程序代码内部。

5)  非RAM存储,例如流对象和持久化对象。

3.       所有数值类型都有正负号,所以不要试图去寻找无符号的数值类型。

4.       Java有一个垃圾回收器,用来监视new创建的所有对象,并辨别哪些对象不会再被使用,随后就会释放这些对象的内存空间,以便供其他新的对象使用。也就 是说你根本不需要担心内存回收问题。你只需要创建对象,一旦不再使用,他们就会被自行回收,这样做就消除了内存泄露的问题(是由于程序员忘记释放内存引起 的)。

在项目中遇到hibernate报错,提示内存中已存在一个与当前提交的对象主键相同的对象,发生冲突,这就是由于没有清楚内存中存在的对象引起,可以用session.clear()来清除内存中的对象(以hashmap的方式存放在内存中)。

5.       在Java中你所做的全部工作就是定义类,创建这些类的对象,以及发送消息给这些对象。

6.       如果类的某个成员变量是基本类型,即使没有进行初始化,Java也会在对象实例化的时候为这些变量赋一个默认值。默认值只是针对全局变量的,局部变量必须手动进行初始化。

7.       方法名和参数合起来唯一的标识某一个方法,Java的方法只能作为类的一部分来创建,且方法只能通过类对象来调用。

8.       在Java中向方法传递参数是,如果参数是基本类型,传递的就是参数里面的值,当参数是对象的时候,其实传递的是对象的引用,而不是对象的值。

9.       Return包括两方面的意思:首先它代表“已经做完,离开此方法”。其次,如果此方法产生了一个值,这个值要放在return之后返回。当方法的返回类 型是void时,return的作用只是用来退出方法。也就是说是用return可以在方法的任何地方返回,而不需要非要等到方法结束。

10.       当创建类的时候,就是在表述那个累的对象的外观行为。除非用new来创建这个对象的实例,否则,实际上并未获得任何对象。执行new来创建对象的时候,数据存储空间才被分配,其方法才供外界调用。

11.       Static关键字可以使它修饰的方法不用通过创建类对象就可以直接使用类名来调用。Static修饰的变量只占用一份内存空间,无论创建几个对象,他们 都共用一个static变量。因为一个static字段对每个类来说都只有一份存储空间,而非static字段则是每个对象都有一份存储空间。但是如果 static用于某个方法,差别没那么大,static方法的一个重要用法就是在不创建任何对象的前提下就可以调用它。

© 著作权归作者所有

郏高阳

郏高阳

粉丝 103
博文 153
码字总数 112334
作品 1
黄浦
程序员
私信 提问
加载中

评论(0)

那些年,关于 Java 的那些事儿

版权声明:Follow your heart and intuition. https://blog.csdn.net/qq_35246620/article/details/78695893 温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,...

维C果糖
2017/12/02
0
0
Java中getclass(),class()与iinstanceof的区别与联系

getclass()学过Python的同学肯定很熟悉,是不是有点像dict method?其实这个自省,JAVA中叫做反射,可以理解为在运行时期获取对象类型信息的操作,两者几乎相同。传统的编程方法要求程序员在编...

qq_39521554
2018/04/30
0
0
JVM系列第8讲:JVM 垃圾回收机制

在第 6 讲中我们说到 Java 虚拟机的内存结构,提到了这部分的规范其实是由《Java 虚拟机规范》指定的,每个 Java 虚拟机可能都有不同的实现。其实涉及到 Java 虚拟机的内存,就不得不谈到 Ja...

陈树义
2018/11/21
0
0
Java面向对象概述及三大特征(封装,继承和多态)

一、面向对象思想 Java是面向对象的高级语言,对于Java语言来说,万事万物皆对象! 它的基本思想是使用类,对象,继承,封装,消息等基本概念进行程序设计。面向对象程序的最小单元是类,类代...

编辑之路
2019/01/10
82
0
新手怎么学习java?学Java要学哪些内容?

学习任何一门技术之前,兴趣最重要。在学校的时候一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分。我经朋友介绍有免费的学习Java课...

糖宝_d864
2018/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

XDR

XDR是一个库 XDR用于将任意类型的数据转化为平台无关的编码,然后传输,到了对应平台按照对应平台标准进行解析。 主要解决的是平台之间字节序的不同。主要是解决数据跨平台解析的问题。 XDR双...

鬼上身跳不过门槛
5分钟前
5
0
霍兰德职业兴趣测试与职业生涯规划

职业生涯规划这个词,相信小伙伴不会第一次听说,而且我肯定听的最多的地方,那就是大四的学堂里。名字听着很高大上,其实跟我们出游做计划差不多,只不过这个周期会很长。职业生涯规划里我们...

蛤蟆丸子
6分钟前
3
0
localStorage设置过期时间

场景# 浏览器端需要存储一个用户的标识和cookie一样需要过期时间,但是用的是localStorage存储。而localStorage一经存储除非手动删除是不会过期的。那就需要自己实现过期机制。网上找了几种简...

stys35
6分钟前
13
0
sessionStorage和LocalStorage区别?

两者都是浏览器提供技术,用于在浏览器端存放数据 –存数据:setItem(k,v) –取数据:getItem(k) –删数据:removeItem(k) 2. 区别: –sessionStorage会话级,浏览器打开到浏览器关闭。 –l...

安然_oschina
29分钟前
13
0
重磅消息:Google和网易集体震荡,联手让一部分游戏先出海!

4月9日参与《出海背后的技术密码》免费直播节目的伙伴,有机会获得由 Google&网易提供给大家的精美礼品。同时,今天文章后面留言点赞第一的伙伴,加文文酱(liwenzhaozhao)领取现金红包 哦!...

张晓衡
30分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部