对象

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

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

类与对象的关系,这个跟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. Codeforces Round #826 (Div. 3) A-E

    比赛链接 A 题解 知识点:模拟. 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 代码 #include <bits/stdc++.h> #define ll long lo ...

  2. pta第二次博客

    目录 pta第二次博客 1.前言 2.设计与分析 第四次作业第一题 第四次作业第一题 第四次作业第一题 第四次作业第一题 pta第二次博客 1.前言 2.设计与分析 第四次作业第一题 1.题目: &q ...

  3. 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM)

    前言 既然你已经知道TRex并尝试搜索它的安装教程,这意味着你有一定的基础知识(至少知道自己需要什么).因此本文对于TRex的介绍部分会偏少 本次主要为TRex安装过程的一次记录(版本为v3.0.0) ...

  4. vscode代码部署

    前言 在本地环境中开发代码时,经常需要将代码上传到服务器环境中,在环境中构建并调试程序.如果手动使用scp.ftp等文件传输程序将代码上传至环境,一次两次还好,反复多次操作则有些繁琐. 为了方便进行本 ...

  5. mindxdl--common--errs.go

    // Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.// Package common the error ...

  6. Go语言核心36讲38

    到目前为止,我们已经一起陆陆续续地学完了Go语言中那些最重要也最有特色的概念.语法和编程方式.我对于它们非常喜爱,简直可以用如数家珍来形容了. 在开始今天的内容之前,我先来做一个简单的总结. Go语言 ...

  7. 刚哥谈架构(八)- 为你的应用选择合适的API

    前言: 架构师的主要活动是做出正确的技术决策.选择合适的API是一项重要的技术决策.那么今天就看看API的选择问题. 应用程序编程接口(API)是一种计算接口,它定义了多个软件中介之间的交互.它定义了 ...

  8. dd格式化硬盘

    1. dd硬盘读写测速(不做实际读写): 测试纯写入性能 dd if=/dev/zero of=/dev/sdb bs=1M count=10240 oflag=direct 测试纯读取性能 dd i ...

  9. 集群部署看过来,低代码@AWS智能集群的架构与搭建方案

    为了帮助充分利用AWS的托管服务快速构建起一套集群环境,彻底去掉"单一故障点",实现最高的可用性,我们准备了<低代码智能集群@AWS的架构与搭建方案>看完本文,带你掌握 ...

  10. MathNet用到的一些功能

    1.计算一元线性函数 Tuple<double, double> myLineTuple = MathNet.Numerics.Fit.Line(myXArray, myYArray); ...