数据类型
Java的数据类型由基本数据类型和引用类型
基本数据类型和C语言的一致,除了基本类型其余的都是引用类型。
引用类型主要有:类(class)、接口(interface)、数组、枚举(enum)、注解(Annotation)
char常量必须包含在单引号内(‘’)。char c = 'a';//指定变量c为char型,且赋初值为a.
各种定义规则:
int i = 100; char c1 = a; byte b = 0b11; long l = 567L; float f = 1.86f; double d = 2.1;
关于转义字符:\`用来表示`;\\用来表示\ ,是char型,char c='\`';
自动类型转换:
条件: 两种类型必须兼容;目标类型大于源类型。
float fl = b * f; //byte类型的b会自动转换为与f1一致的float类型参加运算。
位运算符
位运算符类型 | 语法格式 | 规则 |
按位与(AND) | value1 & value2 | 1 & 1= 1,其余情况下结果都为0 |
按位非(NOT) | ~ value1 | 取反 |
按位或(OR) | value1 | value2 | 任何一个运算符为1,结果都为1 |
按位异或(XOR) | value1 ^ value2 | 不同为1,相同为0。 |
左移 | value << num | 最高位丢弃,右侧用0填充。 左移与右移都不会改变数的位数 |
右移 | value >> num | 最低位丢弃,最高位用原来的最高位上的数补充。 |
无符号右移 | value >>> num | 最低位丢弃,最高位由0补充。 |
数组
数组创建与初始化
静态初始化:在定义数组的同时对该数组进行初始化.
例如:int[] K={1,2,3,4}或int[] K= new int[]{1,2,3,4}
动态初始化:将数组的定义和初始化分开进行.
例如:int[] array ; //数组声明
array[0] = 1; //数组的第一个元素赋值
array[1] = 2; //数组的第二个元素赋值
//[] array和array[]一样,但常使用前者
或者int[] K= new int[100];//new出一个长度为100的整型数组。
当数组创建完毕,数组中的元素具有默认初始值,数值类型的数组初始值为0,布尔型的为false,字符型的\0,引用类型的则为null。
数组拷贝
数组的复制是指将源数组的元素—做副本,赋值到目标数组的对应位置.常用的数组赋值方法有三种.
1、使用循环语句进行复制(使用循环语句遍历源数组每个元素,赋值给目标数组对应位置).
2、使用chone()方法
在Java中,Object类是所有类的父类,其clone()方法一般用于创建并返回此对象的一个副本,Java中认为一切都是“对象”,所以使用该方法也可以实现数组的复制。clone()方法是object类的方法,作用就是将内容复制。
public class ArrayCopyClone {
public static void main(String[] args) {
int[]array1={ 1,2.3.4.5}; //
int[]array2 = array1.clone(); //array2是array1的副本,值相同
for(int i=0;i< array2.length, i++)
{
System.out.println(array2[i]+".");//输出
}
}
3、使用System.arraycopy方法
arraycopy()方法是System类的一个静察方法(并且是本地方法,效率非常高)。其可以方便的实现数组拷贝功能,System.arraycopy()方法的结构如下:
System.arraycopy(from, fromIndex, to, tolndex, count)
示例:
public class ArrayCopy {
public static void main(String[] args){
int[]array1 ={ 1,2,3,4, 5 };
int[]array2 = new int[array1.length]; //声明array2
System.arraycopy(array1, 0, array2, 0, array1.length); //复制
/*表示从array1的0号开始复制,复制好的放在array2里的0号位置去,一共复制array1.length个长度*/
for (int i= 0; i< array2 length; i++) {
System.out.print(array2[i]+",");//输出
}
}
使用数组
数组必须先分配(new)空间,才能使用。
数组可以存储基本数据类型,也可以存储对象数据类型。
使用数组存储5个整数,并输出其中最大值。
public class FindMax {
public static void main(String[] args) {
int[] array={ 10, 23, 6, 88, 19 };
int index =0; //最大值索引号,默认为0
int max = array[index]; //最大值
//寻找最大值
for (int i= 1; i< array.length; i++) //注意java里是在for循环里面对进行的定义
{
if (array[i] > max){
index = i;
max = array[i];
}
}
System.out.println("最大值为" + max+", 索引号为”+ index);
}
}
//数组属于对象范畴,使用。length属性来获取数组的元素个数。
二维数组
使用new来创建多维数组时,不必指定每一维的大小,只需要指定第一维的大小即可.例 in[][] array = new int[10][];
此时一维数组的元素类型还是一维数组,常用来解决矩阵之类的问题。
int[][] array ={{1,2},{3,4},{4,5}};//注意一下,这点和C语言的不同。
想取得数据2,可以使用array[0][1]来获取。(指定数组名和索引)。