Java笔记1
最近学习Java有了一些小收获,不成体系,在此记录。
1.Eclipse的源码体系结构
这里只提最基础的,毕竟刚开始学习。
首先需要新建一个Java project,一个project中可能会有多个package,包中是源码,也就是以.java
结尾的文档,这其中就是类。一个.java
的文档中可以有多个类,但是只能有一个公共类,且公共类的名字要与文档名相同。一个包中可以有多个.java
的文档。
2.一个包中可以有多个.java
的文档,而且每个都可以有一个main方法。
3.Java的数据类型分为两大类,包括基础数据类型和引用类型。
基础数据类型就是常说的八种,byte,short,int,long等等,但是要注意的是,Java不像C++那样没有严格指定数据的长度,而是规定死了,不需要为硬件平台的兼容担心。
注意,Boolean类型的不允许用数字转换,只有true和false。
4.类是对象的抽象。
1 | class Clothes { |
声明一个类,然后就可以让类为模板创建对象。
1 | Clothes c1 = new Clothes(); |
注意,这里分两步。在堆上先new一个Clothes对象,然后将c1这个“门牌号”参考到新的对象/实例上。
1 | class Clothes2{ |
关于构造函数,我还没深入了解。
5。关于java.util.BigDecimal
在程序中,基本数据类型数字总是不能精确表示,但是可以使用BigDecimal类。
BigDecimal类提供了许多操作数字的方法,具体参考API文档。
1 | import java.math.BigDecimal; |
1 | import java.math.BigDecimal; |
结果是等于!
1 | BigDecimal operand1 = new BigDecimal("0.1"); |
这将显示false!
问题在于,=
一般是用于指定参考名称参考到某个对象,意思是,operand1
这个名字参考到BigDecimal("0.1")
,一个堆内存空间(BigDecimal("0.1")
)的标签。而==
的意思是比较两个参考的对象是否是同一个,不是比较内容的值,也可以换个理解方式,operand1
这个标签的值就是BigDecimal("0.1")
,这种说法很不严谨。这里创建了两个对象,具有不同的标签,虽然他们的属性(“0.1”)是一样的。如果要比较内含值,则这样:operand1.equals(operand2)
.
6.基本类型打包器
在Java中一切都是对象,出来基本数据类型,这是为了效率留下来的,但是有的时候我们想依据这些基本数据类型打包一些操作(方法)给它,这样它就成为了对象。这里需要用到基本类型打包器。
它的用处简单说就是把基本数据变成对象,使其可以带有方法。有Long,Integer,Double,Float,Byte等。
1 | public class IntegerDemo{ |
打包器可以自动装箱也可以自动拆箱:
1 | Integer wrapper=10;//自动装箱,把一个int的数字自动转换为Integer类型的对象 |