专栏首页linux基础Java的基本语法。

Java的基本语法。

一、标识符和关键字

标识符

在java语言中,用来标志类名、对象名、变量名、方法名、类型名、数组名、包名的有效字符序列,称为“标识符”;

标识符由字母、数字、下划线、美元符号组成,且第一个字符不能是数字;

java语言区分大小写;

标志符命名规则:类名首字母大写,变量名和方法名采用驼峰标志法,常量全大写,多个单词之间用“_”隔开,包名全小写;

关键字

在java语言中,有一些专门的词汇已经被赋予了特殊的含义,不能再使用这些词汇来命名标识符,这些专有词汇,称为“关键字”;

java有50个关键字和3个保留字,均不能用来命名标识符;

abstract  boolean   break  byte  case    catch   char

class    const   continue   default   do   double     elseenum

extends   final   finally    float   for    goto     if      implements

import    instanceof   int    interface   long   native  new   package

private   protected   public   return   short    static   strictfp      super

switch    synchronized    this     throw   throw    stransient   try    void

volatile       while      

true、false、null不是关键字,是保留字,但是仍不能用来命名标识符,保留字是java预留的关键字,在以后的升级版本中可能会作为关键字;想了解更多加QQ群764261140

二、基本数据类型

  1. 整数类型(int为默认类型)

  2. 浮点类型(double为默认类型)

在给float类型的变量赋值时,如果赋的值有小数部分则一定要在末尾加上“F”或“f”;

  3. 字符类型(2字节)

char ch = 'a';

有些字符不能通过键盘输入到程序当中,这时就需要使用到转义字符;

4. 布尔类型(1字节)

boolean flag = true;

5. 默认值

数值变量:0;

字符变量:‘\0’;

布尔变量:false;

引用数据类型:null;

6. 不同数据类型之间的转换

自动类型转换(低 到 高)

强制类型转换(高 到 低)

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        byteb = 100;

        inti = 22;

        floatf = 78.98f;

        intres = b + i + (int)f;//此处对f使用了强制类型转换(int)f,转换后的值为78System.out.println("res: "+res);//res: 200    }

}

三、运算符与表达式想了解更多加QQ群764261140

  1. 算术运算符

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        inti = 5;

        System.out.println(0/i);//0System.out.println(0%i);//0System.out.println(i/0);//除数不能为零,报异常java.lang.ArithmeticExceptionSystem.out.println(i%0);//除数不能为零,报异常java.lang.ArithmeticException    }

}

  2. 赋值运算符

  3. 自增自减运算符(++,--)

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        inti = 5;

        System.out.println(i++);//5System.out.println(++i);//7System.out.println(i);//7System.out.println(--i);//6System.out.println(i--);//6System.out.println(i);//5    }

}

  4. 关系运算符

  5. 逻辑运算符

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        booleant =true;

        booleanf =false;

        System.out.println(t && f);//false,短路与运算符,若运算符左侧为false则不计算右侧的表达式System.out.println(t || f);//true,短路或运算符,若运算符左侧为true则不计算右侧的表达式System.out.println(t & f);//false,与运算符,不管左侧是否为false都要计算右侧的表达式System.out.println(t | f);//true,或运算符,不管左侧是否为true都要计算右侧的表达式System.out.println(t ^ f);//true,异或运算符,只要左右两侧不相同则为true,反之为falseSystem.out.println(!f);//true,取反运算符    }

}

  6. 位运算符

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        //在位运算符中1相当于true,0相当于falseintb1 = 6;//二进制为00000000 00000000 00000000 00000110intb2 = 11;//二进制为00000000 00000000 00000000 00001011System.out.println(b1 & b2);//按位与运算符,二进制为00000000 00000000 00000000 00000010,结果为2System.out.println(b1 | b2);//按位或运算符,二进制为00000000 00000000 00000000 00001111,结果为15System.out.println(b1 ^ b2);//按位异或运算符,二进制为00000000 00000000 00000000 00001101,结果为13System.out.println(~b1);//按位取反运算符,二进制为11111111 11111111 11111111 11111001,结果为-7System.out.println(b1 << 2);//左移位运算符,二进制为00000000 00000000 00000000 00011000,结果为24intb3 = -14;//二进制为11111111 11111111 11111111 11110010System.out.println(b3 >> 2);//带符号右移位运算符,二进制为11111111 11111111 11111111 11111100,结果为-4System.out.println(b3 >>> 2);//无符号右移位运算符,二进制为00111111 11111111 11111111 11111100,结果为1073741820    }

}

  7. 三元运算符

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        inta = 1;

        intb = 2;

        intc = 4;

        intres = c==a+b?++a:c>a+b?++b:++c;//三元运算符 (表达式)?(值1):(值2),若表达式为true则取值1,反之取值2System.out.println(res);//++b,结果为3    }

}

8. 运算符优先级

