Java基础学习笔记-类与对象
对象
- 名称唯一
- 属性、数据区(值)
- 方法、功能
类
- 在软件中,类是一个模板,定义了一类事物的状态和行为
- 类是一种抽象的复合数据类型
类与对象的关系,这个跟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基础学习笔记-类与对象的更多相关文章
- 《python基础教程(第二版)》学习笔记 类和对象(第7章)
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person: def setName(self,name): self.name=n ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- java基础学习笔记五(抽象类)
java基础学习总结——抽象类 抽象类介绍
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- Java学习笔记--类和对象
1.介绍面向对象的编程 面向对象是现在主流的编程样例,它替代了以前C语言使用时的“结构体”,Java是一门面向对象的语言,所以需要熟悉面向对象的概念.面向对象的程序由很多对象组成,每 ...
- Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)
多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...
- Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal
System类 在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被priva ...
- Java基础学习笔记七 Java基础语法之继承和抽象类
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...
随机推荐
- 10.-ORM-基础字段及选项
一.ORM-基础字段及选项 任何关于表结构的修改,务必在对应模型类上修改 例如 给 books_book表添加一个info字段 varchar(100) 1.在模型中添加对应的类属性 2.执行数据库迁 ...
- 常用CSS样式属性
01.常用样式 1.1.background背景 设置元素背景的样式 background,更好的衬托内容. 属性 描述 值 background 背景属性简写.支持多组背景设置,逗号,隔开 back ...
- HTML5+CSS3常见布局方式
1.等高布局 1.1 代码 等高布局是指子元素在父元素中高度相等的布局方式 <div class="father"> <div class="f1&qu ...
- 硬核剖析Java锁底层AQS源码,深入理解底层架构设计
我们常见的并发锁ReentrantLock.CountDownLatch.Semaphore.CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁. 上篇 ...
- Mysql InnoDB多版本并发控制MVCC
参考书籍<mysql是怎样运行的> 系列文章目录和关于我 一丶为什么需要事务隔离级别 mysql是一个客户端/服务断软件,对于同一个服务器来说,可以有多个客户端进行连接,每一个客户端进行连 ...
- C#在Xp系统执行.exe程序的报错怎么查看原因
我的电脑---->管理---->事件查看器----->应用程序,查看错误来源
- JUC学习笔记——共享模型之不可变
JUC学习笔记--共享模型之不可变 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的不可变内容 我们会分为以下几部分进行介绍: 不可变案例 不可变设计 模式之享元 原理之final ...
- 某厂面试:如何优雅使用 SPI 机制
代码不多,文章可能有点长.朋友面试某厂问到的 SPI 机制,联想到自己项目最近写到的 SPI 场景,文章简要描述下 SPI 机制的发展历程 产出背景 因为最近项目中使用分库分表以及数据加密使用到了 S ...
- DRF认证流程及源码分析
认证 前言 用户验证用户是否合法登陆. 部分内容在DRF视图的使用及源码流程分析讲解,建议先看讲解视图的这篇文章. 使用流程 认证使用的方法流程如下: 自定义认证类,继承BaseAuthenticat ...
- mingw编译opencv动态链接库和静态链接库及使用方法
前言 我一直不知道编译的过程以及cmake, make 这些工具是干什么的,所有抽时间研究了一下. 简单来说就是 cmake 是根据 CMakeLists.txt 用来生成 makefile文件的.而 ...