Java 基础入门篇(二)—— Java 基础语法

news/2024/11/23 5:32:08/

文章目录

  • 一、注释
  • 二、字面量
  • 三、变量
    • 3.1 变量概述
    • 3.2 变量在计算机中的底层原理
  • 四、数据类型
  • 五、关键字、标志符
  • 六、类型转换
    • 6.1 自动类型转换
    • 6.2 表达式的自动类型转换
    • 6.3 强制类型转换
  • 七、运算符
    • 7.1 基本算数运算符
    • 7.2 + 符号做连接符
    • 7.3 自增自减运算符
    • 7.4 赋值运算符
    • 7.5 关系运算符
    • 7.6 逻辑运算符
    • 7.7 三目运算符
    • 7.8 运算符优先级
  • 八、程序流程控制
    • 8.1 顺序结构
    • 8.2 分支结构
    • 8.3 循环结构
    • 8.4 跳转关键字:break、continue
  • 补充:键盘录入技术


一、注释

  • 作用: 对程序进行解释说明的文字,不影响程序的执行。
  • 分类:
    单行注释: // 注释内容
    多行注释: /* 注释内容 */
    文档注释: /*** 注释内容*/ 
    
  • 注意: 文档注释的内容将来可以提取到程序说明书中去,且不影响程序执行的原因是编译后的 Class 文件中没有注释了。

二、字面量

  • 作用: 告诉程序员数据在程序中该怎么书写。
  • 分类:

    ① 整数、小数:生活中写法与程序中写法一样。
    ② 字符:程序中必须使用单引号围起来,里面只能一个字符。
    ③ 字符串:程序中必须双引号围起来,里面内容可以随意。
    ④ 布尔值:false,true。
    ⑤ 空值:null 以后的内容。


三、变量

3.1 变量概述

  • 作用: 内存中的一块区域,里面可以存储一个数据,存储的数据可以变化。
  • 格式: 数据类型 变量名称 = 初始值;
  • 赋值: 从右边往左执行。
  • 注意事项:

    ① 变量必须先声明才能使用
    ② 什么类型的变量只能存放什么类型的数据
    ③ 变量从定义开始到 } 有效,同一个有效范围内不能定义重名的变量。
    ④ 变量定义的时候可以没有初始值,但是使用前必须有初始值。


3.2 变量在计算机中的底层原理

在这里插入图片描述


四、数据类型

  • 定义变量: 数据类型 变量名称 = 初始值;
  • 作用: 约束变量只能存储什么类型的数据,帮助定义出不同类型的变量。
  • 分类: 引用数据类型、基本数据类型。引用数据类型包含String等,基本数据类型内存等信息如下:
    在这里插入图片描述
  • 注意事项:
    随便写整数字面量,默认是 int 类型,想当成 long 类型后面加 L 或 l ;
    随便写小数字面量,默认是 double 类型,想当成 float 类型后面加 F 或 f
    如:Long b = 1234567899008343; b 是 long 型,但字面量123… 超过了整型的范围,因此会报错
        Long b = 1234567899008343L; 这样则不会报错

五、关键字、标志符

  • 关键字: java自己使用的,我们不能拿来取名字。
  • 标志符: 就是我们取的名字,其规则:不能数字开头,不能用关键字,区分大小写。

六、类型转换

开发中会存在不同类型的变量或者数据赋值给其他类型的变量,也存在不同类型的数据一起运算,其结果类型要确定下来。

6.1 自动类型转换

  • 原理: 小范围类型的变量可以直接赋值给大范围类型的变量

  • 范围信息:
    在这里插入图片描述

  • 举例: 这里在给 sh 赋值时,JVM 首先将变量 b 的值转换成 short 类型然后再赋值给 sh。

    byte b = 11;   // 00001011
    short sh = b;  // 00000000 00001011 
    
  • 注意这种形式是可以的:

    char ch = 'a';
    int code  = ch; // 97
    

6.2 表达式的自动类型转换

  • 含义: 在表达式中,小范围类型的变量会自动提升成大范围运算。

  • 结论: 表达式的最终结果数据类型是由表达式中最高数据类型决定的。

  • 注意: byte short char 在表达式中,是直接提升成int运算的。

    byte a = 10;
    int b = 20;
    double c = 1.0;
    int rs1 = a + b + c;  // 报错,最高类型是 double,应用 double 接收
    double rs2 = a + b + c;  // 不报错
    
    byte i = 10;
    byte j = 20;
    byte k1 = i + j; // 报错,byte 在表达式中直接转换成 int 类型参与运算。
    int k2 = i + j;  // 不报错
    
  • 面试笔试题:

    byte b1 = 21;  byte b2 = 22;      
    byte b3 = b1 + b2 ; // 错误形式
    int  b3 = b1 + b2 ; // 不报错
    byte b3 = (byte) (b1 + b2); // 不报错
    

