java难懂的代码 java项目代码看不懂咋办

请高手讲解下面这段Java代码中System.out.println(s2 == s3); 这条语句的结果为什么是false?

这算是道难题,需要完全理解字符串的创建机制。

成都创新互联主营株洲网站建设的网络公司,主营网站建设方案,成都App定制开发,株洲h5重庆小程序开发搭建,株洲网站营销推广欢迎株洲等地区企业咨询

String s1 = new String("amit"); //这句在堆上创建了一个新的值为amit的字符串,用new创建是完全当做对象看待的。

System.out.println(s1.replace('m','r')); //此句话实际上相当于相当于在堆上创建了一个值为arit的字符串对象,然后打印到控制台。但没有让任何String引用指向它,所以短命的它将在下次垃圾回收时被回收。

System.out.println(s1); //s1依然指向着原来在堆上创建的amit字符串,所以输出amit

String s3 = "arit"; //使用双引号创建字符串与用new完全不同,他会检测在栈中的字符串存储池中是否有值为arit的字符串,如果有则指向它,如果没有,则在栈中创建它;在第一句中虽然创建了一个值为arit的字符串,但是是在堆中创建的,不可共享。所以这里在栈中新建了一个arit字符串。

String s4 = "arit"; //如上所说,在存储池中查找到一个arit字符串,即s3指向的字符串,然后指向它,此语句其实并没有创建字符串,而是和s3指向了同一个字符串。这就是传说中的字符串共享。

String s2 = s1.replace('m','r'); //由于字符串是不可变的,所以这里的s1.replace('m','r')并不是把s1修改为arit,而是在堆中创建了一个新的值为arit的字符串,注意这里是在堆中创建的,而没有在栈中的字符串存储池中寻找arit然后共享,然后让s2指向了它。

System.out.println(s2); //输出了s1.replace('m','r');语句在堆中创建的值为arit的那个字符串。

System.out.println(s2 == s3); //理解了前面就理解了这个,虽然s2的值与s3一样都为arit,但是却没有实现共享机制,因为s2不是用s2 = “arit”的形式创建的,s2创建在堆中,而s3是创建在了共享池中。二者指向不同的对象,所以用==比较为false。

System.out.println(s3 == s4);//因为s3和s4都是在共享池中创建的,所以s3和s4实际上指向了同一个对象,所以用==比较为true。

给段最简单的java代码 让我新手看一下

最简单的java代码肯定就是这个了,如下:

public class MyFirstApp

{

public static void main(String[] args)

{

System.out.print("Hello world");

}

}

“hello world”就是应该是所有学java的新手看的第一个代码了。如果是零基础的新手朋友们可以来我们的java实验班试听,有免费的试听课程帮助学习java必备基础知识,有助教老师为零基础的人提供个人学习方案,学习完成后有考评团进行专业测试,帮助测评学员是否适合继续学习java,15天内免费帮助来报名体验实验班的新手快速入门java,更好的学习java!

一段比较长java的代码,高手帮我解决几个问题

1.GroupLayout layout=new GroupLayout(c);

创建一个GroupLayout的对象,同时创建时需要以一个Container的对象作为参数

2 layout.setAutoCreateContainerGaps(true);

setAutoCreateContainerGaps(boolean)是用来设置是否应该自动创建容器与触到容器边框的组件之间的间隙,参数是一个boolean值,true代表是,false代表否。

3. GroupLayout.ParallelGroup hpg2a=layout.createParallelGroup(GroupLayout.Alignment.LEADING);

ParallelGroup 是GroupLayout的一个内部类,所以要创建他的实例必须是这样的:GroupLayout.ParallelGroup

createParallelGroup(GroupLayout.Alignment alignment)方法使用 Alignment.LEADING 的对齐方式创建并返回一个 ParallelGroup,Alignment.LEADING是GroupLayout的一个field,在这里以这个作为参数。 这句话就是一个简单的语句,不能再简单里,你看里面虽然有很多点,但其实只有一个层次就相当于 A a = b.c(o);

4. hpg2a.addComponent(cb2);

将 Component 对象作为参数添加到此 Group。就是给GroupLayout.ParallelGroup添加一个cb2组件

总结:你对api很不了解,这些东西都是在api里面可以查到的,所以你应该把api下载下来,放在自己的桌面上随时查阅,学java 的时候api文档是必不可少的工具哦,加油!


网站题目:java难懂的代码 java项目代码看不懂咋办
本文来源:http://scjbc.cn/article/hiosdh.html

其他资讯