zoukankan      html  css  js  c++  java
  • keypoint

    String、stringbuilder、stringbuffer区别

    String源码中的value char数组用final修饰,表明其引用的地址不可改变,另外string的substring和concat等方法,返回值都是value数组复制出来的,因为说string不可改变。

    stringbuffer可以说是可修改的string,因为其主要方法都是由synchronized修饰,因而是线程安全的。

    stringbuilder是单线程下可变的字符串对象,相较于stringbuffer线程不安全,但是效率更高。

     

    对象的深浅复制:浅复制只是单存的复制对象,对于对象内部关于其他对象的引用则不复制。深复制则是对象及其内部的引用都会复制,复制出来的对象跟原来的没有什么关联关系了。

    实现浅复制的办法是重写对象的clone方法,直接通过super.clone()方法实现。深复制的办法也可以通过重写clone方法,对对象的每个属性都进行复制,还可以通过对象的序列化把信息存放到磁盘上,然后再通过反序列化解析出,实现深复制,很明显,对于transient修饰的属性,就不会保留下来了。

     

    一个十进制的数在内存中是如何存储的:是以原码的补码形式存储的,正数的补码就是其原码,负数的补码是其反码加一,在求反码的过程中是符号位不变,其他位求反。

     

    Java支持的基本数据类型:整数型byte、short、int、long,浮点类型float、double,字符型char,布尔型boolean。

     

    自动拆装箱:就是指基本数据类型与对应的包装类型之间的一个转化,基本数据类型转包装类型叫装箱,反之则叫拆箱。

     

    Integer和int的区别及什么时候用int和Integer:int是基本数据类型,默认值是0,Integer是包装类型,是一个对象,默认值是null,在实际场景中如果需要区分0和null,就可以使用Integer。除此之外,Integer里边定义了整数的最大值和最小值。

     

    ==比较的是什么:对于基本数据类型,比较的是值,对于引用你类型,比较的是地址。

  • 相关阅读:
    Unity3d在各个平台读取Sqlite3数据库
    UI
    Could..... not preload global game manager
    Asset Store 下载的package存在什么地方?
    NDK下载地址
    UGUI富文本
    Unity播放视频
    让IIS支持无后缀名访问
    PC Android IOS资料同步更新
    PHP memcached 扩展的安装
  • 原文地址:https://www.cnblogs.com/20158424-hxlz/p/14022660.html
Copyright © 2011-2022 走看看