首页 > Thinking In Java这本书对Android开发者意义如何?

Thinking In Java这本书对Android开发者意义如何?

如题,情况是这样的:
我读过Thinking In Java这本书,评价很高这就不用说了。但问题是,此书是针对运行在Sun JVM上的Java所写,那么里面的内容适合于运行在Dalvik上的Java么(也就是Android平台)?

以上是我的理解与困惑,如果有疏漏、错误的地方,还请各位大大指出。


首先我们得了解一下 Dalvik和JVM的区别

Dalvik和JVM的几点区别

  1. Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
  2. Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。
  3. Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。
  4. 不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex,ex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。
  5. 所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制。
    --引用自 这里

还有个是这样说的:
Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。
Dalvik和Java之间的另外一大区别就是运行环境——Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。
(1)虚拟机很小,使用的空间也小;
(2)Dalvik没有JIT编译器;
(3)常量池已被修改为只使用32位的索引,以简化解释器;
(4)它使用自己的字节码,而非Java字节码。
--引用自这里

不管怎么样,Dalvik 和 Sun JVM 在对 Java 的语法层次上应该没区别,区别主要还是在底层。

而 《Thinking in Java》 这本书的重点在 “Thinking”,Java 是次要的。 “思想是不怕子弹的”,这本书对你的意义不在于说教会你 写哪几行代码 ,而是教会你 怎么去写代码

当然,我这个回答并不与你的提问完全契合。It's just my nonsense.

PS: 竟然提问了那么多遍,话说 SF 也不给个限制。。。


一个问题提了4遍,很迫切么?


不管是oracle的jvm,还是安卓的dalvik,抑或art,都有统一的接口和抽象,符合同一个标准,他们都支持标准的java,所以安卓的java编程和pc,server上的java编程并无太大差异.语法和执行方式在程序员的视角是一样的.
学习android,最后还是要落实到java语言上的,只是某些类需要替换成android的类。所以Think in java对于没有java基础的android开发者是很有用的。只有最后一章讲Swing对于安卓开发无用,还有多线程的东西和计时器在安卓系统上并不是完全适用。
而且Think in Java 是一本讲解Java的经典书籍,相信多年以后也不会过时的。


安卓开发的话 需要有java的基础 还要读一些安卓方面的书(基础好的话直接看文档也可以)
因为要用到安卓系统提供的一些特性

《Think in Java》这本书呢 不推荐 因为个人觉得他是写给有c/c++基础的人看的
推荐两本 《Core Java》 和 《Head First Java》

【热门文章】
【热门文章】