- java的入门基本功就是面向对象
- java是用引用操作对象。应用可以单独存在,但如果没有关联对象,这个时候如果向对象发送消息,就会返回一个运行时异常。(遥控是电视的引用,而遥控器可以独立存在);一旦创建一个引用,就希望它能与一个对象相关联;new关键字的意思是创建一个新的对象。
- 程序运行时,对象的内存分配如下:
- 寄存器:这是最快的存储器,它位于处理器内部,但其数量极其有限,所以寄存器根据需求分配,你不能直接控制,也不能在程序中感受到它;
- 堆 栈:位于通用RAM(随机访问存储器),但通过堆栈指针可以从处理器那里获取直接支持,向下移动分配新的内存,向上移动就释放内存。效率仅次于寄存器。java程序必须知道存储于对战中的所有项的生命周期,以便上下移动堆栈指针。对象引用存储于堆栈中,但对象因为生命周期的因素不存储于其中;
- 堆 : 一种通用的内存池(位于RAM区),用于存放所有的java对象。优势在于堆不需要知道存储的数据在堆中存活多长时间。相对于堆栈来说灵活性更高,但是分配内存与清理需要花费更多的时间;
- 常量存储:常量值通常位于程序代码内部(安全);
- 非RAM存储:数据完全存活在程序之外,它可以不受程序的任何控制,在程序没有运行时也可以存在,例如:JDBC提供更加复杂的对数据库的存储和读取对象信息的支持;
- 基本类型:(存储于堆栈中,这属于特殊对待;由于堆中的灵活性问题不是很有效); 注意:高精度数字(BigInteger和BigDecial)支持任意精度的整数,却不属于基本数据类型。
- 在java中作用域结束,对象依然占据内存, 但对象不可访问,因为它的引用范围已经超出了作用域范围。但我们也无需对他多做考虑,因为在java中有垃圾处理器,并释放闲置对象占据的内存;
- return关键字的应用主要有两个方面:离开该方法,我已经结束;返回所需数据;
- 每个字符串字符都是16位,或者两个字节,长整数。以便对Unicode进行支持;
- 构建java程序:
- 名字的可见性:翻转自己的Internet域名,整个软件包名称以小写字母为准;
- 使用其它组件:采用import导入包名,可以使用通配符“*”,如import.java.utils.*.导入包下的所有类;
- static关键字:和对象不关联,形成一个的存储空间,无论创不创建对象,或者创建了多少个对象。
- 注释和嵌入文档
- /**/和//,注意/*和*/之间的所有内容都会被注释掉;
- 注释文档,提取注释的工具叫做javadoc,输出html文件,可用web浏览器查看;
- 所有的javadoc命令都只能出现在/**中,例如/**注释*/;
- 类名采用驼峰命名法,不要使用下划线连接;类名首字母大写,方法名首字母小写;
- 寄存器:这是最快的存储器,它位于处理器内部,但其数量极其有限,所以寄存器根据需求分配,你不能直接控制,也不能在程序中感受到它;
- 堆 栈:位于通用RAM(随机访问存储器),但通过堆栈指针可以从处理器那里获取直接支持,向下移动分配新的内存,向上移动就释放内存。效率仅次于寄存器。java程序必须知道存储于对战中的所有项的生命周期,以便上下移动堆栈指针。对象引用存储于堆栈中,但对象因为生命周期的因素不存储于其中;
- 堆 : 一种通用的内存池(位于RAM区),用于存放所有的java对象。优势在于堆不需要知道存储的数据在堆中存活多长时间。相对于堆栈来说灵活性更高,但是分配内存与清理需要花费更多的时间;
- 常量存储:常量值通常位于程序代码内部(安全);
- 非RAM存储:数据完全存活在程序之外,它可以不受程序的任何控制,在程序没有运行时也可以存在,例如:JDBC提供更加复杂的对数据库的存储和读取对象信息的支持;
- 名字的可见性:翻转自己的Internet域名,整个软件包名称以小写字母为准;
- 使用其它组件:采用import导入包名,可以使用通配符“*”,如import.java.utils.*.导入包下的所有类;
- static关键字:和对象不关联,形成一个的存储空间,无论创不创建对象,或者创建了多少个对象。
- /**/和//,注意/*和*/之间的所有内容都会被注释掉;
- 注释文档,提取注释的工具叫做javadoc,输出html文件,可用web浏览器查看;
- 所有的javadoc命令都只能出现在/**中,例如/**注释*/;