`
鬼大来晚了
  • 浏览: 66065 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java学习笔记——操作符

    博客分类:
  • Java
阅读更多
    操作符对所有编程人员来说,都是最基本的知识。自己半路出家开始学习Java,一直没有好好看过Java的基础书籍。最近看《Thinking in Java》,发现了Java语言一些特别的地方。
1、数据类型:Java是一种面向对象编程,几乎所有的数据类型都可以用对象来概括。在存储对象的时候存贮的是对象的引用。但是,基本数据类型是特例(包括:boolean、char、byte、short、int、long、float、double),这些基本类型直接存贮的是"值",放在堆栈中,更加高效。这些基本数据类型都有对应的封装类。
2、赋值:对于基本数据类型直接将一个地方的内容复制到了另一个地方。但是,对于对象赋值时,操作的是对对象的引用,使用的时候要注意,以免产生意想不到的结果。
3、一元加号:唯一的作用将较小类型(short,byte)的操作数提升为int(自己还没用到过,之前都不知道这个运算符);
一元减号:用于转变数据的符号。
4、==和!=适用于所有的对象,但是一定注意这两个符号操作的也是对象的引用。因此,在对基本数据类型使用这两个符号的时候没有问题,对对象使用的时候会得不到预想的结果。通常,对象判断相等的时候使用.equals()方法,但是.equals()默认比较的也是引用。如果,想要在自定义的类对象中使用.equals()方法,必须重载这个方法。大多数的Java类都实现了.equals()方法,基本能够满足我们的大多数需求。
5、不可将一个非布尔值当做布尔值在逻辑表达式中使用,这是与C和C++不同的。尤其在操作数据类型的时候最容易犯错。记住:Java编译器不允许我们随便把一种类型当做另一种类型使用。另外,在应该使用String的地方使用了布尔值,布尔值会自动转换成适当的文本。
6、Java中增加了一种"无符号"右移位操作符(>>>),它使用"零扩展":无论正负,都在高位插入0。     还从来没用过呢,也不知道...
7、java语言中没有sizeof()
在C和C++中,sizeof()操作符可以告诉你为数据项分配的字节数。使用该操作符最主要的原因是为了"移植",不同的数据类型在不同的机器上可能有不同的大小,所以在进行一些与存储有关的运算时,程序员必须知道那些类型具体有多大。但是,Java不需要该操作符满足这方面的需求,因为所有数据类型在所有的机器中的大小都是相同的。

说到"移植",就得说说Java的跨平台性了。为什么说Java是跨平台的语言呢?
我们都知道想C、C++\Java这些高级语言是不能直接在机器上执行的,需要进行编译才能在机器上执行。
对于C、C++而言,这些高级语言直接被翻译成机器语言。然后,在机器上运行。这个翻译员就是编译器,对于不同的机器能够识别的语言是不同的。所以在不同的平台下需要使用不同的编译器来翻译我们的代码,这样在代码移植的时候就会很不方便。

但是,对于Java语言,我们的代码并不直接翻译成机器语言,java编译器首先将.java代码翻译成字节码byte code(.class文件),然后,再将这个字节码翻译成机器语言。第二步就是JVM帮我们做的,也就是说如果要执行字节码,平台上一定要安装jvm(jAVA virtual machine)。所以说,JVM为我们提供了一个运行Java程序的虚拟环境,我们不用考虑代码到底执行与哪个平台上,我们只要产生JVM能够识别的字节码就可以了,至于JVM实际上是如何和底层平台进行沟通的,那就是JVM的事情了。
盗了两张图:




  • 大小: 18.7 KB
  • 大小: 21.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics