方法
方法分为有参方法和无参方法
方法就是行为就是功能
无参方法:
有参方法:
返回值
返回值可以分为有返回值和无返回值
void表示无返回值
return表示返回返回值
return不具有打印输出功能
例如:
重载
重载就是方法名一致但是参数列表不一致,重载之后的方法名可以重名使用
比如:
数组
数组语法
一个变量中可以存放一个数据,而一个数组中可以存放多个数据
语法格式:
数据类型 [] 数组名 = new 数据类型 [数组长度]
数据类型 [] 数组名 = new 数据类型 [] {数组元素}
数据类型 [] 数组名 = {数组元素}
数组求最值问题
最大值:
最小值:
如果当前元素大于或小于指定元素,就将两个元素换位,这样就可以得出最大值和最小值
冒泡算法:
封装
面向对象之封装
再程序中使用面向对象来映射现实中的事务,使用对象关系来描述事务之间的关系,这就是面向对象思想
何为对象?
万物皆是对象,对象在程序中是new出来的 先有的类后有的对象
类和对象的关系:对象属于类
类:是一类事物的统称,是一个抽象的概念
对象:对象是实例也叫实体
例如:
定义了一个吃饭的方法,在测试类中创建这个对象就可以使用这个对象中的方法
面向对象的三大特征:封装 继承 多态
封装:隐藏实现细节,仅对外提供访问式setter/getter方法,封装又称为私有的
关键字:peivate
注意:在编写类的时候可以在一个.java文件中写多个类,但是只能由一个被public修饰的类,更可以分开写
访问修饰符
static关键字&静态代码块
static表示静态的
static修饰的变量为静态变量来修饰的方法称为静态方法
特点:
1、静态只能访问静态不能访问非静态
2、静态不能和this,super等关键字共存
3、静态随着类的加载而加载
4、静态可以由类名直接访问
通过这两个类可以证明特点1和特点4
而特点2和特点3是优先级的问题
静态代码块>构造代码块>构造函数>普通函数
静态代码块只会执行一次
继承
用子类去继承父类,关键字是extends
可以使用父类的公有的属性和方法减少冗余代码
父类:
子类:男人类
子类:女人类
测试类:
final关键字的使用
特点:
1、final修饰的类不能被继承
2、final修饰的方法不能被重写
3、final修饰的变量是常量,只能赋值一次
堆栈方法运行时常量池
通过代码可以看出==对比的时候要对比内存地址,所以在用==的时候大多数情况用来比较数字
栈内存(Stack Memory)
栈内存主要用于存储线程执行方法时的局部变量(包括基本数据类型变量和对象引用),以及方法执行完毕后自动释放的空间。每个线程都有自己的栈内存,栈内存是线程私有的,它的生命周期与线程相同。
特点:
-
存储的是基本数据类型的变量(如
int
,boolean
,char
等)和对象的引用。 -
变量的作用域仅限于其所属方法。
-
方法执行完毕后,栈内存中的数据会被自动释放,因此栈内存空间可以高效地管理和释放。
堆内存(Heap Memory)
堆内存用于存储Java程序中的对象实例和数组。所有通过 new
关键字创建的对象和数组都存储在堆内存中。
特点:
-
存储的是对象实例及数组。
-
堆内存是所有线程共享的,任何线程都可以访问堆中的对象。
-
对象的生命周期不由代码块控制,而是由垃圾回收器(Garbage Collector)来管理。当没有引用指向一个对象时,该对象就会被垃圾回收器回收,释放其占用的堆内存空间。
区别和使用场景:
-
栈内存:
-
用于存储局部变量和方法调用的部分信息。
-
内存管理由编译器自动分配和释放,具有很快的访问速度和自动释放特性。
-
存储的数据大小和生命周期都是确定的,不需要额外的垃圾回收机制。
-
-
堆内存:
-
用于存储对象实例和数组,大小不固定,可以动态分配。
-
内存管理由垃圾回收器负责,自动处理对象的创建和销毁,因此更灵活但也更复杂。
-
对象的生命周期不受方法的限制,可以在程序的不同部分使用和引用。
-
字符串常量池(String Pool)
字符串常量池是Java中的一个特殊存储区域,用于存储字符串常量。在Java中,字符串是不可变的,即一旦创建了一个字符串对象,它的值就不能被修改。这种特性使得Java能够在运行时对字符串常量进行优化和重用,从而提高内存利用率和性能。
标签:Java,记录,对象,数据类型,学习,静态,内存,数组,方法 From: https://blog.csdn.net/m0_70862775/article/details/141104667