|
| 1 | +package GJVM; |
| 2 | + |
| 3 | +/** |
| 4 | + * VM: JDK 1.0.2, Sun Classic VM |
| 5 | + * @author zzm 来自周志明老师的《深入理解Java虚拟机》一书 |
| 6 | + */ |
| 7 | +public class JavaVMStackSOF_3 { |
| 8 | + private static int stackLength = 0; |
| 9 | + |
| 10 | + public static void test() { |
| 11 | + long unused1, unused2, unused3, unused4, unused5, |
| 12 | + unused6, unused7, unused8, unused9, unused10, |
| 13 | + unused11, unused12, unused13, unused14, unused15, |
| 14 | + unused16, unused17, unused18, unused19, unused20, |
| 15 | + unused21, unused22, unused23, unused24, unused25, |
| 16 | + unused26, unused27, unused28, unused29, unused30, |
| 17 | + unused31, unused32, unused33, unused34, unused35, |
| 18 | + unused36, unused37, unused38, unused39, unused40, |
| 19 | + unused41, unused42, unused43, unused44, unused45, |
| 20 | + unused46, unused47, unused48, unused49, unused50, |
| 21 | + unused51, unused52, unused53, unused54, unused55, |
| 22 | + unused56, unused57, unused58, unused59, unused60, |
| 23 | + unused61, unused62, unused63, unused64, unused65, |
| 24 | + unused66, unused67, unused68, unused69, unused70, |
| 25 | + unused71, unused72, unused73, unused74, unused75, |
| 26 | + unused76, unused77, unused78, unused79, unused80, |
| 27 | + unused81, unused82, unused83, unused84, unused85, |
| 28 | + unused86, unused87, unused88, unused89, unused90, |
| 29 | + unused91, unused92, unused93, unused94, unused95, |
| 30 | + unused96, unused97, unused98, unused99, unused100; |
| 31 | + |
| 32 | + stackLength ++; |
| 33 | + test(); |
| 34 | + |
| 35 | + unused1 = unused2 = unused3 = unused4 = unused5 = |
| 36 | + unused6 = unused7 = unused8 = unused9 = unused10 = |
| 37 | + unused11 = unused12 = unused13 = unused14 = unused15 = |
| 38 | + unused16 = unused17 = unused18 = unused19 = unused20 = |
| 39 | + unused21 = unused22 = unused23 = unused24 = unused25 = |
| 40 | + unused26 = unused27 = unused28 = unused29 = unused30 = |
| 41 | + unused31 = unused32 = unused33 = unused34 = unused35 = |
| 42 | + unused36 = unused37 = unused38 = unused39 = unused40 = |
| 43 | + unused41 = unused42 = unused43 = unused44 = unused45 = |
| 44 | + unused46 = unused47 = unused48 = unused49 = unused50 = |
| 45 | + unused51 = unused52 = unused53 = unused54 = unused55 = |
| 46 | + unused56 = unused57 = unused58 = unused59 = unused60 = |
| 47 | + unused61 = unused62 = unused63 = unused64 = unused65 = |
| 48 | + unused66 = unused67 = unused68 = unused69 = unused70 = |
| 49 | + unused71 = unused72 = unused73 = unused74 = unused75 = |
| 50 | + unused76 = unused77 = unused78 = unused79 = unused80 = |
| 51 | + unused81 = unused82 = unused83 = unused84 = unused85 = |
| 52 | + unused86 = unused87 = unused88 = unused89 = unused90 = |
| 53 | + unused91 = unused92 = unused93 = unused94 = unused95 = |
| 54 | + unused96 = unused97 = unused98 = unused99 = unused100 = 0; |
| 55 | + } |
| 56 | + |
| 57 | + public static void main(String[] args) { |
| 58 | + try { |
| 59 | + test(); |
| 60 | + }catch (Error e){ |
| 61 | + System.out.println("stack length:" + stackLength); |
| 62 | + throw e; |
| 63 | + } |
| 64 | + } |
| 65 | +} |
0 commit comments