在java static修饰的属性和方法是怎么被加载的 和没被修饰的放在一起吗 都各自放在哪
java static
答案:5 悬赏:70 手机版
解决时间 2021-05-06 04:25
- 提问者网友:绫月
- 2021-05-05 10:27
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-05-05 11:20
是的。。。。静态的变量会保留改变值。。。
全部回答
- 1楼网友:第四晚心情
- 2021-05-05 15:37
当类被调用时static的属性会与类一同被调用到内存的方法区,如果没有初始化的话会有默认值!
- 2楼网友:一把行者刀
- 2021-05-05 14:00
在内存中有两块区域 堆 和栈 堆放new 出来的东西 栈 是放基本变量
static 修饰的属性或者方法 会另外开辟一块内存来存放
- 3楼网友:鱼忧
- 2021-05-05 12:41
你好
按照你说的(我每次调用 这个 public static Connection getconn() 方法的时候都会返回一个不同的对象,
我不明白为什么会出现错误,既然每次返回的都是不同的对象为什么不能加static,就算加了static 也是重新给它一个指向)
static修饰的变量是共享的变量,它在类加载时装入内存,放在一个静态池中,所以你每次调用的conn都是指向同一个对象,从池中取到的对象,声明为static的变量,在你后得到的Connection对象会覆盖掉前面所得的Connection。
你的getconn()是静态的方法,直接GetDBtest.getconn()就可以调用,为什么还要用单例呢,设计模式好,但是乱用就不是特别好了,呵呵。
希望对你有所帮助!!
- 4楼网友:纵马山川剑自提
- 2021-05-05 11:53
这个问题在问问中不止出现一次,我都不止回答过一次
*.java的文件首先是被编译成*.class文件(字节码文件),这个时候的有static 和没有static修饰的属性和方法都放在*.class文件中。当在该类还被类加载器加载进内存的时候,没有static修饰的属性和方法在内存中是以字节码的形式存在,而有static修饰的属性和方法则一进入内存就被内存实例化,即在内存中有了实体与之对应,就指这样子
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