JAVA 在main方法中定义string S= "abc";那么S 是一个对象吗?

作者&投稿:函俊 (若有异议请与网页底部的电邮联系)
Java string s="abc" string a=s+"assd" 创建了几个对象~

两个对象,一个对象是s,另一个对象是a
"abc","assd"都是一个字符串常量
其中“abc”被赋值给s对象,
s对象+“assd”="abc"+“assd”,编译器在这里做了优化,"abc"+“assd”变成"abcassd”字符串常量,然后将这个常量赋值给对象a。
所以是两个对象。有问题大家提出,这是我的观点。

一共创建了两个对象,我觉得这样比较好理解:
第一个是:new String();这个对象;在堆内存中

第二个是:“abc”这个对象;(abc要这样理解,abc是String类型的,放在new出来的对象里面)

是一个对象。
这里如果只定义String
S;的话就不是一个对象了,只能说是定义了一个名为S的String类型的变量。而你所写的这个是先创建了一个"abc"对象,而S又指向该对象,因此S也是一个对象。这种创建对象的方式是String特有的,这种创建方式与new有很大的区别,好像与JAVA中JVM中的字符串池有关,要真想详细了解这方面的知识,你可以多查一下其它的资料。

两个对象,"abc"
是一个,
是常量字符串池中的对象,new了以后,又生成一个string类的普通对象,在堆中。故两个。str是引用数据类型变量,非对象,它指向new新创建的对象。


赣县19461656407: java中main方法可以声明static变量吗? -
毋陶小儿: static变量只能声明为类变量

赣县19461656407: Java中,在main方法中定义如下变量,结果报错,static float b = 10.98f;请问是什么原因??? -
毋陶小儿: static是静态变量,它只能是属于一个类的全局变量,贯穿整个类的,不能属于一个方法的,所以一定要写在所有的方法外面定义,赋值可以在方法中赋值.例如:Class Abc{ static float b; public static void main(String args[]){ b=10.98f; } }

赣县19461656407: 请问java里在main方法前面定义static方法,那不就得用:类.main()来调用吗? -
毋陶小儿: 所有static成员都是在程序装载时初始化的,被分配在一块静态存储区域.这个区域的成员一旦被分配,就不再改变地址啦.直到程序结束才释放.main()就存储在这里.尽管包含main()的类还没有被实例化,但是main()方法已经可以使用啦.而且JVM将会自动调用这个方法.通过main()的调用,再实例化其他的对象,也包括自己所在的类.这样说还需要代码么

赣县19461656407: java里,在Main函数里定义Static方法,然后调用,为什么会出错 -
毋陶小儿: Main函数本质上也是个方法,只不过是程序的运行起点而已.你不能在方法里面定义方法啊,这样会有语法错误,js这种函数式编程语言是允许的,但是java不行的.所以你只能在main函数外写好,然后再调用这个静态方法.记住一点:java方法内部不能定义方法

赣县19461656407: 在java中为什么要把main方法定义为一个static方法 -
毋陶小儿: 1、首先介绍一下static这个修饰符 在类中,变量的前面有修饰符static称为静态变量(类变量),方法的前面有修饰符static称为静态方法(类方法).静态方法和静态变量是属于某一个类,而不属于类的对象. 2、如果一个方法没有用static来修饰的话就说明这是一个成员方法,只能通过对象来调用这个方法 3、在Java程序运行时,是没有实例化任何对象的,只能通过调用类方法来运行main方法, 所以会用static来修饰

赣县19461656407: JAVA里面的main函数为什么要定义为static的? -
毋陶小儿: main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 然后才能调用 test.main(); 而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用.

赣县19461656407: java中的main的方法有几种定义方式? -
毋陶小儿: public static void main(String[]args)public 权限修饰符 static 静态修饰符 main 方法名 String[] 方法的参数类型 args argv 这些都是参数,变量名,可随意的

赣县19461656407: java main函数里为什么不能定义static -
毋陶小儿: 你的问题有歧义,main方法本来就是static的,在静态方法中的成员变量只能是静态的

赣县19461656407: 为什么java main不能使用static 定义变量 -
毋陶小儿: static (静态) 是依托于类的定义,只能是类中的属性:静态的方法、字段、程序段.main方法中不成.

赣县19461656407: java 调用某方法出现错误提示,该方法要求改成static型 -
毋陶小儿: 我估计你肯定是在类里定义了一个全局变量,然后在main方法里调用这个变量 由于main方法是static所以会出现你说的这问题.如果是这样的话很简单:你吧这个变量在main里定义就行了,然后就可以在main方法里用了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网