构造器和包

1.对象的打印操作

  • 包名.类名@十六进制的hashCode

2.对象比较操作

  • ==号:对于基本数据类型来说比较的是值,对于引用数据类型来说比较的是在内存中的地址值。每次使用new关键字都表示在堆新开辟一块内存空间,不同的内存控件,地址值不同。

3.匿名对象

  • 没有名称的对象,创建对象之后没有赋值给某个变量。
  • 只是在堆中开辟了一块空间但并没把地址赋给变量。
  • 因为没有名称,匿名对象仅仅只能使用一次,一般的,把匿名对象作为方法的实参传递

4.对象的生命周期

  • 每次使用new关键字的时候,就会在内存开辟一块新空间,此时对象开始存在。
  • 对象的结束:当堆中的对象,没有被任何变量所引用此时该对象就成了垃圾,等着垃圾回收器(CG)来回收该垃圾,当被回收的时候,对象被销毁了,回收垃圾的目的,释放更多的内存空间

5.什么是构造器

  • 在创建对象时自动调用的方法,称为构造器也叫构造方法,在类中找不到默认的构造器,通过反编译工具可以看到默认的构造方法
  • 编译器编译源文件时,会创建一个缺省的构造器,如果成员变量设置了默认值,默认值也是在构造器当中设置的

6.构造器的作用

  • 创建对象,必须和new一起使用
  • 完成对象的初始化操作

7.构造器的特点

  • 构造器的名称是和当前类名一样的
  • 禁止有返回类型千万不能使用void等作返回值
  • 在构造器当中不能使用return,它本身会有一个默认的返回值即当前创建对象的地址

8.默认构造器的特点

  • 符合构造器的特点
  • 没有参数
  • 如果类使用了public修饰,它创建的默认构造器也会加public
  • 自己定义了构造器编译器就不会帮你再生成默认构造器了

9.构造器的重载

  • 与方法的重载一样

10.static

  • 状态和行为有类和对象之分
  • 如果在字段和方法前添加了static,那么这个字段或者方法就属于类

特点:

  • static修饰的内容是随着类的加载而加载的,当JVM把字节码加载到虚拟机当中,static它修饰的成员会自动的加载到内存当中(方法区)
  • static修饰的内容,优先于对象存在
  • static修饰的内容,被该类型的所有对象共享
  • static修饰的内容,可以直接使用类名来调用

11.类中的成员

  • 字段(成员变量)、方法、内部类

12.类成员和实例成员

  • 类成员:使用static修饰的成员
  • 实例成员:没有被static修饰的成员

13.类成员和实例成员的访问

  • 在static方法中只能调用static成员
  • 非static方法可以访问静态成员也可以访问非静态成员

14.什么时候使用static

  • 被所有的对象共享时,节省空间,没必要每个对象都存储一份,可以直接使用类名

15.什么是包

  • 在开发中,我们存在几百上千个java文件,如果所有的java文件都在一个目录中,管理起来也很痛苦,java也可以创建一个类似文件夹的东西,我们称这个文件夹为包

16.包的作用

  • 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
  • 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同,当同时调用两个不同包中相同类名的类时,应该加上包名加以区分。因此包可以避免名字冲突
  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类

17.包的语法

  • package 包名.子包名.子子包;
  • 必须把该语句作为java文件中,并且是第一行代码

18.包的定义

  • 包名必须遵循标识符规范全部小写
  • 企业开发中,包名用公司的域名倒写
  • 使用格式:package 域名倒写.模块名.组件名;

19.类的名称

  • 类的简单名称:直接类名
  • 类的全限定名称:包名.类名

20.import语句

  • 当A类和B类不在同一个包中,若A类需要使用到B类,此时就得让A类中去引用B类
  • 静态导入:

把其他包里面的内容在本类当中使用不需要使用其类名来调用,直接使用别的包里的方法

mport static 类得全限定名.该类中得static成员名;

在实际开发中我们不使用静态导入因为如此分不清某一个静态方法或字段来源于哪个类

本文分享自微信公众号 - IT那个小笔记(qq1839646816),作者:木瓜煲鸡脚

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 面向对象——封装

    这样就只能通过getter来获得值,通过setter来设置值而不能直接访问age属性

    木瓜煲鸡脚
  • OGNL与值栈

    OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属...

    木瓜煲鸡脚
  • Lombok插件

    在有lombak的目录下按住shift右键打开窗口,输入java -jar 包名即可

    木瓜煲鸡脚
  • 面试官问我JVM垃圾回收算法,还好我看了这篇

    程序计数器、虚拟机栈、本地方法栈都是线程私有的,会随着线程而生,随线程而灭; 栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈操作. 每个栈帧中的本...

    JavaEdge
  • OC学习10——内存管理

    1、对于面向对象的语言,程序需要不断地创建对象。这些对象都是保存在堆内存中,而我们的指针变量中保存的是这些对象在堆内存中的地址,当该对象使用结束之后,指针变量指...

    mukekeheart
  • 类的本质-类对象前言1.本质2.如何获取类对象3.类对象的用法4.类对象的存储5.OC实例对象、类对象、元数据、之间关系6.如何查询类型信息

    VV木公子
  • 关于对象池的一些分析

    在日常的开发工作中,我们可能使用或者听说过对象池,线程池以及连接池。本文将介绍对象池的产生缘由,具体实现细节,以及需要注意的问题。

    技术小黑屋
  • 经典面试题-列举JSP的内置对象,同一应用中页面有哪些方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • GOF设计模式快速学习

    这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了。为了和"学习"之间的友谊小船不翻,决定对以往学习过的G...

    用户1216676
  • 设计模式之对象池模式

    对象池模式, 或者称为对象池服务, 其意图为: 通过循环使用对象, 减少资源在初始化和释放时的昂贵损耗(这里的"昂贵"可能是时间效益(如性能), 也可能是空间效...

    烟草的香味

扫码关注云+社区

领取腾讯云代金券