JAVA 学习笔记(1) ____语法,数组

java语言的三种技术架构

JAVAEE (J2EE) 企业版   —主要对于Web应用程序开发

JAVASE (J2SE) 标准版   —完成一些桌面应用程序开发

JAVAME (J2ME) 小型版  —开发电子产品和嵌入式设备

 

JAVA 虚拟机( JVM___ Java Virtual Machine

 

运行输入

cmd  :进入DOS命令行          

cd\   :进入C盘根目录

md 创建目录

dir :列出当前目录下的所有文件及文件夹

rd 删除目录

cd 进入指定目录

cd/ 退回到根目录

del  删除文件

exit 退出DOS命令行

set 临时查看编辑环境变量配置 

 set classpath=D:\肖海波暑假重要文件\java code ——类环境变量(classpath

还原清理 set classpath= (等号后为空,按回车确定)

    set classpath=C:\ 后有一分号!如果目标c盘下没有继续在当前目录下查找    

    set classpath=  . ;c:\;d:\    ------ 点;点代表当前目录

     

javac :编译

 java 运行

 

配置环境变量 :我的电脑属性--高级-环境变量--系统变量(path)内加入地址。

 

   HELLO world

class hello

{

         public static void main(String[] args)

       {

         System.out.println(“hello world!”);

       }

}

 

 

变量 整形: byte  short  int  long  ,浮点型:float  double float a=2.3f 字符:char

     布尔量:boolean bo = true boolean bo1= false

 

 【逻辑运算符:】

&:‘与’运算,有假必假

&&:‘短路’ a>1 && a<7  左边为假右边不运算,直接=false (可提高效率)

|:  ‘或’有真必真

||:  左边为真 右边不运算,直接得=true

! :  ‘非’运算

^ :  ‘异或’ 相同为false 不同为ture

~ :  反码

 

 【二进制移动—位运算】

<< :左移  3<<2 = 12 ——》3*2*2=12

>>: 右移  3>>1 = 1  ——》3/2 = 1

 >>> n : 右移n位,左边首部不管正负与否都补 0

 小结:

 >>:最高位为0,右移后,用0补空位、

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

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

 

【算术运算符】

+   ,- ,   *   ,   %   , ++  ,   - -    

//注意: short a=3;

         语句1 a+=2; )与 语句2:( a=a+2;

          不等同! 语句1可以通过, 语句2编译不通过,error:类型问题,可能损失精度

 

 

3元运算符】

  (条件表达式)? 语句1 语句2 //******若为真执行1,若为假执行2

 

3种调换值方法】

      容易阅读       大数字相加可能超出范围       位运算不超范围,可读性差

         int a = 2, b = 5;    int a = 2,b = 5;                   int a = 2 ,b = 5 ;

         int temp;              a=a+b;                                   a=a^b;

         temp=a;              b=a-b;                                  b=a^b;   // a=(a^b)^b = a

        a=b;                   a=a-b;                                       a=a^b    // a=(a^b)^a = b

       b=temp;

结果:a=5b=2        a=5,  b=2                           a=5 , b = 2

   

 

if语句】(判断)

 

 if (条件表达式)       // if else 简写结构:变量=(条件表达式)? 语句1:语句2

       {                   // 三元运算符  好处:可以简化if else 代码

       语句1                             弊端:因是一运算符,所以运算完必须有一结果

       }

else

{

       语句2

    }

 

if  (条件表达式1)           //  内多层 else if 结构,顺序执行下去遇到第一个表达式为真,则执行其后的语句,并退出整个if  else 结构。

       {

       }

else if (条件表达式2)

else if(条件表达式3

……

……

……

else

       {

       }                         

      

      

       if  ( 条件表达式1)

       {

       语句1

       }

        if ()

       {                                 //—————— 顺序执行

       语句2

       }

       if ()

       ……

        else

       {

       }

 

switch语句】

        switch (表达式 )

        {

       case 取值1:执行语句1   break;

       case 取值2:执行语句2   break;

       ……

       default :

        执行语句 n break     // break 也可以不写。

       }

      

switch语句特点】

   1: switch语句选择的类型只有4种:byteshortint char

2: case之间与default没有顺序。先执行第一个case,没有匹配的case执行defaultdefault也可以放在case前;

       3:结束switch语句的2种情况:遇到break ,执行到结尾“}

4 :如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行执行的语句,直到遇到breakswitch结尾结束;

      

switchif场景选用方案】

 1  如果判断的具体数值不多,而又符合byteshortintchar这四种类型,建议使用switch,因为效率稍高

2  其他情况:对区间判断,对boolean类型判断,使用ifif的使用范围更广。

      

      

       【循环结构】

       while ( 条件表达式)

       {

       循环体;

       }

      

       do

       {

       循环体;

       }

       while( 条件表达式)

      

      

       for循环】

           如果变量只用来作为循环体的增量 for循环语句,因为它初始化变量在内部,循环结束时将释放变量在内存中所占用的空间,节省内存

 

小规律:1;如果尖朝下,内循环初始化 用例(y=x ; y<5 ;  ;

       2;如果尖朝上,内循环条件 用例(y=0y<x ;)  来小于外部

 

breakcontinue

  Break语句 ,运用范围:选择结构和循环结构;  // 其他范围无效 

  Continue 语句, 运用范围:运用于循环结构;    //继续下一次循环

【标识符:

 n :  for ( ; ; ; )                // n代表外循环,s代表内循环

   {                                                       有语句 break n ; 表示退出外循环

        s :  for ( ; ; ; )

     {

      }

   }

  

—————————————— ————————————————————————

—————————————————— —————————————————————

【函数\方法】

 public static void name (int ,int )

修饰符 返回值类型 函数名(参数类型 形参1 ,参数类型 形参2…)

{

       执行语句;

    Return 返回值;

}

【函数的重载\overload

       在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可(参数列表不同)

       好处:方便阅读,优化了程序设计;

【数组】

int [ ] x = new int[3 ]                // int x [ ]=int [ ] x      []位置不同,二者等同

栈:自动清除  :垃圾回收机制

 

【】

StringBuffer name= new StringBuffer( )       //定义个容器name

 name.append( temp );                    //如将1101通过temp挨个装进name容器中

System.out.println( name.reverse( ) );         // 1011打印出来(反过来)

 

【查表】

 char[ ] ss={‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’} 

 

【二维数组】

定义:int[ ] [ ] arr = new int [3] [4]    //定义了名称为arr的二维数组,二维数组中有3   个一维数组。每一个一维数组中有4个元素

       int [ ] [ ] arr= { {3,5,1,7,6} ,{2,9} ,{5,0,2,4} } ;      

 

另一种定义方式:

         int [ ] [ ] arr= new int[3] [ ] ;

         int[0]=new int [5];

         int[1]=new int [2];

         int[2]=new int [4];

      

       System.out.println(arr.length );      //打印二维数组的长度 =3

       System.out.println(arr[0].length);    //打印二维数组中第一个一维数组的长度 =5

 

【】

 int [ ] [ ] arr=int arr [ ] [ ] = int [ ] arr [ ] ;    //三个位置不一,但意思等同

      

int [ ] x , y[ ];    // x是一维,y是二维。  ----------考试题  int[]x;  int[]y[];

【排序】

            

【选择排序】——用第一个数与后面的所有进行比较,并换位。

for(int x=0;x<arr.length-1;x++)

 {

       for(int y=x+1;y<arr.length;y++)

              {

                if(arr[y]<arr[x])

                     {

            temp=arr[x];

                       arr[x]=arr[y];

                       arr[y]=temp;   

                      }

              }

}

【冒泡排序】——相邻2个元素进行比较,如果符合条件换位。

       public static void MaoPao(int[] arr)

       {

              int temp;

              for(int x=0;x<arr.length;x++)

              {

                     for(int y=0;y<arr.length-x-1;y++)    //-x: 让每一次比较的元素减少;

{                                                        -1:避免角标越界。

                            if(arr[y]>arr[y+1])            //冒泡排序时相邻2数比较

                            {

                                   temp=arr[y+1];

                                   arr[y+1]=arr[y];

                                   arr[y]=temp;

                            }

                     }

              }

       }

【开发常用排序///简单】——JAVA中已经定义好的排序方式。小到大

 class前面输入——》import.java.util .*

 main 函数内输入——》 Arrays.sort(arr)  // 完成数组arr的排序

 

【折半查找】

折半查找提高了查找效率,要求:数组要求是顺序的!

class ChaZhao

{

       public static void main(String[] args)

       {

              int []arr={1,2,3,4,5,6,7,8,9};

              int x = ZBchazhao(arr,6);

              System.out.println("x="+ x);

       }    

       public static int ZBchazhao(int[] arr,int key)

       {

              int min,max,mid;

              min=0;

              max=arr.length-1;

              mid=(min+max)/2;  // mid = (min+max)>>1 ;

              while(min < = max)

              {

                  mid = (min + max )>>1;

                     if(key>arr[mid])

                            min=mid + 1;

                     else if(key < arr[mid])

                            max = mid - 1; 

                     else

                            return mid;

              }

              return -1;

             

       }

}

 

 

 

【进制转换 优化】

 

class ArrayTest7

{

       public static void main(String[] args)

       {

              toBin(-6);

              toHex(-60);

              toBa(60);

       }

       /*

       十进制-->二进制

       */

       public static void toBin(int num)

       {

              trans(num,1,1);

       }

       /*

       十进制-->八进制

       */

       public static void toBa(int num)

       {

              trans(num,7,3);

       }

       /*

       十进制-->十六进制

       */

       public static void toHex(int num)

       {

              trans(num,15,4);

       }

 

       public static void trans(int num,int base,int offset)

       {

 

              if(num==0)

              {

                     System.out.println(0);

                     return ;

              }

              char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

              char[] arr = new char[32];

 

int pos = arr.length;

              while(num!=0)

              {

                     int temp = num & base;

                     arr[--pos] = chs[temp];

                     num = num >>> offset;

              }

 

              for(int x=pos; x<arr.length; x++)

              {

                     System.out.print(arr[x]);

              }

 

              return ;

       }

}

你可能感兴趣的:(java,学习笔记,教程)