Java基础语法Ⅰ【注释、关键字、字面量、变量】

Java基础语法①

注释

注释是在写代码时,对代码作出的一些解释说明,比如某一个函数的作用(功能)、函数接收的参数以及函数返回什么东西等等。 这些解释说明没有任何功能,编译器编译的时候也会直接忽略注释。

注释有三种类型【图源:B站黑马程序员java入门到精通课程】:

  • 单行注释://注释信息两个斜杠,后面是注释信息;换行以后如果还要注释需要打新的"//";
  • 多行注释:/* 注释信息 随意换行 */,多行注释顾名思义,就是可以写很多行的注释(hhhhhhh),以/*开始,以*/结束;
  • 文档注释:以 /** 开始,*/ 结束,用于生成文档。这种注释通常用于类、方法和变量的说明;文档注释的格式通常包含一些特定的标签,如 @param 用于描述方法参数,@return 用于描述返回值,@throws 用于描述可能抛出的异常等等,这些标签有助于生成清晰的API文档,以便其他开发者能够更好地理解和使用你的代码。
java 复制代码
/**  
 * 这是一个简单的方法  
 * @param x 参数 x  
 * @return 返回结果  
 */  
public int myMethod(int x) {  
    return x * 2;  
}  

关键字与标识符

  • 关键字(Keywords):

关键字是编程语言预定义的单词 ,具有特殊含义,用于表示语言结构、控制流程、数据类型等。在Java中,关键字是被保留的单词,不能用作标识符(如变量名、方法名等)。例如,在Java中,publicclassvoid等都是关键字。

  • 标识符(Identifiers):

标识符是程序员定义的用于表示变量、常量、函数、类等的名称。标识符可以由字母、数字、下划线美元符号 组成,但必须以字母、下划线或美元符号开头 。不能以数字开头;不能使用关键字作为标识符(会冲突)。例如,在Java中,变量名myVariable、方法名calculateTotal等都是标识符。

二者的关联、区别如下:

1、含义:关键字是编程语言预定义的单词,具有特殊含义;而标识符是程序员定义的用于表示各种元素名称的字符序列。

2、用途:关键字用于表示语言结构、控制流程、数据类型等;标识符用于命名变量、常量、函数、类等。

3、限制:关键字是被保留的,不能用作标识符;标识符则是由程序员自定义的,不能与关键字相同。

总的来说,关键字是编程语言的一部分,具有预定义的含义和用途;而标识符是程序员在编写代码时定义的名称,用于表示各种元素。

数据类型

在说到下面的变量、常量之前,还是要先说一下这个Java中的数据类型。因为不管是变量还是常量,其目的都是为了声明一块内存空间存储一个值,常量和变量的区别只是这个值能不能改变 而已。前面这句话的一个重点是"存储一个值",那个这个值是什么类型呢,就需要先学习一下这个数据类型。

我们学数学的时候,一开始学什么?正整数,1,2,3,4,5......,然后我们才知道有负数;之后我们知道有小数、实数虚数、有理数无理数...... 我们知道计算机能够理解的实际上只是0/1比特是吧,不管是整数还是浮点数(小数),在计算机中都会以某种编码格式编程0/1比特串存储起来。实际上,我们说话用到的字母、句子,计算机想要理解也是需要转换成0/1比特串的,这些字母、句在Java(或者其他编程语言中)中被称之为字符、字符串。

java中的数据类型可以分为基本数据类型引用数据类型,后者涉及到引用,后面再细说吧吧吧吧吧(我也没有搞明白呜呜呜)。先来看看基本数据类型吧:

数据类型 关键字 取值范围 占用内存
整数 byte -127 ~ 128 (-2^7 ~2^7-1) 1 Byte
整数 short -32768 ~ 32767 (-2^15 ~2^15-1) 2 Byte
整数 int -2^31 ~2^31-1 4 Byte
整数 long -2^63 ~2^63-1 8 Byte
浮点数 float 后续解释 4 Byte
浮点数 double 后续解释 8 Byte
字符 char 0 ~ 65535 2 Byte
布尔 boolean true,false 1 Byte
java 复制代码
public class Main {
    public static void main(String[] args) {
        //byte
        byte a = 20;
        System.out.println(a);
        //short
        short b = 10;
        System.out.println(b);
        //int
        int c = 10;
        System.out.println(c);
        //long
        long d = 20L;
        //注意需要L后缀
        System.out.println(d);

        //float
        float e = 15.5f;
        //注意需要一个f后缀
        System.out.println(e);

        //double
        double f = 20.5;
        System.out.println(f);

        //boolean
        boolean g = true;
        System.out.println(g);

        //char
        char h = 'A';
        System.out.println(h);
    }
}

