首页 Java java教程 Java语言基本语法学习

Java语言基本语法学习

Jun 23, 2017 pm 02:31 PM

Java语言基本语法

一、标识符和关键字

  1. 标识符

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

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

  • java语言区分大小写

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

  • 关键字

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

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

      abstract assert boolean break byte case catch char
      class const continue default do double else enum
      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 throws transient try void
      volatile while            
    • true、false、null不是关键字,是保留字,但是仍不能用来命名标识符,保留字是java预留的关键字,在以后的升级版本中可能会作为关键字;

    二、基本数据类型

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

      

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

      


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

      3. 字符类型(2字节)


      • char ch = 'a';

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

    4. 布尔类型(1字节)


      • boolean flag = true;

    5. 默认值


      • 数值变量:0;

      • 字符变量:‘\0’;

      • 布尔变量:false;

      • 引用数据类型:null;

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


      • 自动类型转换(低 到 高)


      • 强制类型转换(高 到 低)

    public class Test003 {
        public static void main(String[] args) {
            byte b = 100;
            int i = 22;
            float f = 78.98f;
            int res = b + i + (int)f;    //此处对f使用了强制类型转换(int)f,转换后的值为78
            System.out.println("res: "+res);    //res: 200
        }
    }
    登录后复制

    三、运算符与表达式

      1. 算术运算符

    public class Test003 {    public static void main(String[] args) {        int i = 5;
            System.out.println(0/i);    //0
            System.out.println(0%i);    //0
            System.out.println(i/0);    //除数不能为零,报异常java.lang.ArithmeticException
            System.out.println(i%0);    //除数不能为零,报异常java.lang.ArithmeticException    }
    }
    登录后复制

      2. 赋值运算符

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

    public class Test003 {    public static void main(String[] args) {        int i = 5;
            System.out.println(i++);    //5
            System.out.println(++i);    //7
            System.out.println(i);    //7
            System.out.println(--i);    //6
            System.out.println(i--);    //6
            System.out.println(i);    //5    }
    }
    登录后复制

      4. 关系运算符

      5. 逻辑运算符

    public class Test003 {    public static void main(String[] args) {        boolean t = true;        boolean f = 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,反之为false
            System.out.println(!f);    //true,取反运算符    }
    }
    登录后复制

      6. 位运算符

    public class Test003 {    public static void main(String[] args) {        //在位运算符中1相当于true,0相当于false
            int b1 = 6;    //二进制为00000000 00000000 00000000 00000110
            int b2 = 11;    //二进制为00000000 00000000 00000000 00001011
            System.out.println(b1 & b2);    //按位与运算符,二进制为00000000 00000000 00000000 00000010,结果为2
            System.out.println(b1 | b2);    //按位或运算符,二进制为00000000 00000000 00000000 00001111,结果为15
            System.out.println(b1 ^ b2);    //按位异或运算符,二进制为00000000 00000000 00000000 00001101,结果为13
            System.out.println(~b1);    //按位取反运算符,二进制为11111111 11111111 11111111 11111001,结果为-7
            System.out.println(b1 << 2);    //左移位运算符,二进制为00000000 00000000 00000000 00011000,结果为24
            int b3 = -14;    //二进制为11111111 11111111 11111111 11110010
            System.out.println(b3 >> 2);    //带符号右移位运算符,二进制为11111111 11111111 11111111 11111100,结果为-4
            System.out.println(b3 >>> 2);    //无符号右移位运算符,二进制为00111111 11111111 11111111 11111100,结果为1073741820    }
    }
    登录后复制

      7. 三元运算符

    public class Test003 {
        public static void main(String[] args) {
            int a = 1;
            int b = 2;
            int c = 4;
            int res = c==a+b?++a:c>a+b?++b:++c;    //三元运算符 (表达式)?(值1):(值2),若表达式为true则取值1,反之取值2
            System.out.println(res);    //++b,结果为3
        }
    }
    登录后复制

      8. 运算符优先级

    四、数组

      1. 一维数组

    public class Test003 {    public static void main(String[] args) {        int[] i;    //声明一个整型的一维数组变量
            int ii[];    //声明一个整型的一维数组变量
            i = new int[5]; //创建一个长度为5的一维数组对象,并将变量i指向该对象
            float[] f = new float[5];    //直接创建一个长度为5的单精度浮点型一维数组对象,并将变量f指向该对象
            double[] d = {1, 2, 3.4, 4.5};    //直接初始化一个一维数组元素        
            System.out.println(d[3]);    //通过数组下标来获取数组内的元素,数组下标从0开始,结果为4.5
            System.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. 二维数组

    public class Test003 {    public static void main(String[] args) {        int[][] i;    //声明一个整型的二维数组变量
            int ii[][];    //声明一个整型的二维数组变量
            int[] iii[];    //声明一个整型的二维数组变量
            i = new int[5][2]; //创建一个长度为5的二维数组对象,并将变量i指向该对象
            float[][] f = new float[5][2];    //直接创建一个长度为5的单精度浮点型二维数组对象,并将变量f指向该对象
            double[][] d = {{1}, {2,3}, {4,5,6}, {7,8,9,10}};    //直接初始化一个二维数组元素        
            System.out.println(d[3][1]);    //通过数组下标来获取数组内的元素,数组下标从0开始,结果为8
            System.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);    //得到该数组的长度,结果为4
            System.out.println(d[2].length);    //得到二位数组内的下标为2的那个一维数组的长度    }
    }
    登录后复制

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

      1. 条件分支语句

    public class Test003 {    public static void main(String[] args) {        int[] score = new int[5];
            score[0] = -7;
            score[1] = 65;
            score[2] = 80;
            score[3] = 90;
            score[4] = 59;        for(int i=0; i<score.length; i++) {            if(score[i]>=0 && score[i]<60) {
                    System.out.println("不及格");
                }else if(score[i]>=60 && score[i]<80) {
                    System.out.println("及格");
                }else if(score[i]>=80 && score[i]<90) {
                    System.out.println("良");
                }else if(score[i]>=90 && score[i]<100) {
                    System.out.println("优");
                }else {
                    System.out.println("成绩异常");
                }
            }        
            char ch = &#39;a&#39;;        switch(ch) {    //switch括号内只支持 byte,short,int,char,enum五种数据类型,但是JDK1.7版本增加了String类型,所以相对于JDK1.7而言就是六种了
                case &#39;A&#39;:    //case为switch语句的入口,break为出口,从入口开始执行,直到遇到出口或代码执行完毕才结束
                case &#39;a&#39;:
                    System.out.println("优");                break;            case &#39;B&#39;:            case &#39;b&#39;:
                    System.out.println("良");                break;            case &#39;C&#39;:            case &#39;c&#39;:
                    System.out.println("及格");                break;            default:    //若上述条件均不匹配,则进default开始执行语句
                    System.out.println("不及格");
            }
        }
    }
    登录后复制

      2. 循环语句

    public class Test003 {    public static void main(String[] args) {        int res = 0;
            out:    //out是一个标号,告诉java从哪里开始执行程序
            for(int i=1; i<=10; i++) {            if(i==3) continue out;    //continue终止本次循环,执行下次循环
                if(i==5) break out;    //break跳出循环
                res = res + i;
            }
            System.out.println(res);    //结果为1+2+4=7
            
            int res2 = 0;        int i = 1;
            in:        do{            if(i==3) continue in;    //continue终止本次循环,执行下次循环
                if(i==5) break in;    //break跳出循环
                res2 = res2 + i;
                i++;
            }while(i<=10);
            System.out.println(res2);
        }
    }
    登录后复制

     

    以上是Java语言基本语法学习的详细内容。更多信息请关注PHP中文网其他相关文章!

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
    威尔R.E.P.O.有交叉游戏吗?
    1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    Java 中的完美数 Java 中的完美数 Aug 30, 2024 pm 04:28 PM

    Java 完美数指南。这里我们讨论定义,如何在 Java 中检查完美数?,示例和代码实现。

    Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

    Java 版 Weka 指南。这里我们通过示例讨论简介、如何使用weka java、平台类型和优点。

    Java 中的史密斯数 Java 中的史密斯数 Aug 30, 2024 pm 04:28 PM

    Java 史密斯数指南。这里我们讨论定义,如何在Java中检查史密斯号?带有代码实现的示例。

    Java Spring 面试题 Java Spring 面试题 Aug 30, 2024 pm 04:29 PM

    在本文中,我们保留了最常被问到的 Java Spring 面试问题及其详细答案。这样你就可以顺利通过面试。

    突破或从Java 8流返回? 突破或从Java 8流返回? Feb 07, 2025 pm 12:09 PM

    Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

    Java 中的时间戳至今 Java 中的时间戳至今 Aug 30, 2024 pm 04:28 PM

    Java 中的时间戳到日期指南。这里我们还结合示例讨论了介绍以及如何在java中将时间戳转换为日期。

    Java程序查找胶囊的体积 Java程序查找胶囊的体积 Feb 07, 2025 am 11:37 AM

    胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4

    如何在Spring Tool Suite中运行第一个春季启动应用程序? 如何在Spring Tool Suite中运行第一个春季启动应用程序? Feb 07, 2025 pm 12:11 PM

    Spring Boot简化了可靠,可扩展和生产就绪的Java应用的创建,从而彻底改变了Java开发。 它的“惯例惯例”方法(春季生态系统固有的惯例),最小化手动设置

    See all articles