随笔 - 154  文章 - 0  评论 - 4  阅读 - 49544

java基础

类: 描述事物的抽象体 (包含属性 + 行为)

对象是实例,栈 内存     堆内存--有默认值

基本类型默认0 引用类型是null  

方法上的是  形式参数,用于接收实际参数

堆内存的成员变量有默认值

栈内存的局部变量必须定义赋值,不给默认

成员局部,同名就近

new 就是堆里,开内存,建对象,初始化

 

基本类型作为形式参数:形参改变不影响实参

引用类型作为形式参数:影响

方法的形参是引用类型,其实需要的是该类型的对象,只有具体的对象才会调用功能,引用类型给地址值,地址值是new出来的.......java是值传递

 因为Java中对基本数据类型(如int、double、char等)进行传递时,实际上传递的是它们的副本,而不是原始变量本身。

对于对象(如类实例),虽然表面上看起来是传递了对象的引用,但实际上传递的是这个引用(即内存地址)的副本,而非对象本身。

这意味着在方法内部对对象状态的修改会影响到原始对象,但如果你试图重新赋值这个引用指向另一个对象,那么原始引用将不会改变。

参数传递机制被称为值传递(pass-by-value),这是 Java 中唯一的参数传递方式。无论传递的参数是基本数据类型还是对象引用,Java 都是通过复制变量的值来进行参数传递的。因此,Java 并不支持引用传递(pass-by-reference)。

值传递意味着当你调用一个方法时,方法参数接收到的是调用时传入的实际值的副本。换句话说,方法内操作的是值的拷贝,而不是原始值本身。因此,任何在方法内对参数进行的修改都不会影响到方法外的原始变量。

在 Java 中,即使传递的是对象,仍然是值传递。这里传递的是对象引用的值,即指向对象的内存地址的值。这意味着方法内对对象的引用本身的修改不会影响原始引用,但通过引用修改对象的内部状态会影响原始对象。

 

 

-- 封装--指隐藏对象的属性和实现细节,仅对外提供公共访问方式。将不需要对外提供的内容都隐藏起来。 把属性隐藏,提供公共方法对其访问

对象调用成员变量名是合法的。对象.成员变量------------------------但能乱赋值,赋值之前先判断------逻辑判断再方法种----get()  set()---不用set就用.成员变量咋整??  封装可以强制使用------private 修饰成员变量+方法---  只本类中访问 私有的

private  大多时候修饰变量,不修饰防范

 

setName  形参与成员变量同名---->>>就近原则>>自己给自己>>>>>> this  当前类的关键字--解决局部变量隐藏成员变量问题(就近原则导致)--方法被哪个对象调用,this就是谁,因为this在方法里面,谁调用方法   

类加载后及案例,方法区,供对象多次调用

 

构造方法--new 后的就是构造方法, 给对象的数据进行初始化,   给成员变量赋值 (set + 构造)

类组成:成变,构造,成员方法(有参无参有返无返)

XXX s = new XXX()

1加载Student.class文件进内存

2在栈内存为s开辟空间

3在堆内存为学生对象开辟空间

4对学生对象的成员变量进行默认初始化--第一次初始化

5对学生对象的成员变量进行显示初始化--第二次初始化(一般没有)

6通过构造方法对学生对象的成员变量赋值--第三次初始化

7学生对象初始化完毕,

8把对象地址赋值给s变量

 

 

类加载方法区,创建对象堆,方法调用即入栈

变量范围定义越小越好,方便回收

 

 

static----所有对象共享,一改都变--------静态区,随着类的加载而加载。

this 是对象,随着对象的创建而创建。静态没有this。

 

 main --- 静态方法 可以类名调用,main是虚拟机调用,不用创建对象

静态修饰的是类成员,非静态修饰的是对象成员

 

 

代码块 ---- 局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。

  1局部代码块  在方法中出现;限定变量生命周期,及早释放,提高内存利用率

  2构造代码块  在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

  3静态代码块 在类中方法外出现,加了static修饰 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次。

 

继承

final

多态

抽象类

接口

匿名内部类

 

posted on   daofree  阅读(0)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示