关闭

TIJ 复习笔记3

272人阅读 评论(0) 收藏 举报
分类:

TIJ3

在最底层,java中的数据是通过使用操作符来操作的。

java中的操作符,和C++中差不多。一个表达式可能有多个操作符,操作符连接操作数,按照优先级进行计算,一般是先乘除后加减,有括号先算括号。

操作符分类:

  • 算术操作符
  • 逻辑和关系操作符
  • 位操作符
  • 混合赋值
  • 类型转换

几乎所有的操作符只能作用于,基本类型,结合基本类型来看一下这些操作符。

算术操作符

操作符包括,+、-、*、/、%、、++、–、= 、一元(-)、一元(+)

符号 算术
int 都可以
short/byte/short 运算结果会自动提升
long 都可以
float/double 都可以(可以%、++、–
boolean 不可以

关系和逻辑

> 、<、>=、<=、==、!=、&&、||、!

符号 关系与逻辑
int 不可以逻辑运算
short/byte/short 不可以逻辑运算
long 不可以逻辑运算
float/double 不可以逻辑运算
boolean 不可以比较大小

位操作符

| 、&、~、^、>>、<<、<<<、>>>(无符号右移,负数的时候补0)

符号 位操作
int 都可以
short/byte/short 都可以,会提升类型,需要cast回来
long 都可以
float/double 不可以
boolean 不可以

混合赋值

+=、-=、*=、/=、%=、>>=、<<=、>>>=、<<<=

符号 混合
int 都可以
short/byte/short 都可以
long 都可以
float/double 不可以位运算相关
boolean 不可以

类型转换

转换成其他类型

符号 转换
int 不能转成bool
short/byte/short 不能转成bool
long 不能转成bool
float/double 不能转成bool
boolean 不能转换

综上

  • boolean基本只能做逻辑运算;其他符号不能直接做逻辑运算。
  • 所有算术运算、位运算(除了++、–)都会引起类型提升,混合赋值不会引起类型提升。
  • float/double可以%运算,不可以位运算
  • 类型转换,除了boolean,都可以互相转换。widenning conversion和 narrow conversion,窄化转换会有丢失信息的风险。

其他要点:

  • 对象可以进行 ==、!=的运算,但是会直接比较引用,建议采用equals,但是需要将它实现。

  • 关于String进行比较的例子 http://www.cnblogs.com/tinyphp/p/3768214.html

  • double/float转换成int/long类型是,会直接截尾,Math.round可以四舍五入。

0
0
查看评论

TIJ 复习笔记5

清理与初始化写在前面,tij中到处都是作者罗嗦的思考,大部分时候正如我所想。犹如剧情曲折离奇的小说,故事充满着伏笔。本章主要内容如下: 构造器及成员初始化 数组初始化 终结和垃圾回收 枚举 this 重载 构造器及成员初始化 构造器和C++中类似,和类名一致,无返回值。 构造器保证对象的初始化。 类...
  • xshalk
  • xshalk
  • 2016-06-12 19:28
  • 215

TIJ 复习笔记2

TIJ 复习笔记2如果我们说另一种不同的语言,那么我们就会发觉一个有些不同的世界 -- Luduing Wittgerstein 本章主要介绍JAVA的基本组成部分,并且体会到java中计划一切都是对象。对象及其他元素的存储java中虽然到处都是对象,但是操纵对象的标识符,被称为引用(referen...
  • xshalk
  • xshalk
  • 2016-05-28 15:45
  • 235

TIJ 复习笔记8

在面向对象的程序设计语言中,多态是继数据抽象(encapsulation)和继承(inherit)之后的第三种基本特征。多态 多态的优点和缺陷 构造器与多态 协变返回类型 向上转型与向下转型 其他 多态一个典型的多态,就是B、C 继承A ,并覆盖了其中的方法foo,有一段代码包含类型A,把B和C的引...
  • xshalk
  • xshalk
  • 2016-06-27 19:08
  • 150

TIJ 复习笔记4

就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并作出选择。 java和C使用的控制流程语句一样,主要包括if-else、while、do…while、for、return、break、continue、switch(不含goto)if…elseint i ; if(Boolean-expr...
  • xshalk
  • xshalk
  • 2016-06-01 11:38
  • 224

TIJ 复习笔记6

访问控制与“最初的实现并不恰当”有关包 类的访问权限 方法和成员的访问权限 包结构 一个文件如HelloWorld.java被称为一个编译单元。 包内必须有一个 HelloWorld的类,是public的类,其他类对外不可访问。 package hello;将许多文件从属同一个群组;目录结构应该放在...
  • xshalk
  • xshalk
  • 2016-06-14 20:50
  • 246

TIJ 复习笔记7

复用代码是Java众多引人注目的功能之一。 组合与继承是两种代码重用的机制。本章概览: 组合、继承、代理(java中没有delegation) 组合继承一起用 什么时候用组合、什么时候用继承 介绍@Override 介绍向上转型 介绍protect final关键字 补充又一次说初始化及类的加载(加...
  • xshalk
  • xshalk
  • 2016-06-24 14:39
  • 184

TIJ 复习笔记1

TIJ 复习笔记 第一章主要介绍编程方法和OOP的一些基本概念,主要围绕着对象来讲。正如书中所说,本章节完全不涉及代码,如果没有接触过相关的概念,建议学习一下;急于求成可以跳过本章,但是你又会回过头来,复习这些知识。仔细梳理一下,不算多的概念,让思路更清晰。 抽象 接口 封装 组合 继承 多态 单根...
  • xshalk
  • xshalk
  • 2016-05-24 15:15
  • 254

TIJ 复习笔记9

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。抽象类和抽象方法 接口 适配器模式(完全解耦) 多重继承 扩展接口(继承) 接口中的域 接口嵌套 工厂模式 接口与抽象类的区别 抽象类包含抽象方法的类,就是抽象类,抽象类不可以产生实例,但是不能继承。抽象类往往作为一个基类,用于扩展和...
  • xshalk
  • xshalk
  • 2016-07-15 15:45
  • 202

spring 复习笔记

Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用1. 核心容器: 核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。Bean 模块提供 BeanFactory,它是一个工厂模式的复杂实现。上下文模...
  • zhugeyangyang1994
  • zhugeyangyang1994
  • 2017-01-11 18:00
  • 552

Java复习笔记—面向对象

面向对象 特点:1:将复杂的事情简单化。 2:面向对象将程序员从执行者,变成了指挥者。 3:面向对象这种思想是符合现在人们思考习惯的一种思想。   面向对象的过程:其实就是不断创造对象,适用对象,指挥对象做事情 面向对象的设计过程:就是管理和维护对象之间的关系 2、类与对象的...
  • gk1023
  • gk1023
  • 2015-10-05 20:35
  • 410
    个人资料
    • 访问:190587次
    • 积分:2913
    • 等级:
    • 排名:第14350名
    • 原创:97篇
    • 转载:14篇
    • 译文:4篇
    • 评论:39条
    前言

    技术创造美好生活,别忘了生活

    文章分类
    最新评论