Java初学者之Java基本语法

Java基本语法总结


一.关键字
1、被Java语言赋予了特殊含义,用于专门用途的字符串(也就是单词)例如class等等。
2、关键字中所有字母都为小写
二、标识符
凡是可以自己命名的地方,都叫标识符。例如:类名、方法名、变量名、接口名……
三、标识符命名的规则:(要求严格遵守,否则会报编译性的错误)
1、由26个英文字母大小写,0-9,_或$组成
2、 数字不可以开头。
3、不可以使用关键字和保留字,但能包含关键字和保留字(现有Java版本未使用,但以后版本会作为关键字使用)
4、Java中严格区分大小写,长度无限制。
5、标识符不能包含空格。
四、Java中的名称命名规范:(如果不遵守,也不会报错)
1、包名:多单词组成时所有字母小写:xxxyyyzzz
2、类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
3、变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
4、常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
5、在起名时,要尽量有意义。
五、变量
1、Java中变量定义的格式:数据类型 变量名 = 初始化值
2、变量先定义后使用
3、变量的分类:
基本数据类型:
数值型:
整数类型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
引用数据类型:
类:class(字符串)
接口:interface
数组:[]
4、基本数据类型总结

  /*基本数据类型*/
class Love 
{
    public static void main(String[] args) 
    {
        //1.整型:byte(-128~+127) short int(默认类型) long
        byte b1=13;
        short s1=520;
        int i1=14;
        System.out.println(b1);
        System.out.println(s1);
        System.out.println(i1);

        //定义long型变量,值的末尾加“L”或“l”
        long I1=5201314L;
        System.out.println(I1);

        //2.浮点型(带小数点的数值):float double(默认类型)
        double d1=13.14;
        System.out.println(d1);

        //声明flaot类型的浮点型数据,末尾要加“F”或“f”
        float f1=13.14F;
        System.out.println(f1);

        //3.字符型:char 只能表示一个字符(英文,中文,标点符号)
        char c1='a';
        System.out.println(c1);

        //使用String来输出多个字符
        String str="ab";
        System.out.println(str);

        //可以表示转义字符
        char c2='\n';
        System.out.println("abc"+c2+"def");

        //了解一下
        char c3='\u1234';
        System.out.println(c3);

        //4.布尔类型:boolean 只能够取值为true或false。不能取值null。
        boolean t1=true;
        if(t1){
            System.out.println("我爱\"Java\"");
        }else{
            System.out.println("你在说谎");


        }

    }
}  

六、类型转换(不考虑boolean)

class Teep
{
    public static void main(String[] args) 
    {
        //1.自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为容量大的数据类型:
        // char,byte,short==>int==>long==>float==>double
        int i1=12;
        short s1=2;
        int i2=i1+s1;
        float f1=12.3F;
        float f2=f1+i2;

        long I=12L;
        float f3=I;
        System.out.println(i2);
        System.out.println(f2);

        //char c1='a';//97
        char c1='A';//65
        int i3=c1+1;
        System.out.println(i3);

        //需要注意的:当char\byte\short之间做运算时,默认的结果为int类型
        short ss1=12;
        byte bb1=1;
        char cc1='a';
        int ii1=ss1+bb1;
        int ii2=cc1+bb1;
        System.out.println(ii1);
        System.out.println(ii2);

        //2.强制类型转换:容量大转换为容量小的,要使用强制类型转换符:()
          //强制类型转换的问题:导致精度的损失
        long I1=12345L;
        int m1=(int)I1;
        System.out.println(m1);


        byte by1=(byte)m1;
        System.out.println(by1);

        //平时常用的字符串,也是一种数据类型:String
         String nation="我喜欢Java";
         System.out.println(nation);

         //字符串与基本数据类型之间的运算:只能是连接运算:+。得到的结果仍为一个字符串
         String str="abc";
         String str1=str+m1;//abc12345
         System.out.println(str1);

          //在字符串前面的其他数据类型做加法运算,在字符串后面的其他数据类型做连接运算
          String st1="hello";
          int myInt1=12;
          char ch1='a';//97
          System.out.println(st1+myInt1+ch1);//hello12a
          System.out.println(myInt1+ch1+st1);//109hello(int类型)
          System.out.println(ch1+st1+myInt1);//ahello12

           //"数据"等同于数据+""
          String st2="12";
          String str2=12+"";
          System.out.println(st2);
          System.out.println(str2);


        }
}

