为什么我们在写java 代码的时候一定要public static关键字的作用?

为什么我们在写java 代码的时候一定要public static关键字的作用?

回答:有static修饰的成员属于类本身,没有static修饰的成员属于类的实例。

public class Main {

    public static void main(String[] args) {

        int a = 1;

        while( a < 10 ) {

            System.out.print(a);

            a++;

            System.out.print("\n");

        }

    }

}

注意:如果没有 static ,就会报错

Error: Main method is not static in class Main, please define the main method as:
   public static void main(String[] args)

Java语言特点:

作为主流开发语言,之所以这么长久不衰,一定有自己的独特之处,除了C、C++等语言的都有的特性之外,罗列几项Java特有的特性如下:

  1. 跨平台特性

    所谓的跨平台,是因为Java的代码只需一次编写、处处执行,即不关心什么平台,只要有JVM虚拟机即可运行,真正做到跨平台。

  2. 简单性

    所谓的简单,并非单纯的语法简单,如舍弃了C++中继承复杂的一些问题,舍弃了C中的指针,自动垃圾回收机制使得动态内存管理也不用担心内存泄露,除此之外,由于和C/C++常规语法非常相似,因此有C/C++基础的同学学起来会非常顺利。

  3. 解释性

    Java语言首先是需要编译的,但编译之后的代码并非像C/C++一样的机器码,而是字节码,只要是Java的虚拟机都可以解释执行,这种特性使得编译之后的Java语言既能跨平台又可以执行速度很快。

  4. 健壮性

    强类型机制、垃圾回收、异常处理使得Java开发出来的程序更有安全的保证。

1.static关键字的作用
有static修饰的成员属于类本身,没有static修饰的成员属于类的实例。
2. 什么是static修饰符
在程序中static修饰的任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。
这样的设计,static可以用来区分成员变量、方法是属于类本身还是属于类实例化后的对象。有static修饰的成员属于类本身,没有static修饰的成员属于类的实例。
3 什么时候使用static修饰符
类是抽象的存在,简单的说我们在代码中定义的class,而类的实例是类具体化的存在。在实际的开发中,会存在这样的情况,有些类的使用没有实例化的必要。这时候,就可以用static来修饰成员变量和方法,表明这些变量和方法属于类本身。因为一个类的基本信息在类初始化以后类的相关信息是放在堆里面的,是共享的。类里面static修饰方法、变量是属于类本身,自然也会随之加载。因此我们可以使用className.method()的格式来调用静态方法、类名className.params来调用静态变量,而无需去实例化一个对象。
具体一点,比如:在做一个项目的时候,一个合格的软件工程师都会封装一个公共方法类,将经常用的公共方法放在里面,以便随时在项目中调用。同样,我们定义一个类,里面的公共方法和公共变量都可以用static来修饰,以表示这些方法都属于类本身,就不需要每一次使用一个公共方法的时候都要实例化出一个具体的对象了。项目中常用到的一些工具类,比如UserUtils的一些获取用户的信息的方法都会使用static来修饰。这样的话,我们无需new一个对象实例就可以实现某一方法的调用,是不是也节省堆空间也降低new对象时候的资源开销呢?
4 总结
总体上我觉得static关键字的使用还是在很大的程度上简化了我们的开发,其实在学习各种技术的时候,我们很多时候应该多去想想为什么会用这样的技术,使用它会给我们开发带来什么好处,没有人开发技术是为了来难为程序员自己的。

public class Main {

    public static void main(String[] args) {

        int a = 1;

        while( a < 10 ) {

            System.out.print(a);

            a++;

            System.out.print("\n");

        }

    }

}

你可能感兴趣的:(软件工程,java,servlet,jvm)