zoukankan      html  css  js  c++  java
  • Java 静态static关键字,main函数,对象的初始化过程,对象调用成员,单例模式的设计,静态代码块(6)

    Java 静态static关键字,静态代码块详情参考:static的使用原理讲解http://www.cnblogs.com/itcqx/p/5519464.html

    main函数:

       java MainDemo:将MainDemo类传入给虚拟机,启动虚拟机执行编译一个类的同时传入参数,java MainDemo hah he 将类后面跟入的数据已空格的格式区分自动存入数组当中。

     1 /*
     2 public static void main(String[] args) 
     3 
     4 主函数:是一个特殊的函数。作为程序的入口,可以被jvm调用。虚拟机jvm调用时传入的值为数组实体,调用的地址
     5 
     6 主函数的定义:
     7 public:代表着该函数访问权限是最大的。
     8 static:代表主函数随着类的加载就已经存在了。
     9 void:主函数没有具体的返回值。
    10 main:不是关键字,但是是一个特殊的单词,可以被jvm识别。
    11 (String[] arr):函数的参数,参数类型是一个数组,该数组中的元素是字符串。字符串类型的数组。
    12 
    13 主函数是固定格式的:jvm识别。
    14 
    15 jvm在调用主函数时,传入的是new String[0];
      
    16 */ 17 //
    18 class MainDemo 
    19 {
    20 public static void main(String[] args)//new String[]
    21 {
    22         String[] arr = {"hah","hhe","heihei","xixi","hiahia"};
    23         System.out.println(args);//当编译文件时直接java MainDemo打印值为地址值,当输入java MainDemo sssss打印值为地址值

              System.out.println(args.length);//未传则为0
    24            MainTest.main(arr);
    25     }
    26 }
    27 
    28 //String[] args = new String[3];
    29 //String[] args = null;
    30 
    31 
    32 class MainTest
    33 {
    34     public static void main(String[] args)
    35     {
    36         for(int x=0; x<args.length; x++)
    37             System.out.println(args[x]);
    38 //输出的args[x]为arr数组值
    39     }
    40 }
     

    编译java MainDemo时,传入参数为 null,打印为null,传入参数有值则有值 比如 arr

     

     如果数组大于0,可以打印值。为0打印args[0]则数组越界。

    对象的初始化过程:

    对象调用成员的过程:

    单例模式的设计:

    参考:http://www.cnblogs.com/itcqx/p/5546622.html

     1 /*
     2 设计模式:解决某一类问题最行之有效的方法。
     3 java中23种设计模式:
     4 单例设计模式:解决一个类在内存只存在一个对象。
     5 
     7 想要保证对象唯一。
     8 1,为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象
     9 2,还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。
    10 3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
    11 
    12 这三部怎么用代码体现呢?
    13 1,将构造函数私有化。
    14 2,在类中创建一个本类对象。
    15 3,提供一个方法可以获取到该对象。
    16 
    17 对于事物该怎么描述,还怎么描述。
    18 当需要将该事物的对象保证在内存中唯一时,就将以上的三步加上即可。
    19 
    20 */

      饿汉式

     1 /*
     2 这个是先初始化对象。
     3 称为:饿汉式。
     4 
     5 Single类一进内存,就已经创建好了对象。
     6 class Single
     7 {
     8     private static Single s = new Single();
     9     private Single(){}
    10     public static Single getInstance()
    11     {
    12         return s;
    13     }
    14 }
    15 */
    16 
    17 //对象是方法被调用时,才初始化,也叫做对象的延时加载。成为:懒汉式。
    18 //Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。
    19 class Single
    20 {
    21     private static Single s = null;
    22     private Single(){}
    23     public static Single getInstance()
    24     {
    25         if(s==null)
    26         {
    27             synchronized(Single.class)
    28             {                
    29                 if(s==null)
    30                     s = new Single();
    31             }
    32         }
    33         return s;
    34     }
    35 }
    36 
    37 //记录原则:定义单例,建议使用饿汉式。
    38 
    39 class  
    40 {
    41     public static void main(String[] args) 
    42     {
    43         System.out.println("Hello World!");
    44     }
    45 }
  • 相关阅读:
    QtCreator无法编辑源文件
    【Newtonsoft.Json】自己实现JsonConverter ,精简返回的数据结果
    Ghostscript 将PDF文件转换成PNG图片 问题一二
    Nginx--面试基础必会
    Nginx日志配置
    Nginx缓存原理及机制
    Nginx限流
    Nginx 实现 Rewrite 跳转
    Nginx正确配置Location
    渐进深入理解Nginx
  • 原文地址:https://www.cnblogs.com/itcqx/p/5541646.html
Copyright © 2011-2022 走看看