网站首页 > java教程 正文
操作的标识符实际上是对象的一个引用,必须由你创建所有对象,程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎样分配的呢?有五个不同的地方可以存储数据:
1)寄存器:这是最快的存储区,它位于处理器内部,寄存器的数量极其有限
2)堆栈:位于通用RAM(随机访问存储器)中,仅次于寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以虽然某些Java数据存储于堆栈中——特别是对象引用,但是Java对象并不存储于其中。
3)堆:用于存放所有的Java对象,一种通用的内存池(也位于RAM区)。堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间,因此,在堆里分配存储有很大的灵活性,当然,为这种灵活性必须要付出相应的代价:用堆进行存储分配和清理可能比用堆栈进行存储分配需要更多的时间。
4)常量存储:常量值通常直接存放在程序代码内部
5)非RAM存储:如果数据完全存活于程序之外,那么他可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是流对象和持久化对象,在流对象中,对象转化成字节流,通常被送到另一台机器。在“持久化对象”中,对象被存放于磁盘上,因此,即使程序终止,他们仍可以保持自己的状态。
特例:基本类型
new将对象存放在堆里,基本类型直接存储值在堆栈中,因而更高效。Java要确定每种基本类型所占存储空间的大小,它们的大小并不像其他大多数语言那样随机器硬件架构的变化而变化,这种所占存储空间大小的不变性是Java程序比其他大多数语言编写的程序更具可移植性的原因之一
所有数值类型都有正负号,所以不要去寻找无符号的数值类型。
BigInteger支持任意精度的整数,也就是说,可以准确的表示任何大小的整数,而不会丢失任何信息;BigDecimal支持任何精度的定点数,例如,可以用它进行精确地货币计算;但是这么做复杂了许多,所以运算速度会比较慢。在这里,我们以速度换取了精度。
几乎所有的程序设计语言都支持数组,在C和C++中使用数组是很危险的,因为C和C++中的数组就是内存块。Java的主要目标之一是安全性,所以许多在C和C++里困扰程序员的问题在Java里不会再出现。
Java有一个垃圾回收器,用来监视用new创建的所有对象,并辨别那些不会再被引用的对象,随后,释放这些对象的内存空间,以便供其他新的对象使用。也就是说, 你根本不必担心内存回收的问题。
调用方法的行为通常被称为发送消息给对象,字符串中的每个字符的尺寸都是16位或2个字节,以此来提供对Unicode字符集的支持。
使用类名是引用static变量的首选方式,这不仅是因为他强调了变量的static结构,而且在某些情况下,他还为编译器进行优化提供了更好的机会。类似逻辑也应用于静态方法。因为一个static字段对每个类来说,都只有一份存储空间,而非static字段则是对每个对象有一个存储空间。
Java里有两种注释风格:第一种是以 “ /* ” 开始,随后是注释内容,最后以 “ */ ” 结束,例如,/*这里是注释内容*/;第二种风格是单行注释,以一个 “ // ” 起头,例如,// 这里是注释内容。
javadoc便是用于提取注释的工具,javadoc输出的是一个HTML文件,可以用Web浏览器查看,,eclipse使用javadoc功能的方法如下:
1.首先,打开Eclipse,在需要生成Javadoc的项目上右击鼠标,在弹出来的列表中点击”导出(Export)...“选项。
2.在弹出来的”导出“窗口中,选择导出的目标,这里选择Java文件夹下的Javadoc,然后点击”下一步(N)“按钮。
3.进入到”选择生成Javadoc的类型“界面,这里默认已经配置好了生成Javdoc的javadoc.exe的路径,如果不对可以重新配置,在“使用标准Doclet(S)”一栏中选择输入Javadoc的目录,默认实在工作空间工程项目下的doc文件夹中,也可以自行配置,然后点击”下一步(N)“按钮。
4.进入到”配置标准doclet的Javadoc自变量“界面,可以根据需要配置Javadoc的自变量,可以通过”基本选项“下的复选框来选择Javadoc选项。如果想引用一个库中的类,并且将该库链接到它的javadoc,可以在“选择应将链接生成至的被引用归档和项目(R)”列表中选择,然后点击“下一步(N)”按钮。
5.进入到“配置Javadoc自变量”界面,这里注意:如果项目采用的是UTF-8编码,Extra Javadoc options(额外的Javadoc选项)下需要输入设定参数:-encoding utf-8 -charset utf-8否则生成的网页中文注释都是乱码,点击“完后”按钮。
6.在点击“完成”按钮后,会看到Eclipse主界面的“控制台”输入Javdoc生成成功的信息。
后面会有专门的文章来写这个话题。
所有javadoc命令都只能在“/**”注释中出现,注释结束于“*/”,注意,javadoc只能为public和protected成员进行文档注释,private和包内可访问成员的注释会被忽略掉,不过可以用-private进行标记,以便把private成员的注释也包括在内,这样做是有道理的,因为只有public和protected成员才能在文件之外被使用,这是客户端程序员所期望的,共有三种类型的注释文档,分别对应于注释位置后面的三种元素:类、域、方法。详情请参考Java注释文档详解
猜你喜欢
- 2024-09-10 感动哭了!《Java 编程思想》最新中文版开源
- 2024-09-10 Java编程思想---对象介绍---参数化类型(泛型)
- 2024-09-10 《JAVA编程思想》5分钟速成:第15章(泛型)
- 2024-09-10 Java基础学习带你了解面向对象的编程思想
- 2024-09-10 Java编程思想——对象介绍——抽象过程
- 2024-09-10 Java编程思想---对象介绍---并发编程
- 2024-09-10 Java编程思想——并发(java并发编程实践和并发编程实战)
- 2024-09-10 Java编程思想:抽象类和方法(java抽象方法是什么)
- 2024-09-10 Java编程思想---万物皆是对象---以引用来操作对象
- 2024-09-10 Java编程思想:我们的第一个 Java 程序
你 发表评论:
欢迎- 最近发表
-
- pyinstaller打包python程序高级技巧
- 将python打包成exe的方式(python打包成exe的方法)
- Python打包:如何将 Flask 项目打包成exe程序
- py2exe实现python文件打包为.exe可执行程序(上篇)
- 如何将 Python 项目打包成 exe,另带卸载功能!
- Python打包成 exe,太大了该怎么解决?
- 可视化 Python 打包 exe,这个神器绝了!
- 案例详解pyinstaller将python程序打包为可执行文件exe
- Cocos 3.x 菜鸟一起玩:打包window程序
- 怎么把 Python + Flet 开发的程序,打包为 exe ?这个方法很简单!
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)