java 基础

java 基础(一)

2018-06-09  本文已影响0人  NullPoint3Exce

1.运算符

1.1算术运算符

    %:取余数。通常可用于切换,任意整数%2结果非0即1。
    ++:b=a++;先将a值赋值给b,然后a在自增。 b=++a:先对a进行自增,然后将自增后的值赋给b。

表格中的实例假设整数变量A的值为10,变量B的值为20

操作符 描述 例子
+ 加法 - 相加运算符两侧的值 A + B 等于 30
- 减法 - 左操作数减去右操作数 A – B 等于 -10
* 乘法 - 相乘操作符两侧的值 A * B等于200
/ 除法 - 左操作数除以右操作数 B / A等于2
取模 - 左操作数除以右操作数的余数 B%A等于0
++ 自增: 操作数的值增加1 B++ 或 ++B 等于 21
-- 自减: 操作数的值减少1 B-- 或 --B 等于 19

1.2位运算符

& | ^
其实都是在对二进制进行运算。
<<:左移:可以对一个数进行幂运算。3<<3 = 3*8 = 24;
>>:带符号右移。最高位是多少,移动玩后补什么
>>>:无符号右移。都补0
假设整数变量A的值为60和变量B的值为13

操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
l 如果相对应位都是0,则结果为0,否则为1 (A / B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

1.3逻辑运算符

& | ! ^ && ||
该运算符用于连接boolean型的表达式。
&和&&的区别:
&:两边的表达式都运算。
&&: 当左边为false时,右边不参与运算。

1.4赋值运算符

1.5其他运算符

2.基本数据类型

timg.jpg

3.查找

  /**
     * 二分查找
     *
     * @param arr 数据源
     * @param key 查找的数据
     * @return 在arr里的位置
     */
    private int halfSearch(int[] arr, int key) {
        int min, mid, max;
        min = 0;
        max = arr.length - 1;
        while (min <= max) {
            mid = (min + max) / 2;
            if (key > arr[mid]) {
                min = mid + 1;
            } else if (key < arr[mid]) {
                max = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;
    }

4.排序方式

4.1冒泡排序

    冒泡排序。
    特点:相邻两个元素进行比较。
        内循环结束一次,最值出现在最后角标位。

    */
    public static void bubbleSort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=0; y<arr.length-x-1; y++)
            {
                if(arr[y]>arr[y+1])
                {
                    /*
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                    */
                    swap(arr,y,y+1);
                }
            }
        }
    }

4.2选择排序

/*
    选择排序。
    特点:
        在内循环第一次结束,最值出现最低角标位。
    */
    public static void  selectSort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=x+1; y<arr.length; y++)
            {
                if(arr[x]<arr[y])
                {
                    /*
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                    */
                    swap(arr,x,y);
                }
            }
        }
    }

上一篇 下一篇

猜你喜欢

热点阅读