有一种学得快的方法,就是不要一次学太多。
JDK 是如何判断两个对象是否相同的呢?判断的流程是什么?
参考解答:
JDK 会先判断两个对象的hashCode是否相同,如果hashCode不同,则说明肯定是两个不同的对象了;如果hashCode相同再通过equals()方法进行进一步比较,如果equals方法返回true,则说明两个对象是相同的,如果equals方法返回false说明两个对象不同。
有一种学得快的方法,就是不要一次学太多。
JDK 是如何判断两个对象是否相同的呢?判断的流程是什么?
参考解答:
JDK 会先判断两个对象的hashCode是否相同,如果hashCode不同,则说明肯定是两个不同的对象了;如果hashCode相同再通过equals()方法进行进一步比较,如果equals方法返回true,则说明两个对象是相同的,如果equals方法返回false说明两个对象不同。
有一种学得快的方法,就是不要一次学太多。
有三点:
1)String 在底层是用一个 private final 修饰的字符数组 value 来存储字符串的。final 修饰符保证了 value 这个引用变量是不可变的,private 修饰符则保证了 value 是类私有的,不能通过对象实例去访问和更改 value 数组里存放的字符。
注:有很多地方说 String 不可变是 final 起的作用,其实不严谨。因为即使我不用 final 修改 value ,但初始化完成后我能保证以后都不更改 value 这个引用变量和 value[] 数组里存放的值,它也是从没变化过的。final 只是保证了 value 这个引用变量是不能更改的,但不能保证 value[] 数组里存放的字符是不能更改的。如果把 private 改为 public 修饰,String类的对象是可以通过访问 value 去更改 value[] 数组里存放的字符的,这时 String 就不再是不可变的了。所以不如说 private 起的作用更大一些。后面我们会通过
代码1处
去验证。
2)String 类并没有对外暴露可以修改 value[] 数组内容的方法,并且 String 类内部对字符串的操作和改变都是通过新建一个 String 对象去完成的,操作完返回的是新的 String 对象,并没有改变原来对象的 value[] 数组。
注:String 类如果对外暴露可以更改 value[] 数组的方法,如 setter 方法,也是不能保证 String 是不可变的。后面我们会通过
代码2处
去验证。
3)String 类是用 final 修饰的,保证了 String 类是不能通过子类继承去破坏或更改它的不可变性的。
注:如果 String 类不是用 final 修饰的,也就是 String 类是可以被子类继承的,那子类就可以改变父类原有的方法或属性。后面我们会通过
代码3处
去验证。
以上三个条件同时满足,才让 String 类成了不可变类,才让 String 类具有了一旦实例化就不能改变它的内容的属性。
用 npm install
安装 fsevent 插件, 发现如下图提示:
搜索了一圈发现原来是 fsevents 目前还没支持 node v11+,笔者用的是 brew install node
下载的 node,默认下载的是最新的版本,用 node -v
命令查看 node 的版本呢,笔者的 node 是 v11.6.0。
有些坑别人踩过了,希望你不用再踩一遍。
dryrun 的作者使用的是 Mac,本文主要介绍 dryrun 在 windows 上配置使用的方法以及容易导致配置不成功的关键点,为想在 windows 上也能使用 dryrun 的 Android 开发者提供参考。
有的人是因为看到才会相信,有的人是因为相信才会看到。
这是笔者最喜欢的一张图片了,作为一个沉稳严谨的工程师,每当笔者看到这个图片时,都不免心潮澎湃一下。
而今,全世界都在憧憬万物互联,在谈论IOT,未来会是什么样?什么时候来?
也许在互联网的世界里,未来很快就有可能到来,也许来了也会是和我们想象的形态不一样。但有一点我们可以坚信,物联网是趋势,而且肯定会来。
如果你对 Android Things 已经有一定了解,可以直接参阅笔者翻译的一本电子书:Android Things 官方开发文档(中文版),跳过下面介绍的阅读,或者直接跳到第二部分看麻省理工流体界面实验室研发出来的 Reality Editor.
设计模式也好,架构也好,都是为需求服务的;好的程序遵循的是设计原则,而不是设计模式。
本文主要分享对面向对象程序设计的设计原则的理解,以供想了解 OOD 设计原则的人士作参考。
主要内容包括:对设计原则和设计模式概念的理解,对 OOD 设计原则的理解,对继承和多态的理解。
有一种了解一个事物的方法,那就是了解它的发展历史。
本文将持续更新记录 Android 的发展简史,以供喜欢 Android 和想了解 Android 的爱好者作参考。
Android 自 2008 年正式发布至今(2018),已经走过了十个年头了。像一个小孩的长大一样,十年,对于一生来说,说长不长,仿佛不知不觉就长大了,说短也不短,至少我们不少人都错过了见证 Android 的成长历程,笔者也是 2015 年才开始对 Android 感兴趣并开始了解 Android 的。
路是人走出来的,但有些路,希望你不用再摸索着走一遍。
本文将持续更新记录使用 hexo 框架 NexT 主题搭建博客过程中遇到并解决的坑。以供使用此方式搭建博客的人作参考之用,避免再重复踩坑。