一、包

java.lang包,属于java中的核心包,系统默认导入的,不用手动导入
该包中的类:Object、System、String、Integer等

1、包的好处

①分类管理java文件,查找和管理方便
②解决了同一个项目中同名类的问题

2、包的创建

①新建class的同时指定包
②新建package
③强制添加包的声明

3、包的命名

遵循标识符的命名规则:包含数字、字母、下划线、$符号,不能用数字开头,不能是关键字,标识符和标识符之间使用小圆点分割
命名规范:遵循域名倒置的写法
  com.公司名.业务模块名
常见的业务模块名:view视图、domain/bean/pojo实体类、service业务

4、包的声明和导入

(1)声明
  语法:package 包名;
  位置:放在class的最上面
  个数:至多有一个
(2)导入
  语法:import 包名.类名;或import 包名.*;
  位置:package——import——class
  个数:可以有多个,没有顺序要求

二、Object类说明

Object类是java中的根类,所有对象都继承了Object类,具备该类的方法

三、创建Object对象

new Object();
注意:一般不需创建Object本类对象,因为可以通过创建子类对象,调用里面的方法

四、常见方法 ★

1、equals

(1)说明:判断两个对象是否相等
(2)原型:
  public boolean equals(Object obj){
    return this==obj;
  }

(3)==和equals的对比

== 如果判断引用类型,比较的是地址;如果判断基本类型,比较的是值。注意:左右的操作数的类型必须一致或兼容
equals 只能判断引用类型,默认比较的是地址,子类可以重写该方法用于比较内容

(4)如何重写equals ★

public boolean equals(Object o){
  if(this == o)
    return true;
  if(!(o instanceof XX))
    return false;
  XX t = (XX)o;
  return this.name.equals(t.name);//返回具体的比较逻辑
}

2、toString

(1)说明:返回对象的字符串形式
(2)原型:
  public String toString(){
    return getClass().getName()+'@'+Integer.toHexString(hashCode());
  }
(3)特点:默认返回的字符串不好理解,子类往往重写该方法,用于返回对象的属性信息
(4)好处:打印方法和拼接字符串时,将默认调用对象的toString方法

3、hashCode

(1)说明:返回对象的哈希码值
(2)好处:一般用于提高哈希表结构容器的查找性能
(3)特点:对象的哈希值不需要关心,大致等于 对象的地址号。所以:不同对象的哈希值肯定不一样

4、finalize

(1)说明:当对象被回收时,系统自动调用该方法
(2)垃圾回收机制:
  回收的对象:无用对象
  无用的对象:没有任何引用指向的对象
  回收的时机:随机的,不确定

JavaSE基础知识(5)—面向对象(Object类)的更多相关文章

  1. Java面向对象 Object类 内部类

     Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object O ...

  2. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  3. JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)

    面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...

  4. JavaSE基础知识(7)—常用类

    一.包装类 1.理解 java为八大基本数据类型一一对应提供了引用类型,方便使用里面的属性和方法 2.包装类型 byte——>Byteshort——>Shortint——>Integ ...

  5. JavaSE基础知识(5)—面向对象(5.5 this和super关键字)

    一.this关键字 1.说明 this关键字代表当前类的对象,可以访问本类的属性.方法.构造器注意:谁调用该方法,则this就指谁 2.语法 访问属性: this.属性名 = 值; System.ou ...

  6. JavaSE基础知识总结

    最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...

  7. [C#基础]基础知识一: 面向对象的基本知识.

    激励自己有时间多看看.!! C#基础共分为七个部分: 一: 面向对象 二: 值类型, 引用类型, 字符串操作 三: 集合文件操作 四: 正则表达式 五: XML操作 六: 委托, 事件 七: 反射 1 ...

  8. C#基础知识之面向对象以及面向对象的三大特性

    在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...

  9. javascript的基础知识及面向对象和原型属性

    自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...

随机推荐

  1. Redis 认识与安装

    1. redis是一种Nosql数据库,使用key-value存储数据,因为基于内存存储,所以可以用来做缓存(mysql等数据库是基于表基于数据库的) 2. 和memcathed的区别 redis会生 ...

  2. JAVA递归实现全排列

    全排列(permutation) 排列组合概念 排列,就是指从给定n个数的元素中取出指定m个数的元素,进行排序 组合,则是指从给定n个数的元素中仅仅取出指定m个数的元素,不考虑排序 全排列 以数字为例 ...

  3. rabbitmq (五)RPC

    Remote Procedure Call or RPC(远程函数调用) 当我们需要在远程计算机上运行一个函数,并且等待结果的时候,我们用到RPC 在rabbitmq客户端使用call函数,发送RPC ...

  4. 使用JavaMail创建邮件和发送邮件

    参考https://www.cnblogs.com/xdp-gacl/p/4216311.html,写的真好,知识在于分享,备份留着看 一.RFC882文档简单说明 RFC882文档规定了如何编写一封 ...

  5. Anatomy of a Database System学习笔记 - 概论、并发控制

    <Anatomy of a Database System>这篇发表于87年.一共48页的论文据说是DBA入门必看,但是找了全网没有找到中文翻译.这篇文章对关系型数据库确实有提纲挈领的作用 ...

  6. Exce 快捷键 tips

    1. 填充快捷键 ctrl+R  向下填充 CTRL+D 向右填充 2. 筛选快捷键 CTRL+SHIFT+L 3. 移动到当前区域的边缘: Ctrl + shift + 方向箭头 4. 字符连接:& ...

  7. Django建站+Vuejs前端

    第一节 @注意 千万注意格式.标签名字: 浏览器开发者模式修改页面不显示:在开发者模式下(F12进入),打开设置页面(F1),勾选 Disable cache (while DevTools is o ...

  8. TypeError: Fetch argument 0 has invalid type <type 'int'>, must be a string or Tensor. (Can not convert a int into a Tensor or Operation.)

    6月5日的時候,修改dilated_seg.py(使用tensorflow)出現了報錯: TypeError: Fetch argument 0 has invalid type <type ' ...

  9. Linux修改用户所在组方法

    Linux修改用户所在组方法 usermod -g 用户组 用户名强行设置某个用户所在组usermod -G 用户组 用户名把某个用户改为 group(s) usermod -a -G 用户组 用户名 ...

  10. java并发编程概念

    并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其 ...