think in java_Think in java笔记(一)

Introduction to Objects & Everything is an Objects

1.万物皆对象

2.upcast是安全的

3.downcast不是绝对安全的,SE5之前,由于容器类只能容纳Object,所以当你将一个对象引用丢进容器,这个对象就upcast成Object,丢失了原有的信息。

4.但是SE5允许利用generics(泛型)可以安全地downcast S例如ArrayList shapes  = new ArrayList()

5.java采用在一个内存池里(堆)动态创建对象,即动态分配内存的方式。

6.String s; 仅仅创造了一个String的引用,而非对象

String s = "asdf";

7.五个存放数据的地方,寄存器位于CPU速度最快,但数量有限;堆栈位于RAM,指针向下移创建对象,向上移释放对象,速度仅次于寄存器,引用存放于此,而非对象,而且java必须知道对象的生命周期;堆,通用的存放位置,通常new出来的对象就存放在这里,程序运行时才会分配空间,但是代价是慢,堆不存在堆栈的限制;常量存储区顾名思义,储存常量的ROM;最后是外部存储区,例如流对象和持久化对象。

8.基本类型储存在堆栈中,变量直接操作数值,不像new出一个对象一样将引用存储在堆里。

9.包装类可以让你在堆new出一个非基本类型的对象,就像通常new对象一样。

char c = "x"; // 在堆栈里,属于基本类型

Character ch = new Character(c); //包装类,在堆里

10.创建一个有多个对象的array,相当于创建了对象的引用,引用会被初始化为null,即没有指向任何对象,注意,未初始化的引用是禁止使用的。

11.{String s = new String("a string");} 引用s在括号末端就没作用了,但是String对象还在占据内存,此时java的垃圾回收器就起作用了。

12.类的定义大体都类似,但是java只能对类的数据成员初始化(假设你没有进行初始化),对局部变量需要手动初始化。方法需要明确返回类型,同时接受返回值时的变量也要声明为同类型的,(python自动处理)。如果不想要返回对象,那么可以使用void,return的唯一作用就变成了退出程序。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

ReturnType methodName (/*Argument List*/) {/*Method body*/}

View Code

13.static关键字,无需创建类的对象也可以call的方法或者数据成员,使用static。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

classStaticTest {static int i = 47; //static field

}

StaticTest t1= newStaticTest();

StaticTest t2= new StaticTest(); //t1& t2 share the same i

StaticTest.i++; //ONLY works with static field

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值