天天看点

java基础知识

常量与变量

     java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

    在java中,整数默认为int型,所以:byte b=3; b=b+2; 第一句不错,第二句会出错。因为java是强类型语言。应改为:byte b=3; b=(byte)(b+2);

    小数默认为double型,所以:float f=2.3; 会出错。应为:float f=2.3f;

    布尔类型值为:true和false

        boolean b1=true;    boolean b2=false;

运算符

    算术运算符   如:+,-

    赋值运算符   如:=,+=

    比较运算符   如:==,!=,<,>,

    逻辑运算符   如:&,|,!,^(异或),&&,||

    位运算符       如:<<,>>,>>>,&,|,^,~

    三元运算符   为:(条件表达式)?x:y

    算术运算符        

        字符串数据和任何数据使用“+”相连接,最终都会变成字符串。

    转义字符

       通过'\'来转变后面字母或者符号的含义。如:\n:换行;\b:退格,相当于backspace。\r:回车键;\t:制表符,相当于tab键。

        在linux中换行由一个字符表示:\n

        在windows中,换行,回车符是由两个字符来表示:\r\n

        在dos里,可直接识别\n   

        char c='我';      这样在java中是可以的,因为char为两个字节,而一个汉字也为两个字节。  

    赋值运算符

        short s=4;  //没有错,4为整型,s为short型,只要右侧数在short的范围内,赋值运算符会自动完成类型转换。

        s=s+5;    //会出错,因s+5时,s会转换变为int型,与int型5相加,结果为int型,此时将int型赋给short型变量s,会装不下,易精度丢失,所以会出错。

        s+=5;    //不会出错,因为+=是一个赋值运算符,负责赋值,内部会自动转换。

    逻辑运算符

        作用:用于连接boolean类型的表达式

        &和&&的区别:

            &:无论左边是true还是false,右边都运算。

            &&:当左边为false时,右边不运算了。

        | 和|| 的区别:

            |:两边都参与运算。

            ||:当左边为true,右边不运算。

    位运算符

         >>: 最高位补什么,由原有数据的最高位决定,

               如果最高位为0,右移后,用0补;

               如果最高位为1,右移后,用1补。

        >>>: 无论最高位是什么,右移后,都用0补。         

        3<<2; 表示左移2位,右边补0,结果为3*4=12;

        6>>2; 表示右移2们,左边补0,结果为6/4=1;

        -6>>2; 表示左边最高位补什么,和原来最高位的值相同。

        取反:~6=-7;

        7^4^4=7;   一个数异或同一个数两次,结果还是那个数。

程序流程控制

    顺序结构

    判断结构   如: if语句

    选择结构

    循环结构

    if...else语句与三元运算符的区别

    三元运算符,

        好处:可以简化if...else代码

        弊端:因为只要是运算符,运算完必须要有一个结果,而输出语句是输出到终端,没有结果。

数组

数组定义:

    格式1:

    元素类型[] 数组名=new 元素类型[元素个数或数组长度]

        如:int[] x= new int[3]; 

    数组名x不是int型,为数组类型,即引用类型。

    栈区:数据使用完毕,会自动释放。

    堆区:1. 如new分配的空间,由垃圾回收机制释放,不需程序员自己释放(优于c++)。2. 堆内存中分配好的内存有默认值,int型默认为0,float默认为0.0,double默认为0.0,布尔类型默认为false。

    格式2,静态初始化:

    元素类型[] 数组名 = new 元素类型[]{元素,元素,... ...}    

        如:int[] arr = new int[]{1,2,3,4};     或   int[] arr = {3,5,1,7}         

    冒泡排序:相邻的两个元素进行比较,如条件符合换位,第一圈比较完,最值出现在最后位。

    排序算法中,效率最高的是希尔排序