对象

  • 名称唯一
  • 属性、数据区(值)
  • 方法、功能

  • 在软件中,类是一个模板,定义了一类事物的状态和行为
  • 类是一种抽象的复合数据类型

类与对象的关系,这个跟JS也差不多

  • 类和对象之间是抽象和具体的关系。

    类是创建对象的模板,对象是类的具体实例
  • 类(class)是总称,对象是个体,因此对象(object)也叫实例(instance)。
  • 需求中提取类,即抽象的过程。
  • 创建一个类就是创建一个新的数据类型,实例化一个类,就得到一个对象。
  • 类的构成分别是成员变量和成员方法
  • 类的成员变量可以是基本类型、复合数据类型、数组、集合等
  • 类的成员方法用于处理该类的数据

类的定义

  • 格式

  • 关键字class表示类定义的开始
  • 修饰符分为访问控制符、类型说明符

    1.类的类型说明符:final、abstract

    2.类的访问控制符:public、默认(没有访问控制符)

    公共类能被其它所有的类访问和引用。

    一个Java源程序中只能有一个public类,这个类一般含有main方法

    不用public定义的类,只能被同一个包中定义的类访问和引用

对象的生成、使用、内存释放

构造函数(Constructor) 是一类特殊的成员方法 ,用new 初始化 新创建对象

  • 类名 对象名 = new 构造函数(实际参数)
  • 从形式上来讲,它有以下特点:

    与类同名

    没有任何返回值;

    在语法结构上与一般方法相同
  • new关键字的作用

    为对象分配内存空间

    引起对象构造方法的调用。

    为对象返回一个引用(地址)
  • 类的默认构造函数

    Object就是默认的父类

    如果类中没有定义构造函数,编译器会自动创建一个默认的不带参数的构造函数

    为类定义了构造函数,就不会出现被默认创建的情况了

    如果类中提供的构造函数都不是无参数构造函数,却调用无参数构造函数初始化此类的对象,编译时会产生语法错误

对象的创建及使用

Person p1=new Person(“flower”,”pink”,23)
Person p2=p1;// 此时p2拿到的是个引用的地址哦,这个跟JS一样

Java内存释放

判断一个存储单元是否是垃圾的依据是:该存储单元所对应的对象是否仍被程序所用。

判断一个对象是否仍为程序所用的依据是:是否有引用指向该对象。

  • 自动回收机制。

    Java虚拟机后台线程负责内存的回收
  • 强制回收机制

    System.gc() 强制立即回收垃圾,但系统并不保证会立即进行垃圾回收

    Java的垃圾收集器自动扫描对象动态内存区,对引用对象标记,把没有引用的对象收集并释放

    java虚拟机可自动判断并收集到“垃圾”, 但一般不会立即释放

    Java系统自己定义了一套垃圾回收算法,用来提高垃圾回收效率

    Java内存强制回收没有提供析构方法,但提供了一个类似的方法:protected void finalize()

    Java虚拟机在回收对象存储单元之前先调用该对象的finalize方法,如果该对象没有定义finalize方法, 先调用该对象默认的finalize方法。

这是我作为一名前端,第一次学习JAVA,如果本文有错误,欢迎路过的小哥哥小姐姐们帮助我纠正错误哦~~

Java基础学习笔记-类与对象的更多相关文章

  1. 《python基础教程(第二版)》学习笔记 类和对象(第7章)

    <python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=n ...

  2. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  3. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  4. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

  5. java基础学习笔记五(抽象类)

    java基础学习总结——抽象类 抽象类介绍

  6. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  7. Java学习笔记--类和对象

    1.介绍面向对象的编程          面向对象是现在主流的编程样例,它替代了以前C语言使用时的“结构体”,Java是一门面向对象的语言,所以需要熟悉面向对象的概念.面向对象的程序由很多对象组成,每 ...

  8. Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)

    多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...

  9. Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal

    System类 在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被priva ...

  10. Java基础学习笔记七 Java基础语法之继承和抽象类

    继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...

随机推荐

  1. 基于.NetCore开发博客项目 StarBlog - (19) Markdown渲染方案探索

    前言 笔者认为,一个博客网站,最核心的是阅读体验. 在开发StarBlog的过程中,最耗时的恰恰也是文章的展示部分功能. 最开始还没研究出来如何很好的使用后端渲染,所以只能先用Editor.md组件做 ...

  2. .Net6新版本的AssemblyLoadContext 加载程序集和卸载程序集

    准备俩个项目 第一个是控制台 第二个项目是类库 类库项目中只有一个示例class 将类库的代码生成dll 并且设置属性为复制到输出目录 using System.Runtime.Loader; var ...

  3. 还在为数据库事务一致性检测而苦恼?让Elle帮帮你,以TDSQL为例我们测测 | DB·洞见#7

    数据库用户通常依赖隔离级别来确保数据一致性,但很多数据库却并未达到其所表明的级别.主要原因是:一方面,数据库开发者对各个级别的理解有细微差异:另一方面,实现层面没有达到理论上的要求. 用户在使用或开发 ...

  4. 关于js更改编码问题

    前言 前几天调试喜马拉雅的js加密算法,找到固定一段加密算法后调试,发现结果与实际不一致,后来发现是js显示的编码不一致,而我用的密钥是直接通过 chrome控制台复制下来的,这就导致最后结果不一致. ...

  5. Spring中11个最常用的扩展点,你知道几个?

    前言 在使用spring的过程中,我们有没有发现它的扩展能力很强呢? 由于这个优势的存在,使得spring具有很强的包容性,所以很多第三方应用或者框架可以很容易的投入到spring的怀抱中.今天我们主 ...

  6. 甜点cc的2022年回顾总结

    每每到年底,总会感概时间飞逝,总会莫名的心慌几天. 高中时代我就明白了一个道理:自己决定做的事,就算结果再烂以后也不要后悔,因为那无异于否定过去的自己.人不能总是否定自己的过去,因为我觉得这样会打击自 ...

  7. C/C++随堂笔记

    注释:行注释 块注释: (1)#if 0 #endif (2)/*     */ <>:表示系统文件 <stdlib.h>+syetem 调用windows中的程序 QT中 c ...

  8. 彻底弄懂Javascript模块导入导出

    笔者开始学习Javascript的时候,对模块不太懂,不知道怎么导入模块,导出模块,就胡乱一通试 比如 import xx from 'test.js' 不起作用,就加个括号 import {xx} ...

  9. Redis 中ZSET数据类型命令使用及对应场景总结

    转载请注明出处: 目录 1.zadd添加元素 2.zrem 从有序集合key中删除元素 3.zscore 返回有序集合key中元素member的分值 4.zincrby 为有序集合key中元素增加分值 ...

  10. 【Markdown编辑器】语法规则

    一.Markdown介绍及工具推荐 1.介绍 Markdown是一种轻量级标记语言,它以纯文本形式(易读.易写.易更改)编写文档,并最终以HTML格式发布.Markdown也可以理解为将以MARKDO ...