导航:首页 > 安装方法 > java中静态方法存在哪里

java中静态方法存在哪里

发布时间:2022-01-07 03:08:09

❶ java中static变量放在哪

static区,就是类加载就纯在的。方法区,是加载这个方法时才有的、

❷ JAVA中使用静态方法

编程时我们心里一定要清楚静态方法和类的非静态方法方法的区别:
最根本区别从编译角度来说吧:
1)静态(static)方法是编译时直接加载加载到内存中(离cpu最近的一块内存区域也称为堆栈),比如程序的public static main(args []){}方法,你能实例话吗?
静态方法不能被实例化,也不允许被实例化!
现在很多Java集成工具边写边编译的
因此 你可以通过“类名”+“.”+“静态方法的名()”来调用
2)非静态方法(类的非静态方法)通过关键字 “new” 字来实例化一个对象(object),这个对象放在 内存的另一块区域 堆(heap)中。
也就是说编译时,非静态方法必须先实例化类的一个对象,通过“对象名”+“非静态方法名()”来调用;
public class Student
{
private String name;
/************************************************************
*下面两个方法是类的非静态方法封装 属性name,看一下在 main()
*如何调用
************************************************************/
public set(string init_name)
{
this.name = init_name;
}
publc String get()
{
return this.name;
}
//构造函数
public Student(){}
public Student(String init_name)
{
this.name = init_name;
}

//下面是一个静态方法,看一下它在main()中如何调用
public static void PrintClassName()
{
System.out.print("该类的名字:Student");
}
}
//MainClass类
pubic class MainClass
{
public static void main(args[])
{
//先调用静态方法,不需要实例化对象
Student.PrintClassName();
//现在调用非静态方法,一定要实例化对象
Student stu1 = new Student();
stu1.set("Join");
String stu1_name = stu1.get();
}

}

❸ java中的方法代码存在了哪里

类的实例方法在内存中是只有一份,不过肯定不会是第一个对象中,如果是第一个对象的话,那么当第一个对象被销毁的时候,那么后面的对象就永远无法调用了...
类的实例方法存在一个专门的区叫方法区,事实上类刚装载的时候就被装载好了,不过它们在"睡眠",只是这些方法必须当有对象产生的时候才会"苏醒".(比如,一个输出类的成员变量的方法,如果连对象都没有,何来的输出成员变量).所以,方法在装载的时候就有了,但是不可用,因为它没有指象任何一个对象。

而静态的又不一样了,静态的东西存在静态区,他们和类是一个等级的,就是说只要类被装载,它们就可以直接用.(用类名来调用).他们不依赖与任何对象,所以也不能输出任何对象的成员属性.(除非成员属性也是静态的).

而你最后的一句话也是错的,"类的所有数据在内存中只有静态的才又空间".
当然不是,每个对象在new的时候都会在堆区中开辟内存,用来保存对象的属性和方法.(实际上方法保存的只是方法区的引用,如果保存的是方法本身,那么试想一下,有多少个对象就得有多少个方法,那么又和第一点中"实例方法在内存中只有一份拷贝"相矛盾了)

好了,事实上内存图很复杂和麻烦,算比较深的东西了,很多用JAVA多年的人也不太了解其原理,因为开发也不要用..

更多的问题可以去远标培训去问技术老师。

❹ java的静态方法

若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能用类的静态成员。 实例方法必须通过类的实例来使用。实例方法可以使用类的非静态成员,也可以使用类的静态成员。 类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量。
举个例子吧
public class Hibernate
{
public static int Hibernate_Object;

public Hibernate()
{
System.out.println("创建了一个对象");
}

}

public static void main(String args[])
{

Hibernate myHibarnate = new Hibernate();
Hibernate.Hibernate_Object++;

……
System.out.println("hibernate 类 一共 创建了"+Hibernate.Hibernate_Object+“个实例”);

}

❺ Java中的静态方法是什么

静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。

静态方法为类所有,可以通过对象来使用,也可以通过类来使用。

我们之前一直写的mian方法仔细看看,它就是一个静态方法,静态方法使用如下:

❻ java中 static变量和方法到底是存在内存什么区域

JVM内存总体一共分为了
4个部分(stack segment、heap segment、code segment、data segment)
当我们在程序中,申明一个局部变量的时候,此变量就存放在了 stack segment(栈)当中;
当new 一个对象的时候,此对象放在了heap segment(堆)当中;
而static 的变量或者字符串常量 则存在在 data segment(数据区)中;
那么类中方法的话,是存在在 code segment(代码区)中了。

❼ java中,静态变量存储在哪个区啊,堆还是栈啊,或者说其他地方,谢谢

首先,java里面是没有静态变量这个概念的,不信你自己在方法里面定义一个static
int
i
=0;java里只有静态成员变量。它属于类的属性。至于他放在那里?楼上说的是静态区。我不知道到底有没有这个翻译。但是
深入jvm里是是翻译为方法区的。虚拟机的体系结构:堆,方法区,本地方法栈,pc寄存器。而方法区保存的就是一个类的模板,堆是放类的实例的。栈是一般来用来函数计算的。随便找本计算机底层的书都知道了。栈里的数据,函数执行完就不会存储了。这就是为什么局部变量每一次都是一样的。就算给他加一后,下次执行函数的时候还是原来的样子。

❽ java 静态方法很多,静态方法是存储在哪个代里

我问题是这样的: 问题补充:我的问题是既然,manager是单例的,那写成静态方法的调用又有何不可,从内存的角度分析看?java的gc角度看?能不能详细说一下 问题补充:suziwen 写道DAO,MANAGER写成静态的是实现 单例,那样才更省内存。。。我的问题是既然,manager是单例的,那写成静态方法的调用又有何不可,从内存的角度分析看?java的gc角度看?能不能详细说一下 问题补充:yqin 写道从JVM内存管理的角度谈谈静态方法和静态属性 我直接用静态方法得了。

❾ JAVA静态方法 会存储在硬盘还是内存,静态变量的初始销毁时间在什么时候

你们麻烦说清楚点,不要误人

java的static方法变量,在程序运行前,保存在文件中(硬盘),以class文件中中间码存在,在编译时确定内存地址
程序运行时,就将地址映射到内存,等于就进入内存。
DLL原理你看看

❿ JAVA的静态成员静态方法存储在哪儿

T.i,但是静态变量得有初始值,否则会报错吧,我记得是,静态变量可以类名打点直接调用

阅读全文

与java中静态方法存在哪里相关的资料

热点内容
提高英语有什么方法 浏览:883
墨汁使用方法 浏览:317
具体训练方法有哪几种 浏览:477
六顶帽子思维训练方法 浏览:739
盆底肌锻炼方法图 浏览:862
qq飞车紫焰铠甲快速获得方法 浏览:926
徒手体操教学方法 浏览:641
三个表左右连接关联查询方法 浏览:690
如何瘦大腿的快速方法12岁 浏览:697
卵巢检查方法图片 浏览:953
正压空气呼吸器使用方法 浏览:806
打火机的好坏鉴别方法 浏览:378
金樱子泡酒食用方法 浏览:216
如何提高英语五种方法英语作文 浏览:550
香精鉴别酒精的方法 浏览:708
黑色阳极化加热掉漆解决方法 浏览:436
台式风扇功率因数测量方法 浏览:372
期货日内短线最简单方法分时图 浏览:628
快速治湿尤的方法 浏览:433
如何制作花灯笼的方法 浏览:626