问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于Java程序的基础问题

发布网友 发布时间:2022-04-28 15:53

我来回答

5个回答

热心网友 时间:2022-06-19 13:48

第一个问题 创建了 4个对象 不写new String 也创建对象是因为 赋值时对象会自动创建
类和方法 解释如下
类是比较抽象的东西 是一类具有共性的东西 然后抽象出他们的公共点 形成一类
比如 人类 为何称之为类 因为他是定义了一些只有人才具有的共性 然后抽离出来 形成了类 但是 这都是我们抽象出来的一个概念
方法 我们也叫做事物的动态特征 我们将 比如 叫 跑 走 睡 这些都看做一些功能性的方法 一个人能走路 是因为他具有如何走的方法
下面代码中 类:Test(类名) 方法: public int addition() {return n1 + n2;}
这里的方法 就代表一种 具有相加功能的方法
希望能帮到你 谢谢

热心网友 时间:2022-06-19 13:48

您好,提问者:

String s1 = “aaa”;
String s2 = “aaa”;
System.out.println(s1==s2);//true就是一个对象呗
//引号是英文的哈,这上面其实只创建了一个对象,而s2的值直接引用s1,而不是直接创建对象

String s3 = new String(“aaa”);
String s4 = new String(“AAA”);
System.out.println(s1==s2);//肯定是false咯
//这个就不用说了,没new一次,肯定是创建了一个新的对象

System.out.println(s1.equals(s3));
//这句话的意思是对比两个对象里面的内容值是否相等,Java区分大小写。

//先说类:
    Java中的一切东西都是在类中定义的,比如:变量、常量、方法等。
//我创建了一个Person类
class Person{
    String name = "xxx"; //这个是变量,也可以称之为类的属性
    public void add(){
        //这个是就是方法
    }
}

追问那最终的答案是创建了几个String对象?
还有,我记得在网上看到的equals好像也创建对象的,是吗?

追答不是,equals是比较。
一共创建了三个对象

热心网友 时间:2022-06-19 13:49

String s1 = “aaa”;
已经创建一个
String s2 = “aaa”;
2个了
String s3 = new String(“aaa”);
三个了
String s4 = new String(“AAA”);
四个了
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1.equals(s3));
String不是基本数据类型,是引用类型。创建的变量都是引用。
public class Test {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int a = sc.nextInt();
}
public int addition() {

return n1 + n2;
}
}
Test是类,也就是能够代表一种类型的一个抽象,这个抽象里面的东西是一类东西的共同特征神马的,比如一个类Animal,你就可以有属性,方法。属性,就是这个类的东西拥有的一种特征,比如Animal类,每个动物都有体积,身高不是?那这两个就可以作为属性,也就是成员变量。至于方法,就是能够完成一定的功能,去做一件事情。比如所有的动物都得吃东西,你就可以定义一个方法void eat(){

}就是一个方法。你的例子中addition就是一个方法它实现的是得到两个数的和。追问我在CNDS论坛看到的,好像说s1已经创建了一个String对象,s2不再创建而是直接调用的吗?而你写得是s1创建了一个,s2又创建了一个?

追答我知道这个意思了,因为String类型的变量是创建后存放在堆内存中的,s1的字符串aaa已经存放在了字符串池中,s2创建后,为避免过度占用内存,会现在池中寻找aaa,找到了的话,那就不需要再继续创建新的引用地址了,所以可以说是s2和s1一样,使用同一个对象,最终是生成了三个对象。没错。而s3 s4都是在堆中重新开辟空间生成新的对象。 你在不确定的时候,可以这样测试,看看s1==s2返回的是什么,s3 s4 用equals看看是不是true或false。

热心网友 时间:2022-06-19 13:49

3个String对象, 输出依次为true, false, true

追问3个,分别是哪三个?不是new一个对象产生2个String对象吗?
能再解释一下分别是哪三个吗?

追答写错了... 纠正一下, 是4个
JVM有一个字符串池, 里面存放各种字符串对象, 并且可以共享使用, 所以字符串对象指的就是字符串池里的各种字符串对象
String s1 = “aaa”;---->字符串池新建一个String对象"aaa", 并且s1引用了这个String对象(1个对象)
String s2 = “aaa”;---->字符串池里已有String对象"aaa", 所以s2直接引用"aaa"(1个对象)
String s3 = new String(“aaa”);---->使用了new String()构造方法, 在字符串池里又新建了另一个String对象"aaa", 并且s3引用另一个新的"aaa"(2个对象)
String s4 = new String(“AAA”);---->"AAA"在字符串池里没有, 所以新建String对象"AAA", 又因为new String()同理又新建另一个"AAA", 这一步新建了两个String对象(2+2=4个对象)

附上参考链接:http://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html

热心网友 时间:2022-06-19 13:50

Test就是你创建的为类 addition为方法 在你的类中有main()函数,这个函数为整个程序执行的入口。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 自学java遇到的基础问题!!! 关于Java的基础问题 登陆QQ企点显示当前版本过低,请先升级到QQ最新版本是什么意思? 雄性激素和雌性激素分别是男性和女性特有的吗? 男人身体里的雌性激素有什么作用 男性体内的雌性激素由什么分泌?女性体内的雄性激素由什么分泌? 男女体内都有雌性和雄性激素吗?分别是哪个部位分泌的? 男人体内有雌性激素吗?女人体内有雄性激素吗? 男人会分泌雌激素吗? 有谁知道男人体内有雌性激素吗 男性身上有没有雌性激素,请给出依据 男人生理有雌性激素吗 男生有雌性激素吗?会有影响吗? 男人体内有雌性激素吗,女人体内有雄性激素吗 男人也会有雌激素吗?它有什么作用? 男性体内有雌性激素吗 男性也有雌性激素吗??什么用? 男性体内有雌激素吗 男人会产生雌性激素吗? 男性体内也有雌激素么 java基础问题? JAVA基本问题 JAVA最最基础的问题 Java基础题? 求解Java基础选择题。 Java基础问题(追加80分) JAVA基础问题,到底是值传递还是引用传递? java数组基础问题? 四道Java基础题,你能做对几道? 怎么退订农行ETC 星巴克的咖啡粉(拿铁)要怎么弄最好吃 一个男人心里有你时会有哪些表现? 男人心里有没有你的表现 一个男生对你有好感的表现是什么? 和男人交往,如果他“心中有你”,哪4个表现就注定了? 男生心里有人的表现? 两性交往中,一个男人的心里有你都有哪些表现呢? 一个男人心里有这个女人,会有什么样的表现呢? 男生特别在乎一个人,都会有哪些表现? 男人心里你,这几个表现是藏不住的