非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class test{     public void static main(String args[]){         method(); //会出错,提示你讲method方法改成静态的         method2(); //调用方法正确         new Test2().me…
转载自:https://www.2cto.com/kf/201502/375549.html 非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢? public class test{ public void static main(String args[]){ method(); //会出错,提示你讲method方法改成静态的 method2(); //调用方法正确 new Test2().method(); //正确 } public void m…
在JAVA中静态方法中只能调用其他,静态方法.main方法都是静态方法,如果想调用其它的方法,要么只能是其它的静态方法.还有一种方法就是将当前类实例化在调用它的非静态方法 public class text1{ public static void main(String [] args){ int a = 12; int b = 23; text1 aa = new text1(); aa.add(a,b); } public void add(int a,int b){ System.out…
由关键字static所定义的变量与方法,分别称为静态变量和静态方法,它们又都被称为静态成员 1.静态方法 无需本类的对象也可以调用此方法,调用形式为“类名.方法名”,静态方法常常为其他类提供一些方法而被定义.但是静态方法和非静态方法在定义时有两个需要注意的点 (1)静态方法只能访问静态数据,而非静态方法既能访问静态数据也能访问非静态数据. (2)静态方法中只能访问静态方法,而非静态方法既能访问静态方法也能访问非静态方法. 造成原因: 静态方法会随着类的定义而分配和装载进内存中,而且只被分配了一个…
Java中非静态方法是否共用同一块内存? 将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们用field表示字段,用method表示方法,那么加上static区分后就 有四种: class field:有用static修饰的fieldclass method:有用static修饰的methodinstance field:没有用static修饰的f…
将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们用field表示字段,用method表示方法,那么加上static区分后就 有四种: class field:有用static修饰的fieldclass method:有用static修饰的methodinstance field:没有用static修饰的fieldinstance method:没…
       一.堆和栈的速度性能分析 堆和栈是JVM内存模型中的2个重要组成部分,自己很早以前也总结过堆和栈的区别,基本都是从存储内容,存储空间大小,存储速度这几个方面来理解的,但是关于堆和栈的存储速度,只知道堆存储速度慢,栈存储速度快,至于为什么堆比栈的存取速度慢,并没有特别深入的研究,从网上也找了很多资料,但很多理由并不太认同,这里也列举一些,并结合自己的理解来分析,如果不正确欢迎指正. 1.从分配的角度分析 java中栈的大小和生命周期在编译期间就确定了的(可以参考之前写的一篇JVM内存…
这个要从java的内存机制去分析,首先当你New 一个对象的时候,并不是先在堆中为对象开辟内存空间,而是先将类中的静态方法(带有static修饰的静态函数)的代码加载到一个叫做方法区的地方,然后再在堆内存中创建对象.所以说静态方法会随着类的加载而被加载.当你new一个对象时,该对象存在于对内存中,this关键字一般指该对象,但是如果没有new对象,而是通过类名调用该类的静态方法也可以. 程序最终都是在内存中执行,变量只有在内存中占有一席之地时才会被访问,类的静态成员(静态变量和静态方法)属于类本…
示范类StaticTest.java public class StaticTest {     {//只有当创建对象的时候执行         System.out.println("H1");     }     static {//加载该类就执行,仅一次加载   程序执行中一直使用         System.out.println("H2");     }     StaticTest()     {         System.out.println(…
public static void main(String[] args) { // TODO Auto-generated method stub SimpleGui1B gui=new SimpleGui1B(); gui.go(); //静态方法不是不能调用非静态方法吗?? } public void go(){ JFrame frame=new JFrame(); button=new JButton("click me"); button.addActionListener…