JAVA 初始化的一个问题

 我来答
大沈他次苹0B
2012-04-04 · TA获得超过7325个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:178万
展开全部
呵呵,好,答案我看试试。
就是关键在static 修饰的变量i2和非静态变量i1.i1是实例变量属于类的实例对象的变量,i2不属于该类的某个实例,而是属于该类本身的变量,但被所有的实例所共享。new t2的意思就是,i1是被重新声明的,专属于t2这个Test类的实例的对象,而i2是属于Test这个类的本身的变量。虽然你下面能输入t2.i2,其实呢,java的底层实现还是转换为Test.i2。换言之,t1也是这个道理。t1的i1和t2的i1不是一个,而i2严格上来讲并不是属于t1也不是属于t2,而是属于Test类的本身的。
你认为结果是22,是因为你把t1和t2都当成了该类本身的对象,所以你会觉得内存之中就只有两个变量。也就是说楼主还没有弄清楚弄懂static是怎么样的。引深来说,就是还没理解java的类的加载,初始化时机和内存的分配机制。
楼主要是不把我上面所说的都理解了,那么楼主只是单纯看下答案就说理解了,那肯定不是真理解,下次碰到同样或者类似的题目一样不知无从下手。
我们公司的面试题,关键基础部分,就是直接代码题,融合类的加载机制,初始化时机,静态非静态,值传递与引用传递还有多态的两种表现形式。题目看起来可是比上面的题目“难多了”哦。关键就是考你对于java这门语言的理解程度。而不是一般的会个SSH框架调个方法就能出结果,当然框架也必须会。但是最主要还是看你java本身的技术功底。
所以说,扎实的技术功底才是王道。努力吧~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式