java 零散知识_Java零散知识

面向对象:

属性存在于堆内存的对象中;

局部变量存在于栈内存的方法中。

属性都有默认初始化值;

局部变量没有默认初始化值。

声明对象是在栈内存中开辟了一个空间,例如

Person s;

实例化一个对象是在堆内存中开辟了空间,例如

Person s = new Person();

没有实体的对象称作空对象,空对象不能使用。

构造方法是在实例化对象时被Java虚拟机自动调用的,在程序中不能像调用普通成员方法去调用。如果一个构造方法想调用另一个构造方法,需要使用“this(参数列表)”的形式来调用(注意:如果使用this调用构造方法,此语句必须是第一句)。例子见here

浅拷贝与深拷贝:

浅复制:仅仅复制所考虑的对象,而不复制它所引用的对象;

深复制:需要把所复制的对象所引用的对象都复制一遍。

其中clone方法如果不重写的话,默认的就是浅复制。

类变量(静态变量):

static只能用于修饰成员变量,而不能用于修饰局部变量;

静态变量存储在静态存储区,普通变量存储在堆内存中。

静态变量可以通过:ClassName.VariableName的方式访问。类变量被声明为public static final类型时,类变量名称必须使用大写字母。(from w3school)

static修饰的方法称为类方法或者静态方法,static方法不能访问非static变量和方法,也不能使用this、super等关键字(原因-->);

类方法可以通过类名调用,而实例方法必须通过对象调用。

简单例子:

import java.util.Scanner;

class Per{

static int Add(int n){

return n+1;

}

int Sub(int n){

return n-1;

}

}

public class Main {

public static void main(String [] args){

int p = Per.Add(5);

Per s = new Per();

int q = s.Sub(5);

System.out.println(p + " " + q);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值