zoukankan      html  css  js  c++  java
  • java 一切都是对象

    1. 用引用操纵对象

      在Java中一切皆对象,我们平常在对java中的类进行操作时,其实操作的不是对象本身而是对象的引用。我们可以将这想象成用遥控器(引用)操作电视机(对象),只要握住这个遥控器,就能保持与电视机的连接,当想换频道时,实际操作的是遥控器(引用),然后再由遥控器操作电视机(对象)。如果想在房间里面走走,并且想操作电视机,这时候只需要带上遥控器(引用)就可以了,并不需要电视机(对象)。

      此外,即使没有电视机,遥控器也可以单独存在,也就是说,你拥有一个引用,并不一定需要有一个对象与它关联。

      如果想操作一个词或者句子,可以创建一个String引用,String s;   tip: 这里创建的只是一个引用,并不是对象,如果现在向 S 发送一个消息,就会返回一个运行时错   误。

      在使用任何引用前,必须为其指定一个对象,如果想使用还是一个 null 的引用,在运行时将会报错

    2. 对象存储在什么地方

      寄存器:这是最快的存储区,因为它位于不同于其他其他存储区的地方---处理器内部。但是寄存器的数量有限,所以寄存器根据需求进行分配。寄存器不能直接控制,      也不能在程序中感觉到任何存在的迹象

      堆栈: 位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得支持。堆栈指针若向下移动,则分配新的内存,若向上移动,则释放那些内存,这是      一种快速有效的分配存储方式,仅次于寄存器。创建程序时,java系统必须知道存储在堆栈内所有项的确切声明周期,以便上下移动堆栈指针。这个约束限制了     程序的灵活性,所以虽然某些java数据存储在堆栈中,特别是对象引用,但java对象并不存储在堆栈中。

      堆: 一种通用的内存池,用于存放所有的Java对象,堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间,因此,在堆里分配存储有很大的灵活    性。当需要 一个对象时,只需要用 new 写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配 。但是,用堆进行存储分配和清理可能比堆栈进行存    储分配需要更多的时间

      常量存储: 常量池

    3. 特例:基本类型

    基本类型 大小 最小值 最大值 包装器类型 字节
    byte 8 bits -128 127 Byte 1 字节
    short 16 bits -2的15次方 2的15次方减1 Short 2字节
    int 32 bits -2的31次方 2的31次方减1 Integer 4字节
    long 64 bits -2的63次方  2的63次方减1 Long 8字节
    float 32 bits 2的-149次方 2的128次方减1 Float 4字节
    double 64 bits 2的-1074次方 2的1024次方减1 Double 8字节
    boolean --  --  -- Boolean 1字节
    char 16 bits  --  -- Character 2字节

    4. 永远不需要销毁对象

        在java中由new创建的对象,只要需要就会一直存在,但是如果让对象继续存在,就会造成对象填满内存空间,进而影响程序的运行。所以在Java中有一个垃圾回收器,用来监视所有用new创建的对象,并识别出不再使用的对象,随后,释放这些对象的内存空间,供其他对象使用。

    5. 创建新的数据类型:类

    基本类型 默认值
    boolean false
    char 'uooo'(null)
    byte (bye)0
    short (short)0
    int 0
    long 0L
    float 0.0f
    double 0.0d

        当变量作为类的成员使用时,java会赋给基本类型一个默认值,确保他们会执行初始化。但是这个方法不适用于局部变量。如果在某个方法中定义了一个局部变量X;  那么X得到的可能是任意一个值,并且不会被自动初始化。所以在使用局部变量前,应该先赋予一个适当的值。

    6. 方法、参数和返回值

      方法的参数列表指定要传递给方法什么样的信息,这些信息像java中其他信息一样,采用的都是对象形式,因此在参数列表中必须指定每个所传递对象的类型和名字。  并且像java中任何传递对象的场合一样,这里传递的也是引用。

      值传递:就是在方法调用的时候,实参是将自己的一份拷贝赋给形参,在方法内对参数的值进行修改不影响原来实参的值

      引用传递:就是在方法调用的时候,实参将自己的地址传递给形参,在方法内对参数的修改实际上是对该实参的实际操作。

    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    spring4之依赖注入的三种方式
    Hibernate之总结
    Hibernate之dynamic-update
    ThinkPhp调用webservice
    Robot Framework:Web自动化之-元素处理
    Robot Framework:Web自动化之-元素定位
    RobotFramework:python+robotframework+selenium2library测试环境部署说明文档
    Robot Framework:Httplibrary库
    URL备忘
    Windows:CMD命令备忘
  • 原文地址:https://www.cnblogs.com/zhangchu/p/12534793.html
Copyright © 2011-2022 走看看