Java 基础入门 | 第二章 Java语言语法

简介: Java 基础入门 | 第二章 Java语言语法

Java 标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

关于 Java 标识符,有以下几点需要注意:

    • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
    • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
    • 关键字不能用作标识符
    • 标识符是大小写敏感的(区分大小写)

    合法标识符举例:age、$salary、_value、__1_value

    非法标识符举例:123abc、-salary

    Java 关键字

    有一些专门的词汇,Java语言已经赋予了特定的含义,只能用于特定的地方。所以程序员在编写程序时,不能再使用这些词汇来命名标识符,不能改变这些词汇的含义。

    下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。

    类别 关键字 说明
    访问控制 private 私有的
    protected 受保护的
    public 公共的
    default 默认
    类、方法和变量修饰符 abstract 声明抽象
    class
    extends 扩充,继承
    final 最终值,不可改变的
    implements 实现(接口)
    interface 接口
    native 本地,原生方法(非 Java 实现)
    new 新,创建
    static 静态
    strictfp 严格,精准
    synchronized 线程,同步
    transient 短暂
    volatile 易失
    程序控制语句 break 跳出循环
    case 定义一个值以供 switch 选择
    continue 继续
    default 默认
    do 运行
    else 否则
    for 循环
    if 如果
    instanceof 实例
    return 返回
    switch 根据值选择执行
    while 循环
    错误处理 assert 断言表达式是否为真
    catch 捕捉异常
    finally 有没有异常都执行
    throw 抛出一个异常对象
    throws 声明一个异常可能被抛出
    try 捕获异常
    包相关 import 引入
    package
    基本类型 boolean 布尔型
    byte 字节型
    char 字符型
    double 双精度浮点
    float 单精度浮点
    int 整型
    long 长整型
    short 短整型
    变量引用 super 父类,超类
    this 本类
    void 无返回值
    保留关键字 goto 是关键字,但不能使用
    const 是关键字,但不能使用

    注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。保留关键字是现在没有特殊含义,将来有可能被赋予特殊含义的词汇:goto  const

    常量与变量

    什么是常量?

    常量指在程序执行期间其值不能发生变化的数据。 如:整数123,小数1.23,字符’A’,布尔常量 true、false、PI=3.1415926等。

    什么是变量?

    变量是指值在程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”。要在程序中声明一个变量,其语法形式如下:

        变量类型  变量标识符;

     如:String name;

    数据类型

    在声明变量时,要指明变量的类型。不同的类型在内存中分配的空间大小也不同。

    下图是Java数据类型的分类表:

     

    image.gif编辑

    基本数据类型(8种)

      • 整数类型(byte 、short、int、long)
      • 浮点数类型(float、double)
      • 布尔类型(boolean)
      • 字符类型(char)

      代码示例

      示例一 整数类型

      public class TestType1 {
          public static void main(String[] args) {
              byte b=123;
              short s=30000;
              int i=12; //十进制
              int i8=012;//八进制
              int i16=0x12;//十六进制
              long l1=1000L;
              long l2=1000l;
              long l3=1000;
              System.out.println(b); //123
              System.out.println(s); //30000
              System.out.println(i); //12
              System.out.println(i8); //10
              System.out.println(i16); //16
              System.out.println(l1); //1000
              System.out.println(l2); //1000
              System.out.println(l3); //1000
          }
      }

      image.gif

      示例二  浮点数类型

      public class TestType2 {
          public static void main(String[] args) {
              float f=100;
              float f1=100f;
              float f2=100F;
              double d=2000f;
              double d0=2000F;
              double d1=2000;
              double d2 =2000d;
              double d3 =2000D;
              System.out.println(f); //100.0
              System.out.println(f1); //100.0
              System.out.println(f2); //100.0
              System.out.println(d); //2000.0
              System.out.println(d0); //2000.0
              System.out.println(d1); //2000.0
              System.out.println(d2); //2000.0
              System.out.println(d3); //2000.0
          }
      }

      image.gif

      示例三  布尔类型 和 字符类型

      public class TestType3 {
          public static void main(String[] args) {
              boolean b=true;
              boolean b1=false;
              char  c='a'; //任意单个字符,加单引号
              char c1='1'; //任意单个字符,加单引号
              char c2='你'; //任意单个中文字,加单引号
              char c3=65; //整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。
              System.out.println(b); //true
              System.out.println(b1);  //false
              System.out.println(c); //a
              System.out.println(c1); //1
              System.out.println(c2); //你
              System.out.println(c3); //A
          }
      }

      image.gif

      部分 ASCII 字符编码表展示

      image.gif编辑

      类型转换

      自动类型转换(也叫隐式类型转换)  

      把小数据存储到大容器中,小数据会自动提升为大类型的数据,byte short char转int   float转double。 所有的整数都可以自动转换为浮点类型,所有的byte型、short型和char的值将被提升到int型。

      强制类型转换(显式也叫类型转换)

      大数据存储到小类型容器中,必须强制转换,比如 int 转short ,double 转float。

        代码示例

      double d=123.456;
        int i=(int)d;

      image.gif

      思考

      char  c = 'A';
      char  b = c+1;//错误
      char  b = (char)(c+1);//正确

      image.gif

      运算符

      运算符的定义

      运算符是一种特殊符号,用以表示数据的运算、赋值和比较。

      运算符的分类

        • 算术运算符
        • 赋值运算符
        • 比较运算符  
        • 逻辑运算符  
        • 位运算符
        • 三目(条件)运算符

        算数运算符

        image.gif编辑

        赋值运算符

        代码示例

        int x=20;
        int y=x+1;
        int x=x+20;
        x+=20;
        x-=20;
        x=x-20;

        image.gif

        image.gif编辑

        比较运算符

        总共有大于、小于、小于等于、大于等于、等于、不等于6种。

        >  、 < 、 <=、>=、==、!=

        image.gif

        比较运算符的结果都是boolean型,也就是true或false。
        比较运算符 == 不能误写成 = ,切记!切记!

        逻辑运算符

        逻辑运算符的结果都是boolean型,也就是要么是true,要么是false

        image.gif编辑

        位运算符

        Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

        位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:

        A = 0011 1100
        B = 0000 1101
        -----------------
        A&B = 0000 1100
        A | B = 0011 1101
        A ^ B = 0011 0001
        ~A= 1100 0011

        image.gif

        下表列出了位运算符的基本运算,假设整数变量 A 的值为 60 和变量 B 的值为 13:

        操作符 描述 例子
        如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
        | 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
        ^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
        按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
        <<  按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
        >>  按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
        >>>  按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

        实例

        下面的简单示例程序演示了位运算符。复制并粘贴下面的Java程序并保存为Test.java文件,然后编译并运行这个程序:

        Test.java 文件代码:

        public class Test {
          public static void main(String[] args) {
             int a = 60; /* 60 = 0011 1100 */ 
             int b = 13; /* 13 = 0000 1101 */
             int c = 0;
             c = a & b;       /* 12 = 0000 1100 */
             System.out.println("a & b = " + c );
             c = a | b;       /* 61 = 0011 1101 */
             System.out.println("a | b = " + c );
             c = a ^ b;       /* 49 = 0011 0001 */
             System.out.println("a ^ b = " + c );
             c = ~a;          /*-61 = 1100 0011 */
             System.out.println("~a = " + c );
             c = a << 2;     /* 240 = 1111 0000 */
             System.out.println("a << 2 = " + c );
             c = a >> 2;     /* 15 = 1111 */
             System.out.println("a >> 2  = " + c );
             c = a >>> 2;     /* 15 = 0000 1111 */
             System.out.println("a >>> 2 = " + c );
          }
        }

        image.gif

        以上实例编译运行结果如下:

        a & b = 12
        a | b = 61
        a ^ b = 49
        ~a = -61
        a << 2 = 240
        a >> 2  = 15
        a >>> 2 = 15

        image.gif

        三目运算符

        三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。

        语法格式

        boolean x = (条件判断) ? value1 : value2;

        image.gif

        例子

        boolean x=1>2?true:false;
                int x1=5>2?1:0;
                char x2=2==1?'t':'f';

        image.gif

        表达式

        使用运算符将运算数据连接起来的符合Java语法规则的式子。

        如 x = y + z; c=a*b;  等

        新手有不明白的地方,请在评论区留言,大佬有发现部队的地方,请在评论区留言!!!

        相关文章
        |
        14天前
        |
        监控 安全 Java
        Java中的多线程编程:从入门到实践####
        本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
        |
        19天前
        |
        SQL 安全 Java
        安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
        在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
        37 4
        |
        20天前
        |
        Java 大数据 API
        14天Java基础学习——第1天:Java入门和环境搭建
        本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
        |
        24天前
        |
        安全 Java 调度
        Java中的多线程编程入门
        【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
        32 1
        |
        存储 算法 Java
        Java8语法最佳实践-什么是对象(上)
        计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
        164 0
        Java8语法最佳实践-什么是对象(上)
        |
        存储 安全 Java
        Java8语法最佳实践-什么是对象(下)
        计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
        98 0
        |
        11天前
        |
        Java 开发者
        Java多线程编程中的常见误区与最佳实践####
        本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
        |
        2天前
        |
        缓存 Java 开发者
        Java多线程编程的陷阱与最佳实践####
        本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
        |
        1天前
        |
        安全 Java 开发者
        Java中的多线程编程:从基础到实践
        本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
        17 1
        |
        9天前
        |
        安全 Java 开发者
        Java 多线程并发控制:深入理解与实战应用
        《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。