成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化。 对于方法的局部变量,Java会以编译时报错的形式贯彻这种保证,比如: 但是如果是类的数据成员,情况会有所不同。类的每个基本类型数据成员会保证一个默认初始值,通常为0,布尔型就是false,引用类型会为null。 指定初始化 (1  ...
                            
                            
                                分类:
编程语言   时间:
2017-01-05 21:33:56   
                                阅读次数:
285
                             
                         
                    
                        
                            
                            
                                java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值。与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。 非静态初始化块 非静态初始化块在每次初始化实例对象的时 ...
                            
                            
                                分类:
编程语言   时间:
2017-01-03 17:05:55   
                                阅读次数:
156
                             
                         
                    
                        
                            
                            
                                    当在静态初始化块中出现了异常的时候,JVM会抛出 java.lang.ExceptionInInitializerError异常。如果你了解Java中的静态变量,你会知道它们是在类加载的时候进行初始化的。如果在这个静态变量初始化的过程中出现了异常,那么就会抛出 java.lang.Exception ...
                            
                            
                                分类:
编程语言   时间:
2016-12-28 15:02:22   
                                阅读次数:
195
                             
                         
                    
                        
                            
                            
                                用jdk提供的javap工具了解java编译器的机制。 1、javac Cat.java 2、javap -c Cat.class 3、当创建任何java对象时,程序总会先一次调用每个父类非静态初始化块、父类构造器(总是从Object开始)执行初始化,最后 才会调用本类的非静态初始化块、构造器执行初 ...
                            
                            
                                分类:
其他好文   时间:
2016-12-18 17:44:18   
                                阅读次数:
194
                             
                         
                    
                        
                            
                            
                                对于静态变量、静态初始化块、变量、初始化块、构造器, 它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点: public class InitialOrderTest { // 静态变量 public static String s ...
                            
                            
                                分类:
编程语言   时间:
2016-12-02 18:42:55   
                                阅读次数:
254
                             
                         
                    
                        
                            
                            
                                输出: 静态初始化只有在必要时进行。初始化顺序是静态对象然后非静态对象。 ...
                            
                            
                                分类:
其他好文   时间:
2016-11-22 23:38:17   
                                阅读次数:
174
                             
                         
                    
                        
                            
                            
                                Java中数组初始化和OC其实是一样的,分为动态初始化和静态初始化, 动态初始化:指定长度,由系统给出初始化值 静态初始化:给出初始化值,由系统给出长度 在我们使用数组时最容易出现的就是数组越界问题,好了,下面来演示一下 这是一个二维数组,很明显,数组越界了,控制台中会打印如下信息: Excepti ...
                            
                            
                                分类:
编程语言   时间:
2016-11-16 13:58:16   
                                阅读次数:
205
                             
                         
                    
                        
                            
                            
                                    1静态初始化:这个值是多少就是多少,不能够改变 int[] arr = {1,2,3,4,5}; 2.动态初始化:不可变的数组 可变数组 》集合 ArrayList //这是一个指定的数组,但也可以不指定 //如果元素没有被赋值,默认以0来填充。 int[] arr = new int[10]; 3 ...
                            
                            
                                分类:
编程语言   时间:
2016-11-14 15:06:13   
                                阅读次数:
124
                             
                         
                    
                        
                            
                            
                                package Study; public class TestArray02 { public static void main(String[] args){ //声明 int[] a; int b[]; //创建数组对象 a = new int[4]; b = new int[5]; //初始 ...
                            
                            
                                分类:
编程语言   时间:
2016-11-10 18:55:41   
                                阅读次数:
152
                             
                         
                    
                        
                            
                            
                                1,总结Java字段初始化的规律。 Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰。 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面” 执行类的构造函数:类的初始 ...
                            
                            
                                分类:
其他好文   时间:
2016-11-03 23:16:31   
                                阅读次数:
274