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.mfbz.cn/a/17266.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于simulink采用 QSHB 和 HBPS 算法的混合 MIMO 波束成形仿真

一、前言 本例展示了多输入多输出 (MIMO) 无线通信系统的 Simulink 模型。无线系统使用混合波束成形技术来提高系统吞吐量。 二、介绍 5G和其他现代无线通信系统广泛使用MIMO波束成形技术进行信噪比(SNR)增强和空间复用&#xff0…

Netty(2)

Netty 文章目录 Netty4 Netty 模型4.1 Netty 模型介绍4.2 Netty demo4.3 Netty 异步模型4.3.1 基本介绍4.3.2 异步模型4.3.3 Future-Listener 机制4.4 Netty 任务队列 task 4 Netty 模型 4.1 Netty 模型介绍 Netty 线程模式:Netty 主要基于主从 Reactor 多线程模型…

开放式基金净值估算数据 API 数据接口

开放式基金净值估算数据 API 数据接口 全量基金数据,实时数据,所有基金数据。 1. 产品功能 返回实时开放式基金净值估值可定义所有基金估值数据;多个基金属性值返回;多维指标,一次查询毫秒级返回;数据持续…

全球5G市场最新进展及未来展望

从智慧医疗到万物互联,从无人驾驶到关乎我国未来发展的“新基建”,自2019年全球5G商用启动后,5G就步入了发展“快车道”;2022年继续保持快速稳定的增长态势,在网络建设、人口覆盖、终端形态等方面发展势头强劲,在技术标…

【致敬未来的攻城狮计划】— 连续打卡第二十三天:RA2E1的存储器基础知识

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

每天一道算法练习题--Day18 第一章 --算法专题 --- ----------前缀树

前缀树 字典树也叫前缀树、Trie。它本身就是一个树型结构,也就是一颗多叉树,学过树的朋友应该非常容易理解,它的核心操作是插入,查找。删除很少使用,因此这个讲义不包含删除操作。 截止目前(2020-02-04&a…

基于R语言APSIM模型应用

随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…

净利润下滑13%,帅丰电器已掉队?

近年来,随着市场竞争加剧,厨电行业加速洗牌,超60%杂牌或被淘汰出局,三类品牌全部被清退。而作为毛利最高的厨电细分市场,集成灶行业吸引了大批企业涌入,市场渗透率快速提升,已经超过30%&#xf…

华为MPLS跨域——后门链路实验配置

目录 配置PE与CE设备对接命令(通过OSPF对接) 配置后门链路 可以使用任意方式来跑跨域MPLS(A、B、C1、C2都可以),不过关于传递Vpnv4路由的配置此处不做介绍;此处只介绍关于PE和CE对接的配置和关于后门链路…

数据存储系统概要

可靠、可扩展与可维护性 现在有很多都属于数据密集型,而不是计算密集型。对于这些类型应用,CPU的处理能力往往不是第一限制性因素,关键在于数据量、数据的复杂度及数据的快速多边形。 数据密集型应用模块: 数据库:存…

对标世界一流|从Just in time到Just in case ——汽车行业供应链管理经验借鉴

01 丰田汽车精益生产 作为最复杂和最成熟的供应链之一,汽车行业供应链无疑是供应链领域集大成者,而提起汽车行业供应链,就不得不提到丰田汽车;提到丰田汽车,就肯定离不开大名鼎鼎的精益生产以及JIT模式。 JIT模式由丰…

云服务器部署python项目

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

SpringBoot+Shiro+Jwt+Vue+elementUI实现前后端分离单体系统Demo

记录一下使用SpringBoot集成Shiro框架和Jwt框架实现前后端分离Web项目的过程,后端使用SpringBoot整合ShiroJwt(auth0),前端使用vueelementUI框架,前后端的交互使用的是jwt的token,shiro的会话关闭,后端只需要使用Shiro…

在Linux上搭建gitlab以及自动化编译部署的完整流程

一、安装gitlab 首先下载gitlab的安装包,地址如下: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/bionic/main/g/gitlab-ce/ 然后安装下载的包即可,一般还需要安装openssh-server等依赖包,在安装gitlab包之前可以…

睡眠经济2.0时代来了,老巨头们有护城河吗?

在第23个世界睡眠日,中国睡眠研究会等机构发布了《中国睡眠研究报告2023》,近半数人每晚平均睡眠时长不足8小时,“失眠”已成为了当代人的生活常态。 越是睡不好,越要想办法。年轻人纷纷求助于好的寝具、好的助眠产品乃至保健品&…

【Halcon】找到设备上的 标识牌

如图,找到设备上的 标识牌 。 标识牌最明显的特征是比其他区域亮, 二值化选择出亮区域,再通过面积选择出目标区域。 先显示图片 *获取图片的大小 get_image_size(Image,Width,Height)*关闭窗口 dev_close_window()*打开窗口 dev_open_win…

java错题总结(19-21页)

链接:关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源:牛客网 B:先讲一下双亲委派机制,简单来说,就是加载一个类的时候,会往上找他的父类加载器,父类加载器找它的父类加…

Centos系统安装RabbitMQ消息中间件

记录一下在centos7.x下面安装RabbitMQ消息中间件 RabbitMQ是一个开源而且遵循 AMQP协议实现的基于 Erlang语言编写,因此安装RabbitMQ之前是需要部署安装Erlang环境的 先安装Erlang https://packagecloud.io/rabbitmq/ 点进去可以看到 因为使用的centos是7.x版本的…

架构设计-数据库篇

大家好,我是易安! 之前我们讲过架构设计的一些原则,和架构设计的方法论,今天我们谈谈高性能数据库集群的设计与应用。 读写分离原理 读写分离的基本原理是将数据库读写操作分散到不同的节点上,下面是其基本架构图。 读…

【Python系列】一个简单的抽奖小程序

序言 很开心你能在万千博文中打开这一篇,希望能给你带来一定的帮助!👍🏻 如果有什么问题,都可以添加下方我的联系方式,联系我噢~😁 ⭐️⭐️⭐️⭐️⭐️沟通交流,一起成为技术达人&…