七、进制
二进制:由0,1组成,满2进1,以0b或0B开头。
十进制:由0-9组成,满10进1,。
八进制:由0-7组成,满8进1.以数字0开头表示。
十六进制:0-9及A-F,满16进1.以0x或0X开头表示。A-F不区分大小写。
原码、反码、补码
正数、负数都以补码的二进制形式储存
1、对于正数:原码、反码、补码三码合一
2、对于负数:
原码:负数符号位为1
反码:原码各个位除符号位外取反
补码:反码+1
八、运算符
1、算数运算符:+ - + - * / % ++ – +

class Test1
{
    public static void main(String[] args) 
    {
        //除:/
        int i=12;
        int j=i/5;
        double d=i/5;
        double d1=i/5.0;
        double d2=(double)i/5;
        System.out.println(j);//2
        System.out.println(d);//2.0
        System.out.println(d1);//2.4
        System.out.println(d2);//2.4

        //取模:% :取余数.结果的符号取决于被模数(被除数)
        int i1=12%5;
        int i2=-12%5;
        int i3=12%(-5);
        int i4=-12%(-5);
        System.out.println(i1);//2
        System.out.println(i2);//-2
        System.out.println(i3);//2
        System.out.println(i4);//-2

        //前++:先自加1,后做运算
        //后++:先做运算,后自加1

        int myInt1=10;
        int myInt2=++myInt1;//前++
        System.out.println(myInt1);//11
        System.out.println(myInt2);//11


        int myInt3=10;
        int myInt4=myInt3++;//后++
        System.out.println(myInt3); //11
        System.out.println(myInt4);//10

        //前--:先自减1,后做运算
        //后--:先做运算,后自减1

        int myInt5=10;
        int myInt6=--myInt5;//前--
        System.out.println(myInt5);//9
        System.out.println(myInt6);//9


        int myInt7=10;
        int myInt8=myInt7--;//后--
        System.out.println(myInt7); //9
        System.out.println(myInt8);//10

    }
}

2、赋值运算符:+= -= *= %= /=

class Test2 
{
    public static void main(String[] args) 
    {
        int i1=10;
        i1 +=3;//i1=i1+3;
        System.out.println(i1);//13

        short s=10;
        //s=s+1;//编译不通过
        s=(short)(s+1);//不建议这么做
        s +=1;//既可以实现运算,又不会更改s的数据类型
        System.out.println(s);//11

        int i2=12;
        i2 %=5;//i2=i2%5;
        System.out.println(i2);//2

        boolean b1=false;
        //区分==和=的区别。==的含义为==的两端是否相等,而=的含义为=的右端赋值给=的左端
        if(b1=true)//=的结果为爱,==的结果为恨
            System.out.println("爱");
        else
            System.out.println("恨");

        int i=1;
        i *=0.1;
        System.out.println(i);//0


    }
}

3、逻辑运算符:&逻辑与 |逻辑或 !逻辑非 && 短路与 ||短路或 ^逻辑异或

class Test3
{
    public static void main(String[] args) 
    {
        boolean a=true;
        boolean b=false;
        System.out.println(a & b);//false
        System.out.println(a && b);//false
        System.out.println(a | b);//true
        System.out.println(a || b);//true
        System.out.println(a & !b);//true
        System.out.println(a^b);//true



        //& 与 &&的区别:&:不管&的左端是true还是false,&的右端都会进行计算
        //              &&:当&&左端为false时,&&的右端不再进行计算
        //以后使用时,建议使用&&
        int i1=10;
        if(b & (i1++) > 0){
            System.out.println("今天天气很好");
            }
            else{
                System.out.println("没有下雨");//结果
                }
                System.out.println(i1);//11

         int i2=10;
         if(b && (i2++) > 0){
            System.out.println("今天天气很好");
            }
            else{
                System.out.println("没有下雨");//结果
                }
                System.out.println(i2);//10



         //|与||的区别:|:当|的左端为true还是false时,|的右端都会运算
         //            ||:当||的左端为true时,||的右端不再进行运算
         //以后使用时,建议使用||
         int i3=10;
         if(a | (i3++) > 0){
            System.out.println("今天天气很好");//结果
            }
            else{
                System.out.println("没有下雨");
                }
                System.out.println(i3);//11
         int i4=10;
         if(a || (i4++) > 0){
            System.out.println("今天天气很好");//结果
            }
            else{
                System.out.println("没有下雨");
                }
                System.out.println(i4);//10



    }
}

