public class Ex
{
int a;
public Ex()
{
System.out.println("a is "+a);
}
}
输出为:a为0
å…¶ä¸aåˆå§‹åŒ–...
我知é“int的默认值是零。我的问题是它在哪里被åˆå§‹åŒ–...é€šè¿‡é»˜è®¤æž„é€ å‡½æ•°ï¼Ÿï¼ˆæˆ‘å¬è¯´é»˜è®¤æž„é€ å‡½æ•°æ˜¯åœ¨æˆ‘ä»¬æ²¡æœ‰æ到类ä¸çš„ä»»ä½•æž„é€ å‡½æ•°æ—¶åˆ›å»ºçš„ï¼‰
ç”案 0 :(得分:6)
如果您没有自己åˆå§‹åŒ–a
(这是一个原始值),它会自动åˆå§‹åŒ–为默认值,在这ç§æƒ…况下为0。
阅读4.5.5节。 ({3}}ä¸çš„(å˜é‡çš„åˆå§‹å€¼ï¼‰ã€‚
ç”案 1 :(得分:5)
其默认值为0.
æ¥è‡ªThe Javaâ„¢ Tutorials - Primitive Data Types - Default Values:
 Â声明å—段时并ä¸æ€»æ˜¯éœ€è¦æŒ‡å®šå€¼ã€‚声明但未åˆå§‹åŒ–çš„å—段将由编译器设置为åˆç†çš„默认值。
â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¦â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— â•‘ Data Type â•‘ Default Value (for fields) â•‘ â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¬â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£ â•‘ byte â•‘ 0 â•‘ â•‘ short â•‘ 0 â•‘ â•‘ int â•‘ 0 â•‘ â•‘ long â•‘ 0L â•‘ â•‘ float â•‘ 0.0f â•‘ â•‘ double â•‘ 0.0d â•‘ â•‘ char â•‘ '\u0000' â•‘ â•‘ String (or any object) â•‘ null â•‘ â•‘ boolean â•‘ false â•‘ â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•©â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
ç”案 2 :(得分:3)
ç»å¯¹ä¸åœ¨é»˜è®¤æž„é€ å‡½æ•°ä¸ã€‚æ ¹æ®JLSï¼Œåœ¨ä»»ä½•æž„é€ å‡½æ•°è°ƒç”¨ä¹‹å‰ï¼Œå®ƒéƒ½æ˜¯ä½œä¸ºç±»å®žä¾‹åˆ›å»ºè¡¨è¾¾å¼ï¼ˆå½“ä½ æ‰§è¡Œnew ClassName...
)的评估的一部分。æ¥è‡ªthe JLS, Java SE 8 Edition, 15.9.4:
 Â接下æ¥ï¼Œä¸ºæ–°çš„类实例分é…空间。如果没有足够的空间æ¥åˆ†é…对象,则通过抛出OutOfMemoryErrorçªç„¶å®Œæˆå¯¹ç±»å®žä¾‹åˆ›å»ºè¡¨è¾¾å¼çš„评估。
   Â新对象包å«åœ¨æŒ‡å®šç±»ç±»åž‹åŠå…¶æ‰€æœ‰è¶…ç±»ä¸å£°æ˜Žçš„所有å—段的新实例。在创建æ¯ä¸ªæ–°å—段实例时,它将åˆå§‹åŒ–为其默认值(§4.12.5)。
   Â接下æ¥ï¼Œä»Žå·¦åˆ°å³è¯„ä¼°æž„é€ å‡½æ•°çš„å®žé™…å‚数。如果任何å‚数评估çªç„¶å®Œæˆï¼Œåˆ™ä¸ä¼šè®¡ç®—å…¶å³ä¾§çš„任何å‚数表达å¼ï¼Œå¹¶ä¸”由于相åŒçš„åŽŸå› ï¼Œç±»å®žä¾‹åˆ›å»ºè¡¨è¾¾å¼ä¼šçªç„¶å®Œæˆã€‚
   Â接下æ¥ï¼Œè°ƒç”¨æŒ‡å®šç±»ç±»åž‹çš„é€‰å®šæž„é€ å‡½æ•°ã€‚è¿™å¯¼è‡´ä¸ºç±»ç±»åž‹çš„æ¯ä¸ªè¶…ç±»è°ƒç”¨è‡³å°‘ä¸€ä¸ªæž„é€ å‡½æ•°ã€‚æ¤è¿‡ç¨‹å¯ä»¥ç”±æ˜¾å¼æž„é€ å‡½æ•°è°ƒç”¨è¯å¥ï¼ˆç¬¬8.8节)指导,并在第12.5节ä¸è¯¦ç»†è¯´æ˜Žã€‚
ç”案 3 :(得分:1)
int
的默认值为0
请å‚阅this linkï¼Œæ ¹æ®ç±»åž‹æ‰¾å‡ºä¸åŒçš„默认值。(Default Values
部分)
ç”案 4 :(得分:1)
a未被åˆå§‹åŒ–ï¼Œæ‰€ä»¥å®ƒç»™å‡ºä¸€ä¸ªé›¶å€¼ï¼Œå› ä¸ºint的默认值是0。
ç”案 5 :(得分:1)
a
具有基本类型int
。在您的代ç ä¸ï¼Œa未åˆå§‹åŒ–,默认值为0
。
ç”案 6 :(得分:1)
在java实例ä¸ï¼Œå˜é‡å°†ä»Žæž„é€ å‡½æ•°åˆå§‹åŒ–(默认情况下,如果没有)。
public class TestFile {
String x = null;
int y = x.length();
public TestFile() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
TestFile tf = new TestFile();
}
}
ä½ å°†å¾—åˆ°ä¸€ä¸ªå †æ ˆè·Ÿè¸ª
Exception in thread "main" java.lang.NullPointerException
at TestFile.<init>(TestFile.java:7)
at TestFile.main(TestFile.java:16)
åœ¨æž„é€ å‡½æ•°ä¸è°ƒç”¨å¯¹äºŽé™æ€å—æ®µï¼Œåœ¨ç±»åŠ è½½æœŸé—´åˆå§‹åŒ–