资讯专栏INFORMATION COLUMN

【牛客网】-- 日日刷(第一天)

loonggg / 3245人阅读

摘要:应用程序源程序文件编译后的字节码文件的扩展名是个人见解源文件在经过虚拟机的编译后会生成文件被叫做字节码文件。而该文件正是可以被叫做跨平台的原因通过移动该字节码文件到不同的操作系统上再通过将字节码文件翻译成机器语言从而运行应用程序。

1、Java Application(Java 应用程序)源程序文件编译后的字节码文件的扩展名是( B )
    A java    B class     C exe     D jar

个人见解:

  Java源文件在经过JVM(Java Virtual Machine)Java虚拟机的编译后会生成.class文件,被叫做字节码文件。而该文件正是Java可以被叫做跨平台的原因,通过移动该字节码文件到不同的操作系统上再通过JVM将字节码文件翻译成机器语言, 从而运行Java应用程序。
  java是java语言的源代码文件的扩展名;
  exe是windows操作系统的可执行文件的扩展名;
  jar是(Java Archive File) Java压缩文件 可以使用压缩文件直接打开, 与压缩文件不同的是再jar文件中存在一个文件META-INF/MANIFEST.MF 该文件是用于存储包和扩展的配置数据。

2、不考虑反射,String类型变量所指向内存空间中的内容是不能被改变的。(√ )

个人见解:
  String类型的变量在常量池中存储,虽然不可以改变常量池中的内容,但是可以改变String类型变量的引用地址,原常量池中的内容仍然存在,等待着地址指向它。
  

        String s1 = "ABC";
        String s2 = "ABC";
        System.out.println(s1 == s2);                        //true
        System.out.println(System.identityHashCode(s1));     //689401025
        System.out.println(System.identityHashCode(s2));     //689401025

        String s3 = "ABC";
        String s4 = new String("ABC");
        System.out.println(s3 == s4);                        //false
        System.out.println(System.identityHashCode(s3));     //689401025
        System.out.println(System.identityHashCode(s4));     //790067787

        String s5 = new String("ABC");
        String s6 = new String("ABC");
        System.out.println(s5 == s6);                       //false
        System.out.println(System.identityHashCode(s5));    //1115201599
        System.out.println(System.identityHashCode(s6));    //343856911

  不使用new的方式去创建字符串是从字符串常量池中取出,使用new的方式创建字符串是存在与堆(heap)中。

3、下面程序的运行结果是
        String str1 = "hello";
        String str2 = "he" + new String("llo");
        System.err.println(str1 == str2);

  运行结果:false

个人见解:
  str1 == str2 之所以返回false 是由于不通过new的方式创建String对象是在编译期就能确定其内存地址,然而通过new的方式来创建对象时是在运行时才会分配内存地址。因此程序无法确定str2的内容,因此无法判断相等,而此时就需要通过equals方法来进一步确认是否相等了。
  上述内容只是在时间上来判断,编译期和运行期,而从对象存放的位置也可以判断出对象不相等,不通过new的方式来创建字符串时存放的空间是字符串常量池,而通过使用new的方式创建字符串是存在与堆(heap)中,这就与第二题牵扯到的内容等同了。

另:

String s1 = "hell" + "o";  //创建了3个对象 hell 、o 、hello

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74899.html

相关文章

  • 客网】-- 日日(第二天)

    摘要:以字符串形式返回指定的请求头的值。返回一个数组,包含客户端发送该请求的所有的对象。生命的河流就这样,不舍昼夜,奔向它理想的海洋。 昨天加班 日日刷废了,这是个很不好的习惯补上昨日份的 ========================================================================= 1、下面哪个不是Java语言的关键字(B) A def...

    warkiz 评论0 收藏0
  • 客网】-- 日日(第五天)

    还剩11天 ========================================================================= 1、抽象类方法的访问权限默认都是public。(√) 在Java1.8以前,抽象类方法默认的访问权限为protected在Java1.8以后,抽象类方法默认的访问权限为default ============================...

    ARGUS 评论0 收藏0
  • 客网】-- 日日(第四天)

    摘要:断更了,家里出了一点事情,回家了几天,然后回头看发现握草,断了天,因此,每天补一个吧下列符号中可以在程序里表示单行注释的是个人见解选项目前我只在语法中使用过,代表注释的意思选项是多行注释选项是单行注释选项是文档注释在方法中给出的整型数组 断更了,家里出了一点事情,回家了几天,然后回头看发现握草,断了12天,因此,每天补一个吧 ==============================...

    sunsmell 评论0 收藏0
  • 客网】-- 日日(第三天)

    摘要:的底层结构是一个数组,数组中的每一项是一条链表。的实例有两个参数在影响其性能初始容量和装填因子。不同步线程不安全。继承实现继承实现。中数组默认大小是,增加的方式是。内部使用保存数据,即将的数据作为的值保存,这也是中元素不能重复的原因。 自制力不行,需改正,为什么昨天断了,以后这样的事情是否还会发生 ============================================...

    Cciradih 评论0 收藏0
  • 【Java】广州三本秋招经历

    摘要:具体的时间线从月中旬,我开始关注牛客网的秋招内推信息。直至十月中下旬结束秋招。之前也写过自己在广州找实习的经历,那次把面试的过程都具体贴出来了。我今年就完美错过了春招实习经历。 前言 只有光头才能变强 离上次发文章已经快两个月时间了,最近一直忙着秋招的事。今天是2018年10月22日,对于互联网行业来说,秋招就基本结束了。我这边的流程也走完了(不再笔试/面试了),所以来写写我的秋招经历...

    qqlcbb 评论0 收藏1

发表评论

0条评论

最新活动
阅读需要支付1元查看
<