第二章 基本数据类型(新)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2.1 表达式与运算符
只有一个运算对象的运算符称为一元运算符。例如++x
是一个一元运算符,它是对运算对象x自增加1。 ++x,--x: 使用X之前,先使X的值加1(或减1); X++,X--:使用X之后,再使X的值加1(或减1) 设X=5 则 Y=++X Y的值为6; Y=X++ Y的值为5,而X为6。
|
^ ~
x|y
x^y ~x
将x,y按位或操作
将x,y按位异或操作 将x各比特位按位取反
11011111
10001111 00101001
异或
位反
右移运算符“>>”将一个数的二进制位序列右移若干 位,移出右端的低位被舍弃,最高位则移入原来高 位的值。 例如: a=00110111,则 a>>2 = 00001101 b=11010011,则 b>>2 = 11110100 左移运算符“<<”将一个数的二进制位序列左移若干 位,高位左移后溢出舍弃,不起作用。
2.4.5 数组的初始化
创建数组后,系统会给每个数组元素一个默认的值,
如,float型是0.0。
在声明数组时同时也可以给数组的元素一个初始值,
如:
float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};
也可以直接用若干个一维数组初始化一个二维数组。
第二章 基本数据类型
Java的基本数据类型
【例2-1】计算二个整数的和:
class Example2_1 { public static void main(String args[]) { int x,y,sum ; //变量声明 x=3; y=5; sum =x+y ; //求和 System.out.println("二数之和为:" + sum) ; } } 在Java中,使用变量要遵守“先声明后使用”的原则。
类型转换
基本数据类型按精度从“低”到“高”的顺序为: byte short int long float double
自动转换
强制转换
发生在相容数据类型 需要满足两个条件: 之间(即精度由高到低) 。 1、类型相容; 2、目标数据类型比原数 语法形式: 据类型分配的内存空间大 (目标类型)值 (即由低到高)。
2.4.1 创建和使用数组
构成二维数组的一维数组不必有相同的长度,在创建
二维数组时可以分别制定构成该二维数组的一维数组 的长度。如: int a[][]=new int[3][ ]; a[0]=new int[6]; a[1]=new int[12]; a[2]=new int[8]; Java允许使用int型变量的值制定数组元素的个数。如: int size=30; double num[ ]=new double[size];
如:
int a[][]={{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1}}
2.4.6 数组的引用
数组属于引用型变量,因此两个相同类型的数组如果
具有相同的引用,它们就有完全相同的元素。例如, 对于 int a[]={1,2,3},b[ ]={4,5}; 如果使用了下列赋值语句(a和b的类型必须相同): a=b; 那么a中存放的引用和b的相同。 例2-4
3、数组元素的使用
数组可以通过下标访问自己的元素: int a[ ]=new int[10]; for(int i=0;i<a.length;i++) { a[i]=i; System.out.print(a[i]+""); }
2.4.2 多维数组的应用
在Java中,多维数组(multidimensional arrays)是由若 干行和若干列组成数组。在人们工作生活与学习中, 要使用二维表格、矩阵、行列式等,都可以表示成 多维数组。例如: int D[ ][ ] = new int[3][4];
public static double[] copyOf(double[] original,int newLength) public static double[] copyOfRange(double[] original,int from,int to)
例2-6
2.4.9 排序与二分查找
2.4.4 length的使用
一数组的元素的个数称作数组的长度。对于一维数
组,“数组名字.length”的值就是数组中元素的个数。 对于二维数组“数组名字 .length” 的值是它含有的一 维数组的个数。 对于 float a[] = new float[12]; a.length的值12 对于 int b[][] = new int[3][6]; b.length的值是3
从命令行输入与输出
输入基本型数据
Scanner 类
Scanner reader=new Scanner(System.in); Scanner类的方法:nextBoolean()、nextByte()、nextShort()、 nextInt()、nextLong()、nextFloat()、nextDouble() 实例 Example2_3.java
2.5 向量
1、向量(Vector) 向量(Vector)是Java.util包(java.util包是专门保存各种 常用工具类的类库)提供的一个工具类。它有类似 数组的顺序存储的数据结构,但是具有比数组更强 大的功能。
2、创建向量对象
Vector类有三个构造函数: (1) Vector(): 构造一个空向量。 (2) Vector(int i): 用指定的初始化容量构造一个空 向量。 (3) Vector(int i, int j): 用指定的初始化容量i和容 量增量j构造一个空向量。 下面的语句就利用构造函数创建了一个向量序 列: Vector v1 = new Vector(100,10);
2.4.5 数组的初始化
创建数组后,系统会给每个数组元素一个默认的值,如,
float型是0.0。
在声明数组时同时也可以给数组的元素一个初始值,如:
float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};
也可以直接用若干个一维数组初始化一个二维数组。
Array类调用
public static void sort(double a[])
方法可以把参数 a指定的double类型数组按升序排序。
Array类调用
public static void sort(double a[],int start,int end)
方法可以把参数 a 指定的 double 类型数组中索引 star 至 end-1的元素的值按升序排序。
向量的常用方法
方 法 说 明
addElement(Object obj)
capacity() copyInto(Object
在向量尾部添加指定组件,并 且长度加一。 返回该向量的当前容量。
anArray[]) 把该向量的元素复制到指定数 组中。 elementAt(int index) 返回指定下标处的组件。 firstElement() 返回该向量的第一个元素。 lastElement() 返回向量的最后一个元素。
输出基本型数据
System.out.println()
System.out.print()
System.out.printf() 从JDK1.5开始新增的
2.4 数组
数组是一组相同类型变量的集合,可以使用共同的 名字引用它。
2.4.1 创建和使用数组
1、声明数组 (1)声明一维数组的格式: 数组元素的类型[ ] 数组的名字; 数组元素的类型 数组名字[ ]; (2)声明二维数组的格式: 数组元素的类型[ ][ ] 数组的名字; 数组元素类型 数组名[ ][ ];
我们可以将运算符分成以下几类: 算术运算符; 关系和条件运算符; 移位和逻辑运算符; 赋值运算符; 其他的运算符。
2.2.2 算术运算符
Java 语言支持所有的浮点型和整型数进行各种算术
运算。这些运算符为+(加)、-(减)、*(乘)、 /(除)以及%(取模)。 算术运算符的使用基本上与加减乘除一样,也是 先乘除后加减,必要时加上括号表示运算的先后顺 序。例如这个程序代码会在命令行模式下显示: System.out.println(1 + 2 * 3);
移位和逻辑运算符
运算符 >> << >>> & 运算 右移 左移 无符号右 移 与 或 用法 x >> n x << n x >>> n x&y 运算规则 (设x=11010110,y=01011001,n=2) 运算结果 将x各位右移n位,左边按符号补0或 11110101 补1 将x各比特位左移n位,右边补0 将x右移n位(无符号的) ,左边补0 将x,y按位与操作 01011000 00110101 01010000
不等 于
条件运算符
运算符
&百度文库 运算
用法
x && y
返回true的情况
x和 y都是true
条件与
条件或 条件非 条件异或
‖
! ^
x ‖ y
!x x ^ y
x或者 y是true
x为 false x和 y逻辑值不相同
2.2.4 位运算符
位运算符是对操作数以二进制位为单位进行的操作
和运算,其结果均为整型量。
2.2.3 关系与逻辑运算符
运算符 > >= < <= == != 运算 大于 不小 于 用法 x1 > x2 返回true的情况 x1大于x2 x1 大于或等于x2 x1小于 x2 x1小于或等于 x2 x1 等于 x2 x1不等于 x2
x1 > = x2 x1 < x2
小于
不大 于 等于
x1 <= x2 x1 == x2 x1 != x2
size()
insertElementAt(Object obj,int index)
返回该向量的元素数。
在指定的 index 处插入作为 该向量元素的指定对象。
2.2 表达式和运算符
表达式是由运算符、操作数和方法调用按照语
言的语法构造而成的符号序列。表达式可用于 计算一个公式,为变量赋值以及帮助控制程序 执行流程。
Array类调用(二分法)
public static int binarySearch(double[] a, double number) 方法判断参数number指定的数是否在参数a指定的数组中。 例2-7
2.5
枚举类型
Java使用关键字enum声明枚举类型,语法格式如下: enum 枚举名 { 常量列表 } 其中的常量列表是用逗号分割的字符序列,称为枚举类 型的常量(枚举类型的常量要符合标识符之规定,即由 字母、下划线、美元符号和数字组成,并且第一个字符 不能是数字字符)。 例2-8 ,例2-9
2.4.1 创建和使用数组
2.创建数组
◆为数组分配内存空间的格式如下: 数组名字 = new 数组元素的类型[数组元素的个数]; 例如: boy= new float[4]; ◆数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组 就可以通过索引操作这些内存单元 。
◆声明数组和创建数组可以一起完成,例如: float boy[]=new float[4];
该语句声明并创建了一个3行4列的数组D。这个数组 在逻辑上可以表示成一个int类型的矩阵。
也就是说,这个数组在逻辑上可以表示为: D[0][0] D[0][1] D[0][2] D[0][3] D[1][0] D[1][1] D[1][2] D[1][3] D[2][0] D[2][1] D[2][2] D[2][3]
2.4.8 复制数组(Arrays类的方法)
1.arraycopy方法
public static void arraycopy( sourceArray, int index1, copyArray,int index2, int length)
例2-5
2.copyOf和copyOfRange()方法
0x785BA
boy[0] boy[1] boy[2] boy[3]
◆二维数组和一维数组一样,在声明之后必须用new 运算符分配内存空间,例如: int mytwo[][]; mytwo=new int [3][4]; 或 int mytwo[][]=new int[3][4];
boy
图2.4 数组的内存模型