4、位运算符:<< >> >>> | & ~ ^

class TestBit
{
    public static void main(String[] args) 
    {

        //左移<<:移动之后右端的空位拿最高位补(正数拿0补,负数拿1补)
        int i1=31;
        System.out.println(i1<<3);//248=31*2*2*2
        System.out.println(i1<<28);//-268435456
         //右移>>:移动之后左端的空位拿最高位补(正数拿0补,负数拿1补)
        System.out.println(i1>>2);//7
        System.out.println(i1>>>2);//7
        //无符号位的右移>>>:移动之后左端的空位拿最高位补(不管正数、负数都拿0补)
        int i2=-31;
        System.out.println(i2>>2);//-8
        System.out.println(i2>>>2);//1073741816


        System.out.println(12 & 5);//4
        System.out.println(12 | 5);//13
        System.out.println(12 ^ 5);//9
        System.out.println(~12);//-13



    }
}


class TestExer1 
{
    public static void main(String[] args) 
    {
        int m=12;
        int n=5;
        System.out.println("m:  "+m+"   n: "+n);


        //方法一:提供一个临时变量


        int temp=m;
        m=n;
        n=temp;
        System.out.println("m:  "+m+"   n:  "+n);


        //方法二:当m和n较大时,有可能出现精度损失


        m=m+n;//m=12+5;
        n=m-n;//n=17-5;
        m=m-n;//m=17-12;
        System.out.println("m:  "+m+"   n:  "+n);

        //方法三:优点:没有上面两种方法的缺点。缺点:难!
        m=m^n;
        n=m^n;//(m^n)^n==m;
        m=m^n;//(m^n)^m==n;
        System.out.println("m:  "+m+"   n:  "+n);

        //60  手动的方式,从控制台输出60的十六进制
        int i=60;
       //自动调用Integer类现成的方法
        //操作

         String hex = Integer.toHexString(i);
        System.out.println(hex);//3c

        String binary = Integer.toBinaryString(i));
        System.out.println(binary);//111100

        char c ='a';
        char c1=(char)(c+2);
        System.out.println(c1);//c

        int j=i & 15;//获取到i的最低4位对应的值
        String k1=(j<=9)?j+"":(char)(j-10+'a')+"";
        System.out.println(k1);//c

        i=i>>4;
        int z=i & 15;
        String k2=(z<=9)?z+"":(char)(z-10+'a')+"";


        System.out.println(k2+k1);//3c
    }
}

5、三元运算符:(条件表达式?表达式1:表达式2;)
*要求:表达式1与表达式2为同种数据类型
既然是运算符,就一定会有运算的结果,结果的数据类型与表达式1,2的类型一致。
三元运算符在一定程度上可以与if-else互换

class TestSanYuan 
{
    public static void main(String[] args) 
    {
        int i=10;
        int j=20;
        int max=(i>j)?i:j;

        String str =(i>j)? "i大":(i == j)?"相等":"j大";

        System.out.println(max);//20
        System.out.println(str);//j大

        //互换
        if(i>=j){
            System.out.println("较小值为:"+i);
        }else{
            System.out.println("较大值为: "+j);//较大值为:20
        }
        //如何使用三元运算符,输出三个数中的较大值
        int m=12;
        int n=18;
        int t=27;
        int max1=(m>n)?m:n;
        int max2=(max1>t)?max1:t;
        System.out.println(max2);//27



    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值