在Java中,浮点数的编码方式遵循IEEE 754标准。这个标准定义了单精度浮点数(float)和双精度浮点数(double)的表示方法。

  • 单精度浮点数(float):
    符号位:1位,表示正负号。
    指数位:8位,用于表示指数部分。
    尾数位:23位,用于表示尾数部分。
  • 双精度浮点数(double):
    符号位:1位,表示正负号。
    指数位:11位,用于表示指数部分。
    尾数位:52位,用于表示尾数部分。

这种编码方式允许浮点数在计算机中以二进制形式表示,同时保留了一定的精度和范围。 后续复习计算机组成原理相关内容的时候再来讨论,float、double两种浮点数所能表示的数据范围!

我们常用的数组、字符串String,其实都是引用类型的数据结构,后续我学会了再总结!!!

字面量和常量

  • 字面量(Literals) 是指在程序中直接表示数值、字符串或者其他数据类型的值。它们是程序中的固定值,不会改变。在Java中,一些常见的字面量包括整数字面量(如 5)、浮点数字面量(如 3.14)、布尔型字面量(如 truefalse)、字符串字面量(如 "Hello")、字符变量(如'a')等。
java 复制代码
public class Main {
    public static void main(String[] args) {
        // 字面量的输出-整数
        System.out.println(123);
        System.out.println(-456);
        // 字面量的输出---浮点数
        System.out.println(3.14);
        System.out.println(-2.718);
        // 字面量的输出---布尔值
        System.out.println(true);
        System.out.println(false);
        // 字面量的输出---字符
        System.out.println('A');
        System.out.println('中');
        // 字面量的输出---字符串
        System.out.println("Hello, world!");
        System.out.println("你好,世界!");
    }
}
  • 常量(Constants) 是程序中用于存储固定值的标识符,其值在程序执行期间不会改变。在Java中,可以使用 final 关键字来定义常量。例如:final int MAX_VALUE = 100;。在这里,MAX_VALUE 是一个常量,它的值被设定为100,并且在程序执行期间不会改变(补充,在C、C++中用const关键字定义常量)。

    final定义一个常量以后,其值是不可更改的👇

  • 区别:

    字面量是数据的值本身,在代码中直接出现;常量是用于存储这些固定值的符号名称。

    字面量是固定的值;常量也是固定的值,但它们是通过符号名称来引用的。

    因此,字面量可以是常量的一种形式,但不是所有的字面量都是常量。常量是一种具有符号名称的固定值,而字面量是程序中直接出现的值。

变量

变量,顾名思义,就是一个值可以变化 的标识符。底层一点的解释,就是用一个标识符(变量名)来命名一块内存空间 ,之后这个内存空间存储的具体值就是这个变量的值,当然这个内存空间中存储的值是可以变化的。变量的声明规则是type variableName = value; ,即需要说明这个内存空间内存储的数据类型是什么,比如float、int、boolean(实际上编译器根据这个类型来分配对应大小的空间),需要说明这个内存空间的名字,以及需要给它一个初始化的值【使用之前必须要赋值(初始化)!!!】。

转义字符

当编写字符串或字符字面量时,有时需要表示一些特殊字符,如换行符、制表符、引号等。然而,直接键入这些字符可能会导致编译器误解你的意图。为了解决这个问题,编程语言引入了转义字符的概念。

转义字符是由反斜杠(\)紧跟着一个字符组成的序列。当编译器遇到一个反斜杠时,它会检查反斜杠后面的字符,并根据这个字符的不同来采取相应的行动。这个过程称为转义序列的解析。

在Java中,一些常见的转义字符包括:

\n:换行符
\t:制表符
\r:回车符
\\:反斜杠
\':单引号
\":双引号
\b:退格
\f:换页

例如,要在一个字符串中表示换行符,你可以使用 \n。这样编译器就知道你希望在那个位置插入一个换行符。

总的来说,转义字符允许你在字符串中表示那些在源代码中难以输入或者不可见的字符,从而使得程序能够正确地解释和显示这些特殊字符。

相关推荐
Yvemil74 分钟前
《开启微服务之旅:Spring Boot 从入门到实践》(三)
java
Anna。。6 分钟前
Java入门2-idea 第五章:IO流(java.io包中)
java·开发语言·intellij-idea
.生产的驴27 分钟前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
爱上语文29 分钟前
宠物管理系统:Dao层
java·开发语言·宠物
王ASC1 小时前
SpringMVC的URL组成,以及URI中对/斜杠的处理,解决IllegalStateException: Ambiguous mapping
java·mvc·springboot·web
是小崔啊1 小时前
开源轮子 - Apache Common
java·开源·apache
因我你好久不见1 小时前
springboot java ffmpeg 视频压缩、提取视频帧图片、获取视频分辨率
java·spring boot·ffmpeg
程序员shen1616111 小时前
抖音短视频saas矩阵源码系统开发所需掌握的技术
java·前端·数据库·python·算法
Ling_suu2 小时前
SpringBoot3——Web开发
java·服务器·前端
天使day2 小时前
SpringMVC
java·spring·java-ee