1、数据类型

  byte  字节型  占1字节  范围是 -128~127

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  short  短整数类型  占2字节  范围是 -2^15~2^15 -1

  int  整数类型  占4字节  范围是-2^31~2^31 -1

  long  长整数类型  占8字节  范围是-2^63~2^63 -1

  float  浮点型(单精度)  占4字节  

  double  浮点型(双精度)  占8字节

范围比较:long < float < double

2、变量

  标识符命名:1、通常是字母、数字、_(下划线)、$组成

        2、不能以数字开头

        3、不能是Java关键字

        4、不能使字面值(比如:true、false、null)

  规范:骆驼命名  即变量或者函数由多个单词组成时,第一个单词首字母小写其后单词首字母大写(比如 myFirstName)

  自增/自减:自增前缀:++a  赋值运算和输出语句中,先运算或输出然后再自增或自减

        自增后缀:a++  赋值运算和输出语句中,先自增或自减然后再数据或运算

3、switch用法

  在我理解中,switch是一个对号入座的方法,

  例子:switch(a){

      case 1 :

        System.out.println("我是1")

      break;

      case 2:

        System.out.println("我是2")

      break;

      default :

        System.out.println("我是其他")

      break;(可省略)

    }

注意:1、break 起到断点作用,若没有break则就算执行完了对应的那个case 语句还是会继续执行下一个case语句,并不会退出

   2、与 if 语句作比较

     a、if(条件1){

          满足条件1

          } else if(条件2){

          满足条件2

            }else{

            不满足条件

              }

    所以不难看出,switch是等值判断,而if是条件判断(可等值可区间判断)

      注意:在 if 判断语句中,数字可以用 ==  若是字符比较则是用equals

4、循环(while、do - while、for)

  1、while(循环条件){

          循环操作

        }

  2、do{

      循环操作(先执行一次,再去判断循环条件)

    } while(循环条件)  

  3、for(int i = 1; i<=5; i++){
      循环操作(5次)

      }

    补充:break 可以跳出循环,若是双重循环

        a:

         for(int i =1;i<=3;i++){

            for(int j =1;j<=3;j++){

                if( j==2){

                  break;  //跳出内层循环

                  break a;  //跳出外循环,因为有标签 a

                  }

                }

              }

5、堆和栈

  栈:就是村方法和方法中的基本数据类型,频繁的创建和销毁数据结构。而像String、数组这些引用数据类型的名字存在栈里。

  堆:堆中若是不复制就会自动初始化,整数为0,布尔为false,浮点为0.0,String为null,也就是引用数据类型会用到堆

 6、数组

  所谓数组就是一个容器,只不过里边存放的数据必须是相同类型的一组数据

  声明:int [ ] n = new int [3];声明一个长度是3的int类型的数组

     int [ ] n = new int [ ] {1,2,3}; 声明一个{1,2,3}的数组    (数组的下表是从0开始的)

  若System.out.println(n) 则只是打印输出数组n的地址

  所以可以用增强for遍历输出

      for( int a : n) {

          System.out.println(a);

        }

  数组的拓展:

   a、数组的复制

    System.arraycopy( src,srcpos,dest,destpos,length);

    解释:src  原数组

         srcpos  原数组开始复制位置

         dest  目标数组

         destpos  目标数组复制的位置

         length  复制的长度

  b、数组克隆

    arr2 = arr1.clone();

    这个不是把数组arr1的地址给了arr2,而是又创建了一个数组arr2,只是arr2的元素和arr1 一样,但是地址是不同的

  c、把数组转换成字符串

    Arrays.toString (arr)  数组转字符串

    Arrays.sort(arr)    数组排序

    Arrays.sort(arr,起始位置,终止位置)   数组排序范围单不包括终止位置

7、排序方法

  a、冒泡排序:

     外层循环每一次拿到一个值之后,都跟未排序的数组中的每一个元素进行比较,然后找到一个合适的值放在待排序的数组的最后。

       每一次循环拿到一个待排序数组中的最大值,放在待排序数组中的末尾。   

          import java.util.Arrays;
            public class MyTest {
              public static void main(String[] args) {
                int [ ] n = new int [] {5,4,3,2,1};
                int temp;
                for(int i =0;i<n.length-1;i++) {
                  for(int j = 0;j<n.length-i-1;j++) {
                    if(n[j] > n[j+1]) {
                      temp = n[j];
                      n[j] = n[j+1];
                      n[j+1] = temp;
                }
              }
            }
          for(int a : n) {
            System.out.println(a);
              }
        }
      }

  b、快速排序

    从前开始搜寻一个大于中界值的元素a,从后往前搜寻一个小于中界值的元素b, 交换a和b的位置,一直重复到这两个搜寻的指针相遇!!

    得到的结论就是:中界值的左边都是小于中界值的,中界值都是大于中界值的 再重复红色字这个操作, 直到数据有序为止!!

    假设:如果左边都是有序,右边也都是有序,最终整个数据序列就有序    

      /*
       * 快速排序
       *
       * 参数说明:
       *     a -- 待排序的数组
       *     l -- 数组的左边界(例如,从起始位置开始排序,则l=0)
       *     r -- 数组的右边界(例如,排序截至到数组末尾,则r=a.length-1)
       */
      void quick_sort(int a[], int l, int r){
          if (l < r){
            int i,j,x;
            i = l;
            j = r;
            x = a[i];
            while (i < j){
                while(i < j && a[j] > x)
                  j--; // 从右向左找第一个小于x的数
                if(i < j)
                  a[i++] = a[j];
                while(i < j && a[i] < x)
                  i++; // 从左向右找第一个大于x的数
                if(i < j)
                  a[j--] = a[i];
              }
          a[i] = x;
          quick_sort(a, l, i-1); /* 递归调用 */
          quick_sort(a, i+1, r); /* 递归调用 */
        }
     }

   c、插入排序  

    Javase之基础1 随笔 第1张

    从第二个位置的元素开始,如果第二个元素的位置比前边位置的元素小的话,那么插入那个位置, 然后找第三个位置的元素和前边所有元素比较,

    9比23小,所以9插入到23位置,然后其他元素往后覆盖,变成【9,23,90,25,16】,然后第四个位置元素25和前边的比较,

    25比90小,所以25插入到90的位置,后边的覆盖。最后在16去比,16插23位置,后边覆盖。

      int [] num = {45,22,1,89,33};

      int temp =0;

      for(int i = 1;i < num.length; i++){//位置

        for(int j =0; j< i; j++){//为之前的元素

          //比较 if(num[i] < num[j]){

          //存 temp = num[i];

          for(int k = i; k> j;k--){

            num[k] = num [k-1];

             }

          num[j] = temp;

          }

        }

      }

   d、选择排序

    某一个位置依次与后边的位置元素比较,如果后边有比这个位置大的元素则换位置

      Javase之基础1 随笔 第2张

      Javase之基础1 随笔 第3张

      Javase之基础1 随笔 第4张

     Javase之基础1 随笔 第5张

     Javase之基础1 随笔 第6张

      Javase之基础1 随笔 第7张

 

 

 

 

 

 

  

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