Java 是一种强类型语言,所以,Java 定义了基本数据类型。同时, Java 和其它高级计算机语言同样,有多种运算符,这在咱们编程过程当中极为有用。java
先从运算符谈起。编程
顾名思义,运算符解决的是多个对象之间的运算问题。 Java 的运算符分为:数组
算术运算符安全
关系运算符数据结构
逻辑运算符ide
对于运算符的使用,这里再也不赘述,只把恼人的运算优先级再次列出(从上到下优先级递减)。ui
运算符 | 结合性 |
---|---|
[] . ()(方法调用) | 从左往右 |
! ~ ++ +(一元) -(一元) (强制类型转换) new | 从右往左 |
* / % | 从左往右 |
+ - | 从左往右 |
<< >> >>> | 从左往右 |
< <= > >= instanceof | 从左往右 |
== != | 从左往右 |
& | 从左往右 |
^ | 从左往右 |
位或 | 从左往右 |
&& | 从左往右 |
逻辑或 | 从左往右 |
?: | 从右往左 |
= += -= *= /= %= &= ^= <<= >>= >>>= | 从右往左 |
P.S. 结合性指定是:运算符优先级相同的时候,从左边或右边开始运算。编码
这里,我主要想强调的是 Java 的 8 种基本数据类型以及一些经常使用的类类型。线程
Java 的基本数据类型同其它高级程序语言比较相似。code
有 4 种表示整数的数据类型:
byte
short
int
long
2 种表示浮点数的数据类型:
float
double
1 种表示字符的数据类型:
char
1 种表示布尔值的数据类型:
boolean
这些数据类型的使用一样再也不赘述。不过,每一个基本数据类型都有一个对应的包装类型:
基本数据类型 | 包装数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
包装类型能够进行一个基本数据类型进行封装、获取基本数据类型的最大/最小值以及把字符串转换成一些基本数据类型等一系列操做。在实际开发过程当中,比较好用。
除了一些基本数据类型, Java 提供的一些类类型,使用频率也很高。这里把它们拿出来总结一下。
广义上, Java 的字符串就是 Unicode 字符序列(关于 Unicode ,能够参见字符集与字符编码里的说明)。
在 Java 中,字符串是不可变的,即:一个字符串被建立出来后,这一块内存空间里的值是不会被更改。咱们对于字符串的经常使用操做方法有:
判断字符串是否相等str.equals(str1)
截取字符串str.subString(beginIndex, endIndex)
拼接字符串str + str1
判断空串str == ""
判断null串str == null
若是咱们想要构造字符串,经常使用的构造器 (Builder) 有: StringBuffer 和 StringBuilder。它们之间的简单区别是: StringBuilder 是线程安全的, StringBuffer 不是。
咱们想要拼接字符串,三者的速度上: StringBuffer > StringBuilder > String。
在 Java 的java.math
包下,有两个类用来表示大数,它们分别是:
BigInteger
BigDecimal
这两个类,均可以对超出基本数据类型表示范围的数进行构造。另外,它们的构造方法都须要传进来一个字符串。
对于 BigInteger 而言,能够进行 add, substract, multiply, divide 等操做;对于 BigDecimal,一样能够进行上述操做,不过最好给定一个 MathContext 保留有效数字。
准确地讲,数组不是一种类型,而是一种数据结构。可是数组是不少其它 Java 类(如 String、 ArrayList )的基础,因此也拿出来讲明。
在 Java 里,数组是一种用来存储相同数据类型对象的数据结构。 对 Java 数组,咱们应该知道的是:
数组被分配出来后,长度不可变
只有有length
属性,没有length()
方法
可以使用for-each
遍历
多维数组本质上是数组的数组