java 板


LINE

※ 引述《gn00618777 (非常念旧)》之铭言: : 类别(class)中可以有static 程式区块,static 程式区块在类别第一次被载入後只会 : 被执行一次,此区块在类别变数初始化之前执行。 : 书上只浅浅的一行带过... : 所以...类别是会被载入之後再载出,重复载入的意思罗? : 还有这 static block 的使用时机是啥阿? 谢谢。 这边主要有两个概念 Classloader和Initializing Fields Classloader java Classloader是Java运行时环境的一部分, 负责动态载入Java类到Java虚拟机的内存空间中。 类通常是按需载入,即第一次使用该类时才载入。 (引自维基百科) 为了空间效能等等,通常是需要时才载入 不必要时也可能载出 所以是会有重复载出载入的情形 static block static block主要是用来当Initializing Field使用 也就是初始化使用static member使用 而使用时机可能是 1.需要载入共用资源 2.下载.读取一些共用资料 参考资料: http://en.wikipedia.org/wiki/Java_Classloader http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.161.193.19
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1404582657.A.670.html
1F:→ Deltaguita:请问一下static block是被载入的时候就被执行 07/06 03:08
2F:→ Deltaguita:不被 Instance 跟Destory影响吗? 07/06 03:09
3F:→ jetswayss:基本上是 不过如果第一次new出instance 07/06 04:16
4F:→ jetswayss:"可能"是他第一次被载入,所以时间可能相近 07/06 04:16
5F:→ jetswayss:Destory後又无参照 也"可能"被GC unload 07/06 04:16
6F:→ jetswayss:之後再使用"可能"又会在载入一次 07/06 04:17
7F:推 gn00618777:请问一下,初始化static member使用,那类别的成员各自 07/06 10:19
8F:→ gn00618777:加上static修饰词不就好了..? 07/06 10:19
9F:→ jetswayss:某种方面上可以把它当成class的constructor 07/06 15:12
10F:→ NewSpec:八卦一下, 某公司面试Java考题这个考很凶... 07/06 15:47
11F:→ Killercat:其实95%的人只有在JNI会用到这个.... 07/07 02:42
12F:→ Killercat:static block的invoke时间跟Classloader完全相关 07/07 02:42
13F:→ Killercat:最好他们生意做那麽大 每个都马需要改自己的classloader 07/07 02:43
14F:→ Killercat:基本上大多数只有自己实作DI Framework才会想碰那块 07/07 02:46
15F:→ qrtt1:也要意识到 web context 也是自己独立的 classloader 07/07 10:14
16F:→ TonyQ:我改过 class loader XDDD ,不过是为了做 runtime sandbox 07/07 14:24
17F:→ TonyQ:当时的目标是可以线上直接写 class 还有更新,所以在 07/07 14:25
18F:→ TonyQ:classloader 跟 runtime compile 那边下了不少苦心。XDDD 07/07 14:25
19F:推 Killercat:可是真正enterprise上需求真的很少见 他们考这不知干嘛 07/07 14:34
20F:→ lovdkkkk:想搞自己的热插拔就可能改 (aka 实做自己的) Classloader 07/07 14:35
21F:→ lovdkkkk:不过反正有 load 就会跑到, 应该没影响? 07/07 14:36
22F:推 Killercat:「热插」做的到,「热拔」不行。必须用一些很tricky的方 07/07 15:45
23F:→ Killercat:法(比方说动态指定class name)才能逼classloader 07/07 15:46
24F:→ Killercat:去unload一个class,Native Library也有一样的问题 07/07 15:46
25F:→ Killercat:这东西要热插拔搞到最後就是一个半吊子 很讨厌的 07/07 15:47
26F:→ Killercat:正常情况下除非ref=0加上强制GC 否则他无法unload 07/07 15:47
27F:推 Killercat:值得一提的是OSGi有重新写一个Classloader做的到 07/07 15:50
28F:推 lovdkkkk:热拔...就直接把 classloader 拔掉 (然後全重插) XDD 07/07 15:59
29F:→ Killercat:问题在於他会让你重新load一个同名但是改过的模组出问题 07/07 16:06
30F:→ Killercat:你没办法动态产生.class放进去 :/ 07/07 16:07
31F:→ Killercat:当初在Native Library为这点吃足苦头 结果.class都是... 07/07 16:07
32F:推 popcorny:这让我想到我之前分享的东西 http://goo.gl/twDuI7 07/07 16:37
33F:推 Killercat:等等 我看懂了 原来楼上两楼说的是拔classloader XD 07/07 16:50
34F:→ Killercat:居然还有这招 怎麽那麽靠背啊 XDDDDD 07/07 16:51
35F:→ qrtt1:可以插了又拔,拔了再插。很有趣滴。 07/07 17:34
36F:→ lovdkkkk:是的, 因为不能只换张椅子只好整栋楼重盖这样 @@ 07/07 17:44
37F:→ Killercat:真的是学到了 闲聊也能学到这种东西 XD 感谢大家 07/07 18:15







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP