《JAVA 程序员面试宝典(第四版)》之JAVA程序设计基础概念(1)类型转换

  问题主题:类型转换

  书页号码:37页

题目:

讨论点:答案不是D,应该是B

理由:看下面在编译器输入的结果

知识扩展:装箱与拆箱, == 与 equals 区别

之前也老是听说什么装箱、拆箱之类的(装你妹的箱,JAVA概念就是多),之前不太留意,后来查了一下资料、所谓的装箱与拆箱主要是因为JAVA里面每一种基础类型都有相对应的对象类型,你比如基础类型 int 对应的是Integer,long 对应 Long,double 对应 Double 等等,为什么每种基础类型都有相对应的对象类型呢?我想主要是为了操作方便,既然说是对象类型,那当然里面就会有各种各样的方法供使用,比如你想在基础类型之间做相互转化你就可以先将基础类型变成对应对象类型,然后再通过这个对象类型提供的方法进行转化,如下面的例子:

那到底什么是装箱和拆箱呢,装箱就是从基础类型变成对应的对象类型后编译器会执行装箱操作,反之则是拆箱,就是这么easy。下面一篇博客是专门介绍JAVA装箱与拆箱的与大家分享一下

http://www.cnblogs.com/dolphin0520/p/3780005.html

== 与 equals 我几乎每天都在用,在此之前我也没有太在意这里面的区别,后来查了一下资料,== 会根据场合来决定到底比较的是什么,是比较值还是比较对象内存地址呢。而equals 如果你看了这个equals的实现方法,你会发现它首先比较的是对象内存地址,假如内存地址相等就立马返回,如果内存地址不相等然后就比较实体,实体相等就返回,如果实体不相等最后才比较值。关于这一块我得到的结论是如果是比较两个基础类型的对象类型时最好用equals,原因是因为会出现如下现象:

好了就写到这里了,我要一个人去吃饭了,然后去洗个头搞搞发型,回来练练声乐之类的。有说得不对的地方忘指正,谢谢了。

时间: 2024-10-05 23:20:35

《JAVA 程序员面试宝典(第四版)》之JAVA程序设计基础概念(1)类型转换的相关文章

《JAVA 程序员面试宝典(第四版)》读书笔记之前言

工作五年了一直在小的软件公司混,总感觉自己的专业知识没有太大的提升.当然了中间也换了一两家公司,面试的公司就很多家,总感觉正规的软件公司(无论大小)对于基础知识的考核都非常重视,而不管你说你之前服务过什么NB公司,做过什么样NB的项目,上来就先拿一份基础的题目来考核你看一下你的水平.一开始我是排斥的,总感觉考这些东西没有什么用,反正有的东西工作中不一定就用得到,只要自己能够做出东西来就可以了.问题来了怎么样子才算“做出东西”呢?这个问题总感觉很难从理论上来回答,就拿我这几年工作的事情来说吧,在这

《Java程序员面试宝典》学习笔记(基本语法部分)

这是我学习欧立奇<Java程序员面试宝典>第三版的笔记.这篇是基本语法部分. ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. 在Java中,字符只以一种形式存在,那就是Unicode.在JVM内部一切都由Unicode表示,而输出到外部后(JVM和OS的交界处就是各种输入/输出流)转换为其他形式的编码. Java用了中间缓存变量的机制,所以,j=j++可换成如下写法: te

《程序员面试宝典》精华 编程语言部分

<程序员面试宝典>精华 编程语言部分 正所谓取其精华,去其糟粕.本文谨记录下<程序员面试宝典>一些关键的知识点.易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录.当然这里的糟粕只是指不那么重要,或者比较简单,并不是说书写的不好.希望以后回顾时无需再看此书,只看保留在文中的精华即可. 文中有少许bug,亦摘录在此. 本文专注编程语言部分,包括第五章到第九章的内容 第五章 语言细节 5.1 y = z = 5,等号先计算右边,返回值是赋值后的左边的变量值 5.1 printf函

C#与.NET程序员面试宝典

题目虽然有点多,但是都是最常见的面试题.如果大家准备参加相关的面试,最好看看.尤其最后的几十个跨国公司面试题.现在国内很多企业都开始学习这套方式,来为难大家.有准备,就容易成功. 即使大家今年不打算找工作,也可以作为一个水平考察,看看自己到底可以应对多少. 面试题1  介绍ASP.NET 答:asp.net是建立在通用语言运行库的程序架构,通过asp.net可以开发出非常强大的Web应用程序. 面试题2  介绍ASP.NET和ASP的区别 答:1.ASP.NET支持预编译. 2.ASP.NET拥

C#与.NET程序员面试宝典 Day2

15年底,似乎陷入了困境,老婆上个月工资没发,小房的房租也没收到,我的工资也没发,全都拖着...而且元旦离职后,新的工作还没着落...上次介绍的工作机会只回复了已转人事,春节后可能有个项目会要人...总不能在家等一个月吧,问他能不能先面试,如果通过了,等一个月是可以:如果没通过,也好找工作.还没后续消息... 今天下班碰到一老一少两个女的在电梯口,说是要买4楼的同户型房,是网上看到的司法拍卖,但明天要出差,能不能到我家看一下户型... 刚开始我很犹豫,因为回小区时顺便看了下家里的灯,家里人出去了

《JAVA 程序员面试宝典(第四版)》之循环、条件、概率

    分享内容:关于集合的使用   书页号码:77页 题目:一个字符串中包含a~z中的多个字符,如有重复,如String data = "aavzcadfdsfsdhshgwasdfasdfddaaa",求出现次数最多的那个字母及次数,如有多个重复的则都求出. 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Iterator; 4 import java.util.Tre

《Java程序员面试宝典》5.2.3——中间缓存变量机制

看到第三版中5.2的例题4,一开始只是简单地接受中间缓存变量的机制,例题如下: public class Test { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) { j = j++; } System.out.println(j); } } 上述结果为0.解释如下: 1. temp=j; 2. j=j+1; 3. j=temp; 看到例题5里的题:int j = 0; j =

《Java程序员面试宝典》学习笔记(数据结构部分)

有一千万行重复的短信,以文本文件的形式保存,一行一条,有重复.如何找出重复次数最多的10条? 可以用哈希表的方法对1千万条分成若干组进行边扫描边建散列表.第一次扫描,取首字节,尾字节,中间随便两字节作为Hash Code,插入到hash table中.并记录其地址和信息长度和重复次数,1千万条信息,记录这几个信息还放得下.同Hash Code且等长就疑似相同,比较一下.相同记录只加1次进hash table,但将重复次数加1.一次扫描以后,已经记录各自的重复次数,进行第二次hash table的

《Java程序员面试宝典》读书笔记1

今天读书发现一个很有趣的问题 请问以下程序会输出什么? public   class   Test2   {  public   static   void   main(String[]   args)   {  int   j   =   0;  for   (int   i   =   0;   i   <   100;   i++)   {  j   =   j++;  }  System.out.println(j);  }  } 输出的结果是:0 刚看到的时候觉得很不可思议,我选的答