版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计基础第二章-Java数据类型与运算符主讲讲师:[教师姓名]课程日期:2026年3月本章学习目标掌握Java基础语法深入理解并掌握Java的核心语法规则,包括单行与多行注释规范、合法标识符命名规则、关键字的正确使用场景,以及企业级代码编写的格式与规范要求。理解数据类型体系系统梳理Java的基本数据类型(如int、double、char等)与引用数据类型(如String、数组)的本质区别,熟练掌握自动类型转换与强制类型转换的底层逻辑和实际应用方法。掌握变量与常量学会在程序中合理定义、声明和初始化变量与常量,理解其在内存中的存储方式,掌握作用域规则,能够根据业务需求正确选择和使用变量来存储动态数据。精通Java运算符体系全面掌握算术、赋值、关系、逻辑、位运算及三元运算符的语法格式与运算规则。深入理解运算符的优先级与结合性,能够准确运用各类运算符构建复杂的业务逻辑表达式,避免运算错误。实现基本输入输出流操作掌握Java控制台交互的核心技术,熟练使用Scanner类进行用户键盘输入的读取,以及System.out实现信息的打印。同时学会格式化输出的技巧,让程序的输入输出更加规范、友好且易于阅读。代码的“说明书”——Java注释注释是对代码的“解释说明书”,编译器在执行程序时会自动忽略这些内容,不影响程序运行。但它是程序员之间沟通的桥梁,能极大增强代码的可读性与可维护性,让晦涩的代码逻辑变得清晰易懂。单行注释符号://作用范围从双斜杠开始到本行末尾结束,适合对单行代码进行即时、简短的说明。//初始化用户年龄变量为18多行注释符号:/*...*/内容可跨越多行,常用于对代码块进行详细描述,或临时屏蔽一段不需要执行的代码。/*校验用户身份,\n验证通过则执行后续逻辑*/文档注释符号:/**...*/一种特殊的注释格式,可通过javadoc工具自动提取生成API帮助文档,是专业开发的标准规范。/**程序主入口\n*@paramargs命令行参数*/给程序元素起名字——标识符核心概念:标识符是程序员为程序中的变量、方法、类等元素所起的名字,它是代码中区分不同实体的重要标识。一个好的标识符如同每个人的名字一样,不仅能让程序准确识别元素,更能让开发者直观理解代码含义。首字符规范必须以字母(A-Z/a-z)、下划线(_)或美元符($)开头,严禁以数字作为首个字符,这是标识符的基础语法要求。后续字符组成首字符之后可使用字母、数字、下划线或美元符。虽然无强制长度限制,但建议简洁且“见名知意”,增强代码可读性。严格区分大小写程序语言对大小写敏感,例如`Name`和`name`在运行时会被识别为两个完全不同的标识符,书写时需格外注意。避开关键字不可使用Java语言的保留关键字(如class、int、if等)作为标识符,这些单词已被语言本身占用,具有特殊含义。✅合法命名示例userName/_sysValue/$change/age这类命名严格遵循规则,既符合语法要求,又能通过名称直观体现变量用途,是编写高质量代码的基础。❌非法命名示例3mail/room#/class分别违反了“数字开头”、“含非法特殊字符”和“使用关键字”的规则,会直接导致程序编译失败,无法正常运行。Java的“保留字”与代码规范关键字(Keywords)Java语言中被赋予特殊含义的单词,不可作为变量、类名等标识符使用。其核心特点是由全小写字母组成,是编译器识别语法的基础。常见示例:public,class,static,void,int,if,else,new,return...代码规范(CodingStyle)良好的编码规范是团队协作的基础,能显著提升代码的可读性与可维护性。在Java开发中,业界普遍遵循Sun公司及后来Oracle定义的标准命名约定。核心理念:见名知意,风格统一,结构清晰,减少认知成本。类名/接口名大驼峰式(PascalCase)每个单词首字母大写,无下划线。常用于类型定义,体现对象的抽象。
例:Student、UserService变量/方法名小驼峰式(camelCase)首字母小写,后续单词首字母大写。符合日常阅读习惯,简洁流畅。
例:studentName、getScore()常量定义全大写+下划线所有字母大写,单词间用下划线分隔,强调其不可变性。
例:PI、MAX_CONNECTIONS包名/格式全小写+层级结构倒置域名命名,层级用点分隔。代码保持4个空格缩进,结构一目了然。
例:com.doubaoc.lessonJava的数据类型体系基本数据类型(PrimitiveTypes)直接存储原始数据值,不包含额外的内存开销,是构建Java程序最基础、高效的原子单元。布尔型boolean仅占1字节,取值为true/false。常用于逻辑判断、条件分支与状态标记,是程序控制流的基础。字符型char占用2字节,基于Unicode编码。不仅能存储英文字母,还能直接表示汉字、符号等全球字符。整型家族byte/short/int/long。不同的字节长度决定了不同的数值范围,int是最常用的默认整数类型。浮点型(实型)float(单精度)/double(双精度)。用于存储小数或科学计数法数值,double拥有更高的精度。引用数据类型(ReferenceTypes)不直接存储数据,而是存储指向堆内存中对象的地址(引用),是Java面向对象编程的核心载体。引用类型就像一个“寻宝地图”。变量本身并不保存实际的宝藏(数据),而是保存了宝藏的具体位置(内存地址)。当程序需要使用数据时,会通过这个地址去堆内存中找到对应的对象实例。这种方式允许我们操作复杂的、动态变化的数据结构。类Class如String
封装属性与行为的模板数组Array同类型数据集合
有序且长度固定接口/枚举定义规范与常量
实现多态与约束8种基本数据类型布尔型boolean占用1位,仅用于表示真或假,是逻辑判断的基础类型。取值:true/false
默认值:false字符型char占用16位,采用Unicode编码,用于存储单个字符或转义符。取值:\u0000~\uffff
默认值:'\u0000'(空字符)整型家族byte/short/int/long,存储不同范围的整数数值。常用:int(32位)/long(64位)
默认值:0/0L浮点家族float/double,用于存储小数或科学计数法数值。精度:double>float
默认值:0.0d/0.0fLong类型声明定义长整型常量时,数字末尾必须添加后缀大写L(小写l易与数字1混淆),例如:
longnum=10000000000L;Float类型声明定义单精度浮点数常量时,数字末尾必须添加后缀F或f,否则会被默认识别为double类型。
floatprice=9.9F;浮点默认规则小数数值在未加任何后缀时,编译器默认其为double类型。如果没有特殊的内存限制,优先使用double以获得更高精度。万物皆对象——引用数据类型与包装类引用数据类型核心定义是存储对象在内存中的逻辑地址,而非数据本身。它就像“门牌号”,通过地址指向实际的对象实体,是Java面向对象编程的核心载体。常见类型:类(class)、接口(interface)、数组(array)、枚举(enum)等引用类型数据。包装类WrapperClasses为8种基本数据类型提供对应的类形式,让基本类型“对象化”。解决了基本类型无法直接参与面向对象开发(如泛型、集合操作)的问题。核心作用:提供类型转换、常量定义、数值比较等实用方法,是连接基本类型与对象世界的桥梁。byte→Byte8位有符号整数,最小存储单位short→Short16位有符号整数,节省空间int→Integer最常用整数类型,默认数值类型long→Long64位长整数,存储大数场景float→Float单精度浮点数,适用于精度要求不高的小数double→Double双精度浮点数,默认的小数存储类型char→Character单个字符,包装类名特殊记忆boolean→Boolean逻辑值true/false,控制流程判断数据类型的“变形记”——类型转换转换黄金法则:按容量从小到大自动升级byte/short/char→int→long→float→double(容量逐渐增大)自动类型转换(隐式转换)当低级类型数据赋值给高级类型变量时,系统自动完成转换。如同小杯子的水倒入大杯子,过程安全且不会有数据丢失(精度可能微调)。示例:intnum=100;doublebigNum=num;
执行后bigNum的值为100.0强制类型转换(显式转换)当高级类型数据赋值给低级类型变量时,需手动使用(类型)语法。如同大杯子的水倒入小杯子,可能导致精度丢失或数据溢出。示例:doublepi=3.14;intnum=(int)pi;
执行后num的值为3(小数部分被舍弃)注意:小整数类型的运算提升byte、short、char之间不会直接自动转换。当它们参与算术运算时,会被自动提升为int类型,运算结果也为int。红线:boolean类型的独立性boolean类型(true/false)不能与其他任何基本数据类型进行转换,也不能参与算术运算。这是Java语言安全性的重要体现。程序的“临时容器”——变量变量是程序运行时内存中一块可变化的存储区域,就像生活中贴有标签的容器。在程序执行过程中,我们可以通过变量名找到这块区域,向其中存入数据、取出数据,或者更新数据内容,是实现动态计算和数据处理的核心基础。变量名变量的唯一“身份证”,用于在代码中准确找到对应的内存空间,就像给容器起的名字。数据类型规定了变量能存储的数据种类(如数字、文字)和大小,决定了容器能装“什么”和“多少”。值变量实际存储的具体数据内容,是程序运行过程中需要处理和计算的核心信息。作用域变量的有效生命周期和可访问范围,明确了容器在代码的哪个部分可以被使用。方式一:先声明,后赋值先定义变量的类型和名称,后续再给它存入数据。例:intscore;score=95;方式二:声明时直接初始化一步到位,定义的同时直接赋予初始值。例:StringuserName="编程学习者";doublemath=98.5,english=95.0;//定义并初始化两个成绩变量
doubletotal=math+english;//计算总分,变量值参与运算
System.out.println("总分:"+total);//输出结果:193.5程序的“固定值”——常量核心定义在程序运行的整个生命周期中,其值一旦被设定就不能被改变的量。它就像标尺上的刻度,是衡量其他变量的基准,始终保持恒定。统一基准·便于维护用常量代表固定的常数(如圆周率PI=3.1415926),只需在定义处修改一次,所有引用处即刻生效,大幅降低维护成本与出错风险。见名知意·清晰可读用具有语义的常量名(如MAX_SPEED)代替晦涩的数字(如120),让代码成为“自解释文档”,开发者无需额外注释即可理解数值含义。Java定义规则:final关键字语法格式:final数据类型常量名=值;
注:常量名通常使用大写字母,单词间用下划线分隔,这是行业通用的编码规范。实战:计算圆的面积finaldoublePI=3.1415926;//定义常量,永不改变
doublearea=PI*radius*radius;
System.out.println("圆的面积:"+area);进行数学计算——算术运算符+加法运算符示例:a+b
说明:用于计算两个数值的和,是最基础的算术运算之一。-减法运算符示例:a-b
说明:计算两个数值的差值,也可用于表示负数常量。乘法运算符示例:a*b
说明:计算两个数的乘积,效率通常高于连续的加法操作。/除法运算符示例:a/b
说明:求两个数的商。注意整数除法会直接舍弃小数部分取整。%取模运算符示例:a%b
说明:计算两数相除后的余数,常用于判断奇偶性或循环周期。++/--增减运算示例:a++/++a
说明:快捷的变量增减方式,前缀和后缀形式执行时机不同,是编程中的高频操作。前缀形式(++a):先加后用优先执行变量自增操作,将数值加1后,再使用更新后的变量值参与表达式计算。后缀形式(a++):先用后加先使用变量当前的原始值参与表达式运算,整个运算完成后,再将变量自身的值加1。执行逻辑可视化:inta=5;intb=a++;//b=5,a=6intc=++a;//c=7,a=7赋值与比较赋值运算符:给变量“注入”数据基础赋值:=最基础的赋值方式,将右侧值赋予左侧变量,是编程中最常用的操作。复合赋值:+=-=*=算术与赋值的结合,简化代码书写,提升执行效率的快捷操作符。示例:x+=5等价于x=x+5将变量自身值与右侧数值运算后,结果重新赋给自身。关系运算符:判断逻辑“真与假”用于比较两个数值关系,运算结果永远是布尔类型(true/false)。符号含义示例说明==等于a==b,判断a与b值是否相同!=/>/<不等/大小判断数值大小或是否不相等核心易错点:千万别搞混“=”和“==”!“=”是赋值符号,作用是把右边的值交给左边的变量;而“==”是关系运算符,作用是判断左右两边的值是否相等。在编写条件判断语句时,如果错把赋值号当成等于号,会导致程序逻辑出现严重错误,这是初学者最容易犯的错误之一。逻辑判断与条件选择逻辑运算符:布尔表达式的连接桥梁用于连接多个布尔表达式进行逻辑判定,具备重要的“短路特性”——若第一个操作数已能确定最终结果,第二个操作数将被直接跳过,不进行计算,以此提升程序执行效率。运算符名称语法示例执行逻辑&&逻辑与exp1&&exp2两边表达式结果同时为true,最终结果才为true;否则为false。||逻辑或exp1||exp2两边表达式只要有一个为true,最终结果即为true;全为false才为false。!逻辑非!exp单目运算符,对表达式结果取反,true变false,false变true。三元运算符:简洁的条件分支核心语法结构:条件?表达式1:表达式2;作为if-else语句的简化形式,根据条件的布尔值动态选择执行路径。条件为真时执行表达式1,为假时执行表达式2,代码更紧凑高效。场景:快速获取两个数的最大值intmax=(a>b)?a:b;运算的“先后顺序”——运算符优先级核心法则:优先级至上不同优先级的运算符相遇时,优先级高的先执行,如同数学中的“先乘除后加减”规则。同级规则:结合性同一优先级的运算符,遵循“从左到右”的结合顺序(赋值运算除外),依次进行计算。终极手段:小括号()小括号拥有最高优先级,能强制改变运算顺序,是解决复杂表达式歧义的最佳工具。01小括号()最高优先级,改变运算的“指挥棒”,先算括号内。02一元运算符++自增、--自减、!逻辑非,作用于单个操作数。03乘除取模乘法、/除法、%取余,数学中基础的二级运算。04加减运算+加法、-减法,最基础的算术运算步骤。05关系运算符>、<、>=、<=,用于比较数值大小关系。06相等判断==相等、!=不等,判断两个值是否完全一致。07逻辑与&&“且”关系,两边都为真结果才为真,否则为假。08逻辑或||“或”关系,只要有一边为真,整个结果就为真。进阶技巧:巧用括号防出错记不住复杂的优先级表没关系!在编写代码时,使用小括号明确表达你的意图,既便于阅读,又能避免因优先级错误导致的BUG。底层逻辑:计算机的执行流理解优先级本质是理解计算机的运算规则。掌握它能让你写出更高效、更健壮的表达式,也是理解复杂程序运行过程的基础。与程序对话——控制台输入STEP01·导入核心类在代码文件头部引入java.util包下的Scanner类,这是实现控制台输入功能的基础前提。importjava.util.Scanner;STEP02·实例化对象创建Scanner对象并关联标准输入流System.in,建立程序与控制台输入的连接通道。Scannersc=newScanner(System.in);STEP03·获取输入值根据数据类型选择对应方法,灵活处理整数、浮点数或字符串等不同用户输入。intage=sc.nextInt();
Stringname=sc.nextLine();STEP04·释放资源程序结束输入操作后,务必关闭Scanner对象,释放占用的系统资源。sc.close();实战演示:实现交互式个人信息录入程序importjava.util.Scanner;//导入扫描器类
publicclassInputDemo{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);//创建扫描器对象
System.out.print("请输入你的姓名:");Stringname=sc.nextLine();//获取整行字符串
System.out.print("请输入你的年龄:");intage=sc.nextInt();//获取整数数值
System.out.println("你好,"+name+",你今年"+age+"岁!");
sc.close();//关闭资源,养成良好编程习惯
}
}向用户展示信息——控制台输出Java程序中最基础、最核心的输出操作核心类是:System.outSystem.out.println()最常用的输出方式,在输出指定内容后,会自动在末尾添加换行符,使光标移动到下一行开头,适合逐条输出信息。System.out.print()基础输出方式,仅输出指定内容,不会自动换行。光标停留在输出内容的末尾,适合需要连续输出且不换行的场景。System.out.printf()格式化输出方法,允许通过格式控制符定义输出样式(如保留小数、对齐等),使输出结果更加规范、美观。格式化语法与常用占位符语法:System.out.printf("格式控制串",变量1,变量2...);——用占位符替代具体值,按顺序匹配变量%d十进制整数%f浮点数/小数%s字符串文本%.2f保留两位小数代码示例:精准输出计算圆周率时,若想只展示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土木工程类勘察设计注册公用设备工程师给水排水专业案例下试题与答案
- 口腔门诊急诊急救试题及答案
- 上海区小时工外包合同
- 垃圾处理厂地下连续墙施工方案
- 东莞员工公寓外包合同
- 电玩城抓娃娃机外包合同
- 导尿术后护理宣教
- 质量管理试题及答案GMP培训试题题库及答案
- 护理护理科研数据分析查房
- 人工智能编程语言设计
- 2026江苏苏州市健康养老产业发展集团有限公司下属子公司招聘15人(第二批)笔试参考试题及答案解析
- 2026贵州黔西南技师学院公开招聘事业单位工作人员14人考试备考试题及答案解析
- 历史(四川卷)(考试版)-2026年高考考前预测卷
- 2026年佳木斯富锦市市政设施管护中心公开招聘一线工程技术人员3人笔试备考试题及答案解析
- 2026年江苏泰州市初二学业水平地生会考试卷题库及答案
- 瑞幸咖啡2025品牌年终报告
- 初中化学九年级下册“化学与社会·跨学科实践”单元整体建构教案
- 2026年广西事业单位招聘面试真题及答案
- 2026年高性能医用新材料研发与生物安全性评价
- 党员之家内部管理制度
- 突发事件创伤伤员医疗救治规范2025年版
评论
0/150
提交评论