手记

java基础知识01

前言:

正所谓万丈高楼平地起,有了扎实的基础才能进阶更深奥的课程,才能让你后面的走得更轻松,学Java亦是如此!所以千万不能忽略基础的重要性,下面一起来温习一下那些容易忽略、容易混淆以及比较重要的Java基础。

一、概述:

1.JDK:Java Development Kit,java的开发和运行环境。
2.JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3.javac命令:当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
4. java命令:负责运行的部分,会启动jvm,加载运行时所需的类库,并对class文件进行执行。一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数。

二、Java基础:

1.数据类型:
(1). 8种基本类型:byte(1字节)、short(2)、int(4)、long(8)、float(4)、double(8)、char(2)、boolean
(2). 3种引用类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:把一个高级别的数赋给一个别该数的级别低的变量就需要强转。

2、运算符:
(1). & 和 &&区别:第一个叫逻辑与,第二个叫短路与。逻辑与是无论左边结果是什么,右边都参与运算;而短路与,如果在左边为false,那么右边就不参与运算了;显然短路与效率更高。| 和 || 的区别亦是如此。

(2). == 和 equals方法的区别:

  • 当比较的是基本类型:== 和 equals都是比较值是否相等;

  • 当比较的是引用类型(除了String):== 和 equals都是比较地址值是否相同,即是否为同一个对象;

  • 当比较的是String时:== 比较的还是地址值,但是由于String类重写了equals方法,所以equals比较的是值是否相等。

(3).++和--:
++和--参与运算时,如果++(--)放在操作数后面,则先运算再自增(减),如果++(--)放在操作数前面,则先自增(减),再参与运算。

3、语句:

(1). switch循环:

String s = "牛逼";switch (s){    case "牛逼":
         System.out.println("牛逼");         break;    case "厉害":
         System.out.println("厉害");         break;    default:
         System.out.println("默认");         break;
}

这就是switch循环的用法了,switch支持的数据类型有byte、short、int、char、String以及Enum类型。

(2). while循环:

int x = 10;while( x < 20 ) {
    System.out.print("value of x : " + x );
    x++;
}

(3).do while循环:

int x = 10;do{
    System.out.print("value of x : " + x );
    x++;
}while( x < 20 );

do while和while的区别:do while至少执行一次。

break: 作用于switch ,和循环语句,用于跳出,或者称为结束。break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
continue: 只作用于循环结构,继续循环用的。结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

4、数组:用于存储同一类型数据的一个容器。
(1). 数组的初始化

int [] i = {1,2,3} //静态初始化int [] arr = new int[5]; //动态初始化arr[0] = 10;

(2).二分查找法(前提:数组中的元素必须有序)
二分查找法基本思想:
定义最大索引max,最小索引min,计算中间索引mid=(max+min)/2,拿要查找的数和中间索引处的数比较,如果中间索引处的数大了,就在左边找,这时最小索引min不变,最大索引max=mid-1,如果中间索引处的数小了,就在右边找,这时最大索引不变,最小索引min=mid+1。
代码实现:

public static int getIndex(int[] arr, int value) {        int min = 0;        int max = arr.length - 1;        int mid = (max + min) / 2;        while (arr[mid] != value) {            if (arr[mid] > value) {
                max = mid - 1;
            } else if (arr[mid] < value) {
                min = mid + 1;
            }            if (min > max) {                return -1;
            }
            mid = (max + min) / 2;
        }        return mid;
}

(3).数组排序之冒泡排序:
冒泡排序基本思想:
相邻元素两两比较,大的往后放,这样一轮下来,最大值就出现在了最大索引处,如此这般继续,便可得到排好序的数组。每比完一次,下一次比较就可少比较一个元素,总共需要比较数组长度减一次。
代码实现:

for(int x=0; x<arr.length-1; x++){ // 外循环控制比较次数
    for(int y=0; y<arr.length-1-x;y++){ // 内循环控制每一次的比较
        if(arr[y]> arr[y+1]){             int temp= arr[y];
             arr[y]= arr[y+1];
             arr[y+1]=temp;
        }
    }
}

(4).数组排序之选择排序:
选择排序基本思想:
从0索引处开始,依次和后面的每一个比较,小的往前放,第一次比较完毕,最小值出现在0索引处,如此这般,便可得到排好序的数组。
代码实现:

 for(int x=0; x<arr.length-1; x++){    for(int y=x+1; y<arr.length; y++){       if(arr[y]< arr[x]){           int temp = arr[x]; 
           arr[x] = arr[y];
           arr[y] = temp;
        }
    }
 }



作者:贪挽懒月
链接:https://www.jianshu.com/p/980a5d3ccb42


5人推荐
随时随地看视频
慕课网APP