1.2.3 Java常量优化机制
会在编译的时候让3和4相加,然后自动判断7是否在byte类型取值范围之内,不在范围之内,编译出错。
1.3.1 算数运算符
加减乘
除:整数相除,结果只能是整数,想得到小数就得在过程中有浮点数参与运算。
%:取结果的余数
1.3.2 字符的"+"操作
Int a = 10;
char b = 'a';
system.out.println(a+b);
ascll码:
a-97
A-65
0-48
1.3.3 数值拆分
1.3.4 自增自减运算符
在前先自增/减,再操作
只能操作变量
1.3.5 赋值运算符
扩展赋值运算符自带强制类型转换功能
1.3.6 关系运算符
==作比较
=赋值
1.3.7 逻辑运算符
与,或,非,异或(& | ! ^)
1.3.8 短路逻辑运算符
&和&&区别:
&&具有短路效果,符号左边为false时右边不执行,左边为 true右边继续执行。
&无论左边是true还是false右边都要执行
1.3.9 三元运算符
a>b?a:b:是取a不是取b //学东西不要太死板
1.3.10 案例-三个和尚
三个变量找最大值
1.4 分支语句
1.4.1 流程控制顺序结构
1.4.2 if语句格式1
if(关系表达式){语句体}
注意事项:语句体只有一句,大括号可以不写(永远都不要省略//埋汰谁呢)
1.4.3 if语句格式2
if(关系表达式){
语句体1;
}else{
语句体2;
}
1.4.4 if语句格式3
if(判断条件1){ //如果
语句体1
}else if(判断条件2){ //再如果
语句体2
}else if(判断条件3){ //再如果
语句体3
}else{ //都不是执行这句
最后的备胎语句
}
1.4.5 考试奖励-if多条件判断
1.5.1 switch语句格式
switch(表达式){
Case值1:
语句体1;
break;
default:
break;
}
case后的值不能重复
case后的值只能是常量不能是变量
1.5.2 减肥计划-案例
键盘接受星期数据
switch
1.5.3 switch中的case穿透
如果switch中,case省略了break语句,就会开始case穿透。直接挨着执行直到break或者完成switch。
应用:多个语句出现重复可以使用case穿透来优化代码
1.5.4 for循环
案例1-求1-100的偶数和
案例2-求所有的水仙花数(一个三位数,各个位的立方和和原数相同)
案例3-水仙花数每行打印两个(加一个count进行if控制)
1.5.5 while循环语句
初始化表达式
while(条件表达式){
循环体语句;
条件控制语句;
}
案例1-珠穆朗玛峰 折纸多少次能到珠峰高度 while循环-不明确循环次数
1.5.6 do while 循环(看的懂)无论条件是否满足,都至少执行一次循环体
do{
循环体语句;
条件控制语句;
}while(条件表达式)
1.5.7 三种循环的区别
for和while先判断后执行
do while 先执行后判断
for和while的区别
条件控制语句所控制的自增变量,因为归属于for循环的语法结构中,在for循环结束后,就不能再次访问到了。
while来说,不归属其语法结构中,在while循环结束后,变量还能继续使用。
1.5.8 死循环
键盘录入:符合条件的输入改变循环条件结束循环
1.6.1 跳转控制语句
跳过某轮循环continue
结束循环 break
1.6.2 案例-减肥计划改进版
直到输入0程序结束
注意:给循环起名字,给循环前面加 "标号: ",在跳出时使用"break 标号 "跳出指定层的循环。
1.7.1 random基本使用
用于产生随机数
创建对象
Random r = new Random();
获取随机数
int num = r.nextint(10); 产生一个0-9的随机数
1.7.2 猜数字
产生随机数那句不要放进死循环中
无限循环可以写代码,只要你设计了循环的出口
1.8.1 数组介绍
是一种容器,存储同种数据类型的多个值
尽量保持一致
如果今后要操作的数据是同一组数据,就可以使用数组容器进行存储
1.8.2 数组的定义格式
1:数据类型[] 数组名
2:数据类型 数组名[]
只是定义了一个数组类型的变量,需要进行变量初始化,容器还没有创建出来
Int[] arr = 创建数组容量
Int[] arr = new int[3];
1.8.3 数组元素访问
数组在创建完毕后,即使没有赋值,也可以取出,取出的元素都是默认初始化值。
1.8.4 内存分配
Java程序运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,每一片区域都有特定的处理数据方式和内存管理方式
Java中的内存分配
栈内存:方法运行时进入的内存,局部变量都存放于这块内存中
堆内存:new出来的内容都会进入堆内存,并且会存在地址值
方法区:字节码文件(.class文件)加载时进入的内存
本地方法栈:调用本地方法栈
寄存器:交给cpu去使用
数据类型 默认值
整数 0
浮点数 0.0
布尔 false
字符 空字符
引用数据类型 null
引用数据类型:引用,记录了地址值的变量
1.8.5 多数组内存分配
每new一次,在堆内存中,都是一块新的地址,堆内存中的空间地址不会出现重复的现象。
1.8.6 多个数组指向相同堆内存地址
俩个人牵了一条狗
1.8.7 数组静态初始化
Int[] arr = new int[]{数据1,数据2 ,数据3.。。。。}
Int[] arr2 =(数据1,数据2,数据3,。。。。)
只是简化了书写方式,也是开辟了堆内存空间
两种初始化的区别对比
动态:手动指定数组长度,由系统给出默认初始化值
静态:手动指定数组元素,系统会根据元素个数,计算出数组的长度
1.8.8 数组操作的两个常见问题
索引越界问题
空指针问题:访问的数组已经不再指向堆内存的数据
1.8.9 数组的遍历
for循环
动态获取数组元素个数问题:数组名.length
遍历是取出数据的过程不仅仅是打印
1.8.10 数组获取最值
逐个对比
1.8.11 数组元素求和
遍历求和
一个for实现一个数字逻辑
1.8.12 查找索引
1.8.13 案例-评委打分
减去最值
1.9.1 方法
提高代码复用性
1.9.2 方法的定义和调用
本文详细讲解Java中的常量优化机制,算数运算符(包括整数、字符和数值拆分),以及分支控制结构如if-else、switch与循环(for、while、do-while)。深入探讨了逻辑运算符、数组、方法和数据类型等内容,适合进阶Java开发者阅读。
568

被折叠的 条评论
为什么被折叠?



