java是一门面向对象语言,这个从一开始我们就明白了,可是真正使用过程中,往往我们是把它当做过程语言在使用,主要是没有大局观,代码欠考虑,导致我们一开始的思路就是功能性的东西,而不是对象性的东西,说起来简单,真正做的时候就不见的了。
java中的数据主要的存储是:堆栈、堆,也有少量的磁盘,堆栈中主要存放的是对象的引用,堆中则存放的是对象。
java中的基本类型是个特例,它是直接存储于堆栈中的,所以在必要的时候为了性能其实可以考虑直接使用基本类型,而非对象类型才定义数据,因为堆栈的速度远快于堆。说到效率问题,之前有看到过有人对于for循环的一点建议,不知道是否妥当,没有测试过,及在定义for循环的时候往往需要判断递增/递减量是否大于标准,有人建议如果是集合,先获取集合大小,然后在放入到for循环中作为判断条件,但是看过很多大神的代码,却鲜有发现这么写的,不知道原因何在。
鉴于上述原因也就存在如下状况:
Integer l = 180;
Integer i =180;
System.out.println(l==i);
输出结果为false,当值在-128~127 时值是来自系统缓存,当然这只是指不是通过new的方式初始化变量的时候,这个时候输出为true,而一旦不在这个区间,则会执行相应的new操作
可以设置系统属性 java.lang.Integer.IntegerCache.high 修改缓冲区上限,默认为127。参数内容应为大于127的十进制数形式的字符串,否则将被忽略。取值范围为127-Long.MAX_VALUE,但是用时将强转为int。如果这里设置了那么上述的结果也会发生相应的变化,可以参考http://duzc2.iteye.com/blog/1542890
鉴于基本类型机器包装类存在数值精度问题,可以考虑使用BigInteger和BigDecimal这两个对象,他们可以表示任意大小的整数类型/浮点类型,通常考虑用来表示货币等高精度。
创建一个数组对象的时候实际上不只是创建了一个引用的数组,同时也是为每个引用自动初始化了一个特定的值,之所以说特定是因为如果数组是对象类型的,则都为null,若果为基本类型的,则基本为0表示,java的垃圾回收器回收的只是监视通过new方式创建的所有对象,也就是说基本类型可能不在考虑范围以内。
java的注释,这个很奇特,/*开始*/结尾的为段注释//为行注释,这种注释主要是用来给开发者自己来看的,而且个人的经验发现,这样的注释其实在实际应用中作用比较局限,为了偷懒我还是习惯于使用/**开头*/结尾的文档注释,这个兼具段注释和行注释的功能(当然不是优点),同时在多态等情况下可以很好的知道引用的方法的说明,而不用跳转到对应的类或者方法来查看,如果你有用eclipse等工具你就明白了,顺带说一下,对于接口和实现类,如果你使用接口作为变量定义,那么我建议如果你要写注释,至少至少要给接口类中的方法加上注释,否则在你当做实现类来用的时候基本看不到注释(好吧这个有点绕了,比如你定义了person的接口,同时定义了student的实现,当你在一个类中试图给person赋值student,同时想使用这个变量,那么至少给person中的方法加上文档注释,你会幸福的)
常用的标签就不说了,主要是我不常用的在这里mark一下
这里先插一点:
什么是独立文档标签(独立文档标签是以@开头,且要置于注释行的最前面(不算前导*)
什么是行内文档标签(可以出现在javadoc注释--记住是javadoc,不是普通注释的任意地方,他们是以@开头但要包含在花括号中)
@see 这个标签用来产生一个连接,文档中可以使用如下三种:
@see classname
@see fully-qualified-classname
@see fully-qualified-classname#method-name
javadoc不会检测提供的连接是否有效,只会在文档中增加一个See Also(参见)的条目
{@link package.class#member label}
该标签于@see标签相似,只是它被用于行内,并且用“label” 作为超链接文本(label相当于替换了最终生成的文档中的“See Also”)
{@inheritDoc}
这个就是强大的文档继承功能了,他能继承直接父类相关文档到当前文档
分享到:
相关推荐
在Java中,一切皆为对象,理解和熟练掌握类的定义、对象的创建、封装、继承、多态等特性至关重要。"java-se-demo"可能包含创建简单类的示例,以及如何通过对象进行交互的练习。 接着,文件I/O操作在实际项目中十分...
2. **类与对象**:在Java中,一切皆为对象。类是创建对象的蓝图,包含了数据(成员变量)和行为(方法)。对象则是类的实例,通过new关键字创建。 3. **封装、继承和多态**:这是面向对象编程的三大特性。封装将...
- 在Java中,一切皆为对象。类是创建对象的模板,包含数据(字段/属性)和行为(方法)。 - 构造器用于初始化新创建的对象。 - 继承允许一个类(子类)继承另一个类(父类)的属性和方法。 4. **封装、继承和...
- Java中一切皆为对象,包括基本数据类型也是通过包装类实现的。 - **继承、组合、实现、多态**: - 继承表示类之间的层次关系。 - 组合表示类之间的整体-部分关系。 - 实现通常指接口的实现。 - 多态允许子类...
Java语言作为一门纯面向对象的语言,其设计哲学就是"一切皆为对象",这使得它在软件开发领域占据了重要地位。 面向过程开发,也称为结构化开发,主要是以函数或过程为中心,通过一系列有序的步骤来解决问题。这种...
1. **类与对象**:Java是一种面向对象的编程语言,一切皆为对象。类是创建对象的蓝图,它定义了对象的属性(变量)和行为(方法)。通过阅读源码,我们可以看到如何声明、实例化和使用类与对象。 2. **封装**:封装...
在Java中,一切皆为对象,类是创建对象的蓝图。类定义了对象的属性(成员变量)和行为(方法)。例如,一个名为"Student"的类可以有"name"和"age"这样的属性,以及"study"和"graduate"这样的行为。对象是类的实例,...
Java作为一款纯面向对象的语言,其一切皆为对象,包括基本类型都有对应的包装类。 2. **类与对象**:类是创建对象的模板或蓝图,定义了一组相关的属性(数据成员)和方法(成员函数)。对象则是类的实例,具有类...
2. 类与对象:在Java中,一切皆为对象。类是创建对象的蓝图,它定义了对象的属性(成员变量)和行为(方法)。通过实例化一个类,我们可以创建出具有特定属性和功能的对象。理解类与对象的关系,以及如何声明、实例...
2. **类与对象**:在Java中,一切皆为对象,而类是创建对象的模板。类定义了对象的状态(数据成员)和行为(方法)。理解类与对象的概念,以及如何通过构造函数创建对象,是学习Java的关键步骤。同时,还需要掌握...
2. **类与对象**:Java是面向对象的,一切皆为对象。类是对象的模板,对象则是类的实例。通过封装、继承和多态这三个面向对象的特性,Java提供了强大的抽象能力。 3. **包(Package)**:Java中的包是组织类和接口...
4. **类与对象**:Java是面向对象的语言,一切皆为对象。你需要理解类的定义、对象的创建、封装、继承和多态等概念。类是对象的模板,而对象是类的实例。 5. **数组**:在Java中,数组是存储同一类型元素的集合。你...
1. 类与对象:Java是面向对象的语言,一切皆为对象。类是对象的蓝图,定义了对象的属性(变量)和行为(方法)。通过实例化类,我们可以创建对象。 2. 封装:封装是隐藏对象的内部细节,只暴露必要的接口。这提高了...
2. **类和对象**:在Java中,一切皆为对象。理解类是创建对象的蓝图,而对象是类的实例。了解如何定义类,声明属性和方法,以及如何通过构造器来创建对象。 3. **封装、继承和多态**:封装是隐藏实现细节,提供公共...
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
在Java中,一切皆为对象。类是对象的蓝图,定义了对象的属性和行为。通过`class`关键字定义类,`new`关键字用于创建对象。每个类都有一个构造函数,用于初始化新创建的对象。 **方法** 方法是类中的可执行代码块,...
2. **类与对象**:Java是面向对象的语言,一切皆为对象。类是创建对象的模板,包含属性(成员变量)和行为(方法)。对象则是类的实例。 3. **封装、继承、多态**:封装是隐藏对象的属性和实现细节;继承允许一个类...
1. **对象和类**:Java是一种面向对象的语言,一切皆为对象。`Object`是所有类的父类,包含了一些通用的方法如`equals()`、`hashCode()`和`toString()`。了解如何创建类、继承、封装和多态性是Java编程的基础。 2. ...
2. **Java类与对象**:在Java中,一切皆为对象。类是创建对象的模板,定义了对象的属性(变量)和行为(方法)。实例化一个类创建了一个对象,可以通过对象来调用类的方法和访问其属性。 3. **线程的概念**:线程是...