Java编程思想学习笔记——2.0一切都是对象

记录学习使用,欢迎留言讨论(如果想要知道完整的知识请查看java编程思想第二章的内容)
首先一切的java代码都是写在对象中的

存储位置

  • 寄存器——也就是CPU内,C语言、c++允许寄存器的分配方式
  • 堆栈——位于RAM中,速度仅次于寄存器。在堆栈内的所有项都必须知道其的确切生存周期,基本数据类型就存储于栈中。
  • ——指内存池,也属于RAM。用于存放对象,对于引用类型其对象的引用存储在栈中,而对象存在堆中。Date t = new Date(); 此处t为引用而其真实对象存储于堆中
  • 常量存储——常量值通常直接存储于程序代码内部,这样比较安全。
  • 非RAM存储——数据存活于程序之外,不再受其控制。比如对象流,将一个对象序列化之后持久储存于磁盘上。

作用域

在java中在作用域里定义的变量只能用于作用域结束前。(作用域由花括号的位置决定{})

{// 第一个作用域开始位置
	int x = 1;
	int y = 2;
	{// 第二个作用域开始位置
		int q = 3;
		// 在此处有效的变量为x、y、q因为第二个作用域包含在一中
		// C语言和c++可以在第二个作用域定义x、y但是java不行
		System.out.println(x+" "+y+" "+q);
	}// 第二个作用域结束位置
	// 此处只有xy有效
	System.out.println(x+" "+y);
}// 第一个作用域结束位置

小知识点:System.out引用的是System中的静态对象PrintStream(PrintStream是打印流),此处通过System调用PrintStream在调用其方法。

对象作用域

{
	String s = new String("hello");
}

此处引用s在作用域结束就消失了,但是其对象任然存放在堆中,等待使用。此处唯一的引用s都已经消失了,java的垃圾回收机制会自动将其内存释放。

基本成员默认值

对于基本数据类型在作为成员变量使用时,java会确保其默认值int——为0,boolean——false。不是作为成员变量使用其int的默认值会为一个随机数,但是由于未初始化在java编译器中不能通过编译除非执行时省略校验。
数组的默认值int[]数组每个都为0,boolean[]每个都为false。

小知识点:子程序——C语言、C++中的函数——java中的方法

static关键字

static 关键字有两个作用:

  • 为某个特定域分配单独的空间
    如:
class A{
   static int X = 47;
}

此后无论创建多少个对象,他们都共享成员变量X

  • 可以不创建对象就调用方法
class B{
	public static void hello(){
		System.out.println("hello");
	} 
}

此后只要能访问B类就可以直接调用其 方法。

B.hello();
// 结果为:hello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值