四、数组

  1. 一维数组

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        int[] i;//声明一个整型的一维数组变量intii[];//声明一个整型的一维数组变量i =newint[5];//创建一个长度为5的一维数组对象,并将变量i指向该对象float[] f =newfloat[5];//直接创建一个长度为5的单精度浮点型一维数组对象,并将变量f指向该对象double[] d = {1, 2, 3.4, 4.5};//直接初始化一个一维数组元素       

        System.out.println(d[3]);//通过数组下标来获取数组内的元素,数组下标从0开始,结果为4.5System.out.println(f[0]);//当创建出一个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0

        //System.out.println(i[5]);    //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常java.lang.ArrayIndexOutOfBoundsException(数组下标越界)

        //System.out.println(ii[0]);    //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错System.out.println(d.length);//得到该数组的长度,结果为4    }

}

  2. 二维数组

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        int[][] i;//声明一个整型的二维数组变量intii[][];//声明一个整型的二维数组变量int[] iii[];//声明一个整型的二维数组变量i =newint[5][2];//创建一个长度为5的二维数组对象,并将变量i指向该对象float[][] f =newfloat[5][2];//直接创建一个长度为5的单精度浮点型二维数组对象,并将变量f指向该对象double[][] d = {{1}, {2,3}, {4,5,6}, {7,8,9,10}};//直接初始化一个二维数组元素       

        System.out.println(d[3][1]);//通过数组下标来获取数组内的元素,数组下标从0开始,结果为8System.out.println(f[0][0]);//当创建出二个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0

        //System.out.println(i[5][0]);    //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常java.lang.ArrayIndexOutOfBoundsException(数组下标越界)

        //System.out.println(ii[0][0]);    //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错System.out.println(d.length);//得到该数组的长度,结果为4System.out.println(d[2].length);//得到二位数组内的下标为2的那个一维数组的长度    }

}

五、流程控制语句(if,switch,for,while,do...while)

  1. 条件分支语句

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        int[] score =newint[5];

        score[0] = -7;

        score[1] = 65;

        score[2] = 80;

        score[3] = 90;

        score[4] = 59;

        for(inti=0; i

            if(score[i]>=0 && score[i]<60) {

                System.out.println("不及格");

            }elseif(score[i]>=60 && score[i]<80) {

                System.out.println("及格");

            }elseif(score[i]>=80 && score[i]<90) {

                System.out.println("良");

            }elseif(score[i]>=90 && score[i]<100) {

                System.out.println("优");

            }else {

                System.out.println("成绩异常");

            }

        }

        charch = 'a';

        switch(ch) {//switch括号内只支持 byte,short,int,char,enum五种数据类型,但是JDK1.7版本增加了String类型,所以相对于JDK1.7而言就是六种了case'A'://case为switch语句的入口,break为出口,从入口开始执行,直到遇到出口或代码执行完毕才结束case'a':

                System.out.println("优");

                break;

            case'B':

            case'b':

                System.out.println("良");

                break;

            case'C':

            case'c':

                System.out.println("及格");

                break;

            default://若上述条件均不匹配,则进default开始执行语句System.out.println("不及格");

        }

    }

}

  2. 循环语句

publicclass Test003 {

    publicstaticvoid main(String[] args) {

        intres = 0;

        out:    //out是一个标号,告诉java从哪里开始执行程序for(inti=1; i<=10; i++) {

            if(i==3)continueout;//continue终止本次循环,执行下次循环if(i==5)breakout;//break跳出循环res = res + i;

        }

        System.out.println(res);    //结果为1+2+4=7intres2 = 0;

        inti = 1;

        in:

        do{

            if(i==3)continuein;//continue终止本次循环,执行下次循环if(i==5)breakin;//break跳出循环res2 = res2 + i;

            i++;

        }while(i<=10);

        System.out.println(res2);

    }

}

想了解更多加QQ群764261140

原文链接:https://www.cnblogs.com/fendoudeya/p/j2se_java01.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java的位运算符详解实例。

    位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主...

    7537367
  • python数据库编程。

    http://www.makeru.com.cn/live/5020_2051.html?s=165154

    7537367
  • C语言必背的18个经典程序。

    7537367
  • torch.utils.data.DataLoader()

    数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集。在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据。直至把所有的数据...

    于小勇
  • 【小家java】final修饰的变量真的不可变吗?

    这可能是大家的一个共识:如果我们希望这个变量不可变,我们可以用final进行修饰。但本篇将带你深入了解不变的含义,我相信可以让你更深的了解final的原理,也能...

    YourBatman
  • ES6的扩展运算符(...)---数组篇

    哈喽,大家好,又一周过去了,时间过得好快,各位宝宝这一周有没有进步呢?有没有更了解自己呢?嗯哼,我有点心虚……o(╯□╰)o

    用户3258338
  • 【Java】基础07:常量、变量和数据类型

    刘小爱
  • Ubuntu16.04下安装QQ的完整操作记录(经验证可用)

    本机安装了Ubuntu16.04系统,用于日常运维办公。打算在Ubuntu上安装QQ,如下操作记录也使用于Ubuntu18.04:

    洗尽了浮华
  • Java 数据类型

    静默虚空
  • 聊聊jdbc statement的fetchSize

    对于查询数据量大的场景下,非常有必要设置fetchSize,否则全量拉取很容易OOM,但是使用fetchSize的时候,要求数据能够在遍历resultSet的时...

    codecraft

扫码关注云+社区

领取腾讯云代金券