Java必备小知识点4——数据类型、数组、位运算符

数据类型

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]来获取。(指定数组名和索引)。

猜你喜欢

转载自blog.csdn.net/weixin_48060069/article/details/129148781