6.3 强制类型转换

  • 含义: 大范围类型的变量或者数据不能直接赋值给小范围类型的变量,否则报错!必须进行强制类型转换才可以。

  • 格式: 数据类型 变量 = (数据类型) 其他类型的变量 / 数据

  • 注意: 强制类型转换可能出现数据丢失。
    在这里插入图片描述

  • 注意: 浮点型类型的变量或者数据强制转换成整型,保留整数部分返回的,小数部分直接不要了。

    double a = 99.5;
    int  i = (int)a; // 99
    

七、运算符

7.1 基本算数运算符

  • 常见的算数运算符: + - * / %
  • 注意:/ 两个整数相除的结果一定是整数,可以先乘1.0,转换为浮点类型。
    10 / 3 = 3
    1.0 * 10 / 3 = 3.333....
    

7.2 + 符号做连接符

  • 场景:+ 符号与字符串一起运算时,充当连接符,连接后的结果还是一个字符串。
  • 识别技巧:从左到右,能算则算,不能算大家连在一起。
    在这里插入图片描述

7.3 自增自减运算符

在这里插入图片描述


7.4 赋值运算符

在这里插入图片描述


7.5 关系运算符

在这里插入图片描述


7.6 逻辑运算符

在这里插入图片描述


7.7 三目运算符

格式:条件表达式 ? 值1:值2


7.8 运算符优先级

运算符存在谁先谁后执行的情况:
( ) 优先级最高;*/ 高于 ±&& 优先级高于 ||


八、程序流程控制

8.1 顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。


8.2 分支结构

  • if:可以判断条件来决定执行哪个分支,格式如下:
    在这里插入图片描述

  • switch:根据表达式的值来进行值匹配选择对应的分支执行,格式如下:
    在这里插入图片描述

  • if 和 switch 的区别:if 的功能更强大,适合做区间匹配。如果是值匹配的操作建议用switch,格式清晰,性能较好。

  • switch的注意事项
    表达式类型支持 byte、short、int、char、String,还有枚举。不支持double、float、long
    case 给出的值不允许重复,且只能是字面量,不能是变量
    不要忘记写break,否则会出现 穿透现象


8.3 循环结构

作用:控制一段代码重复的执行多次。

  • for 循环:
    在这里插入图片描述

  • while 循环
    在这里插入图片描述

  • do-while 循环:一定会执行一次循环体语句!再判断循环条件
    在这里插入图片描述


8.4 跳转关键字:break、continue

break:跳出并结束当前所在循环的执行。只能用于结束所在循环,或者结束所在 switch 分支的执行。
continue:用于跳出当前循环的当次执行,进入下一次循环。只能在循环中进行使用。


补充:键盘录入技术

在这里插入图片描述


文章参考:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)


http://www.ppmy.cn/news/57127.html

相关文章

3_docker应用部署:MySQL-Tomcat-Nginx-Redis

Docker 应用部署入门 一、部署MySQL 案例需求:在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server。 分析: 容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和容器可以直接通信 当容器中的网…

【华为校招真题】分配资源ID 100% C++

【华为校招真题】分配资源ID 100% C++ 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入、print/…

dc-6靶机

1.使用nmap进行信息搜集,存活主机,端口 192.168.85.184是存活主机,发现开放22,80端口 2.访问192.168.85.184的80端口 发现被重定向了,修改hosts文件 vim /etc/hosts 添加一行 192.168.85.174 wordy3.对网站进行信息搜…

Golang中sync.Pool详解及使用方法

什么是sync.Pool? sync.Pool是用来保存可以被重复使用的临时对象,以便在以后的同类操作中可以重复使用,从而避免了反复创建和销毁临时对象带来的消耗以及对GC造成的压力。常用池化技术来提高程序的性能,例如连接池、线程池等。sy…

C/C++文件操作/IO流

学习任务: ⭐认识文件。⭐学习C语言中文件如何打开和关闭。⭐学习C语言中文件的读写方法(包括顺序读写和随机读写)。⭐学习C语言文件操作中如何判断文件读取结束。⭐简单了解FILE缓冲区。⭐认识流。⭐学习C的IO流,包括标准IO流和文…

Java学习(韩顺平670-675)

目录 在我看来,我们在Java需要不断封包的原因就是为了使用不同类库中自己所需的方法,我们才要进行封装的,你怎么看? 你好,什么叫做关闭外层流 关于字符流要求 服务端/客户端 TCP网络通信编程//●//应用案例4 TCPFil…

QT+OpenCV配置

QTOpenCV配置 1 下载CMake2 安装CMake3 下载OPenCV4 配置环境变量4.1 配置QT环境变量4.2 配置CMake环境变量4.3 重启电脑生效 5 CMake编译OPenCV5.1 解决报错 6 测试 1 下载CMake 链接:https://cmake.org/download/ 2 安装CMake 3 下载OPenCV 链接:htt…

Java中Stream流式计算的用法详解

Java中Stream流式计算的用法详解 在Java 8之后,引入了Stream API,它是一个函数式编程的思想,其主要作用是将集合Stream化,可以使用一条语句对集合进行过滤、排序、统计等多种操作。接下来我们将详细介绍Java中Stream流式计算的用…