当前位置: 首页 > article >正文

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

文章目录

  • 一、注释
  • 二、字面量
  • 三、变量
    • 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.kler.cn/a/16084.html

相关文章:

  • 酒水分销积分商城小程序开发方案php+uniapp
  • 【算法】二分查找
  • 【Vue】Vue3.0(二十四)Vue3.0中$refs 、$parent 的概念和使用场景
  • 用 Python 从零开始创建神经网络(三):添加层级(Adding Layers)
  • 二分查找--快速地将搜索空间减半
  • C++内存池实现
  • 作为一名8年测试工程师,因为偷偷接私活被····
  • HR website
  • SOFA Weekly|SOFAArk 社区会议预告、Layotto 社区会议回顾、社区本周贡献
  • 操作系统——死锁
  • go破冰之旅·8·go函数基本实践及各种玩法
  • Jenkins 修改 root 权限问题
  • 2023年易派客工业品展圆满落幕 期待与您再次相遇
  • 【CMake】给一个库添加用法需求(Usage Requirements)
  • 华纳云:怎么用shell脚本发送http请求
  • 搜索的剪枝技巧之三个原则
  • 【springcloud 微服务】Spring Cloud 微服务网关Gateway使用详解
  • ACM 1007 | 分段函数求值
  • 连ChatGPT都不懂的五一调休,到底怎么来的?
  • JAVAWeb10-Web 开发会话技术-Session-02
  • MySQL解析器和优化器,你了解它们吗?
  • KDZD地埋线短路漏电试扎器
  • C++之深入解析如何实现一个线程池
  • 交叉编译相关知识整理
  • 安装Ubuntu22.04虚拟机的一些常见问题解决方法
  • 客户管理系统的作用有哪些?