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
多态
抽象类
接口
匿名内部类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话