设为首页 - 加入收藏
广告 1000x90
您的当前位置:144177黄大仙有求必应 > 静态方法 > 正文

java 普通类中的静态方法

来源:未知 编辑:admin 时间:2019-07-07

  我想问的是,像TOMCAT,JBOSS之类的,在加载是,是把整个类都静态了还是只有这一个方法是静态的?

  以下两个回答,我实在不知选哪位的好。当然有一位很热心,回答很多。表示感谢。但。。。展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部首先:类不可以标注static,也就是说没有“静态类”,但是类的成员、方法、块是可以标注static的

  其次: 被标注为static的变量及方法可以脱离本类的实例使用,也就是说不需要实例化这个类就可以使用他的静态变量和方法

  比如常用的:System.out.println(); (想想你在使用这个方法的时候是不是也没有实例化System对象,就是因为out是System的一个静态成员)

  第三: 既然不需要实例化,就意味着这些静态的家伙在一开始就已经被放到内存里了(不然jvm要到哪里去找数据捏~),至于占用的内存,会根据实际情况而定

  每种类型占用的内容都是固定的更多追问追答追问多谢回答。但是我不太同意你说的第一点。当然,类不能标记静态。但是你在使用System.out.println()时,明显先指向类“out”,再指向其下的println()方法。所以,就算类没静态,但这个静态方法有了类的标记。

  那么我想问的就是,这个类的标记仅仅是个标记,还是它有一个实例化了的类,只是这个类下只有静态的方法?

  我想说的是,类的定义是不能标注static。但是如果一个类A做为类B的成员对象,那么在B中是可以用static来标注A的定义的

  我们就可以直接调用B.a.doSomething(),因为a作为B的一个静态成员而存在,所以不需要我们去实例化,但是如果直接A.doSomething()就是出错,因为A的doSomething()没有被标注static

  很明显,这样我们就可以直接使用a.doSomethind(),而不用NEW一个A出来了。

  这样,回到我的问题上,a.doSomethind() 的这个 a 怎么来的?追答a是B的成员变量啊!

  按你所说,System.out.println()中的println()也是静态方法喽?你可以试下直接用out.println()能否执行

  静态方法是静态的。(无论实例多少个类,这个静态方法只固定占用一段内存)追问请问有没更实在的更直观的例子或信息?追答可以用工具分析吧

本文链接:http://that-a-way.com/jingtaifangfa/340.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top