day04

本文围绕Java编程基础展开,介绍了随机数生成、循环控制语句(continue、break)、数组初始化与复制、栈和堆的存储特点、身份证验证程序、异常处理、冒泡排序及其优化,还阐述了方法的概念、语法结构、使用和调用方式。

import java.util.Random;
Random r= new Random();
int num= r.nextInt(100); //产生的数据在0到100之间,包括0,不包括100,其实里面的100是随机的。
2.
for(int i=0;i<10;i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
输出结果为1,3,5,7,9
continue:跳过循环体中的剩余语句而进行下一次循环

3.嵌套中的循环:
嵌套中的循环,一般多行多列的时候,外层控制行,内层控制列;
执行规则:外层循环走一次,内层的走所有;
建议:循环层数越少越好,能用一层解决的尽量用一层,如果你写的程序必须使用到三层以上的循环,要考虑是不是你的程序设计有问题
break:只能跳出一层循环。
4.
数组初始化:
动态初始化:在初始化的时候,只定义了数组的长度,通过系统来决定数组的初始化值;int [] arr2=new int[3];
静态初始化:在初始化的时候,在初始化的时候,指定了每一个初始化的值,由系统决定数组的长度; int [] arr3= new int[]{1,3,5,7};
5
arr={1,2,3};错的 arr=new int [] {1,2,3}; 对的
6
栈:存诸的是局部变量;局部变量就是定义在方法体中的变量;使用完毕后立即释放。
7.
堆:存储的是new出来的对象;每一个对象都是有地址值的;每一个对象都是有默认值的;
byte short int long 默认值为0
float double 是0.0
char 是 ‘\u0000’
boolean false
引用数据类型 null
使用完毕后,由垃圾回收器在空闲的时候回收

  1. 身份证的最后一位验证
    倒数第二位代表性别
    7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
    省份证前17位 对应相乘,然后相加,用和%11
    0 1 2 3 4 5 6 7 8 9 10
    1 0 x 9 8 7 6 5 4 3 2

对应程序
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
//用来存放身份证前17位
int[] cards=new int[17];
//所需验证的系数
int[] data={7 ,9 ,10, 5 ,8 ,4 ,2 ,1 ,6 ,3, 7 ,9, 10, 5, 8 ,4 ,2};
int[] date1=new int[17];
char []code ={‘1’,‘0’,‘x’,‘9’,‘8’,‘7’,‘6’,‘5’,‘4’,‘3’,‘2’};
Scanner sc=new Scanner(System.in);
for(int i=0;i<cards.length;i++){
System.out.println(“请输入身份证的第”+(i+1)+“位”);
cards[i]=sc.nextInt();
}
for(int i=0;i<cards.length;i++){
sum+=cards[i]*data[i];
}
System.out.println(“最后一位:”+code[sum%11]);

}

9 异常
数组下标越界异常;ArrayIndexOutOfBoundsException
空指针异常:NullPointerException
异常机制:try-------catch
10 数组的复制
Arrays.copyof(src,length), 要在JDK1,6版本以上使用
System.arraycopy(src, srcPos, dest, destPos, length);//
src原数组;srcPos:原数组的开始的复制的位置;dest:目标数组;destPos:目标数组的开始复制的位置;length:复制的 长度
javaAPI提供的,底层是用c++写的,所以速度非常快,比for()循环实现数组的拷贝效率要高,推荐使用。

11.冒泡排序
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={1,3,2,55,23,4};
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
//两种循环和Arrays.toString(a) 三种方法对数组的输出
System.out.print(“第”+(i+1)+“轮”+" “);
//System.out.println(Arrays.toString(a));
for(int k:a){
System.out.print(k+” “);
}
System.out.println();
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+” “);
}
}
优化后的冒泡排序:
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={1,3,2,55,23,4};
boolean isSorted;
for(int i=0;i<a.length-1;i++){
isSorted=true;//假设剩下的元素已经全部排序好了
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
//一旦进行数组元素的交换,那么剩余的元素的元素是没有进行排序好的
isSorted=false
}
}
if(isSorted){
break;
}
System.out.print(“第”+(i+1)+“轮”+” “);
//System.out.println(Arrays.toString(a));
for(int k:a){
System.out.print(k+” “);
}
System.out.println();
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+” ");
}
}

}
12. 方法:
概念:封装了一段特定独立的业务逻辑的功能;
方法尽可能是独立的,让一个方法去干一件事;
方法也是可以被反复的重复去调用;
较少代码的重复,有利于代码的后期维护;
同时能够减少开发团队的成本,提高效率。
2.语法结构;
修饰词 返回值类型 方法名 (参数列表){
方法体;//具体的业务逻辑功能
return 返回值;
}
修饰词:public static
返回值类型:用于限定返回值的具体的类型
方法名:为了我们调用的时候方便,起的名字
参数列表:(参数类型 参数名,参数类型 参数名2…)
参数类型:用于限定调用方法时传入传入的数据类型
参数名:用于接收调用方法时传入的数据的变量
3. 方法的使用
明确方法是否有返回值;方法是否有参数列表;
方法是否有参数列表
4. 方法的调用
单独去调用
输出调用,有意义的
赋值调用
return; //编译错误,必须返回一个值
return “1234”; //编译错误,返回值的类型必须进行

"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
### 苍穹外卖 Day04 课程代码与教程 #### 新增套餐功能解析 在苍穹外卖项目的第四天学习中,重点在于理解和实现新增套餐的功能。对于新手开发者而言,理解业务逻辑是关键所在。通过模仿之前学过的新增菜品流程来构建新的功能模块是一个有效的策略[^1]。 ```java // 假设这是用于处理新增套餐的部分Java伪代码示例 public class PackageService { public void addPackage(Package pkg) { // 验证输入参数的有效性 validate(pkg); // 查询并设置分类信息 Category category = getCategoryByType(pkg.getType()); pkg.setCategory(category); // 将新创建的套餐保存到数据库中 packageRepository.save(pkg); } private Category getCategoryByType(String type){ // 实现根据类型获取对应分类的方法 return categoryRepository.findByType(type); } } ``` 此部分涉及到了如何依据`type`属性查询相应的分类,并将其关联至即将加入系统的套餐对象上。这一步骤确保了每个套餐都能被正确地归类管理。 #### 数据批量操作接口说明 当涉及到多个购物项的同时插入时,则需要用到类似于`ShoppingCartMapper.insertBatch()`这样的方法定义。该函数接收一个包含若干个待插入记录的对象列表作为参数,在内部完成一系列必要的预处理工作之后执行实际的数据入库动作[^2]。 ```sql -- SQL语句示意:批量向shopping_cart表中添加多条记录 INSERT INTO shopping_cart (user_id, product_id, quantity) VALUES (?, ?, ?), (?, ?, ?), ... ; ``` 以上SQL片段展示了怎样一次性提交多组数据给目标表格;具体应用场合下可根据实际情况调整字段名及其对应的值。 #### 关联实体间的关系描述 为了更好地维护系统内的各类资源之间的联系,采用了一套合理的外键机制设计模式。例如,在表示“菜品”的实体结构里包含了两个重要属性:一个是用来唯一识别每道菜目的`id`编号;另一个则是指向其所属类别(即菜单板块)的`category_id`引用关系[^4]。 ```json { "id": 1, "name": "宫保鸡丁", "description": "...", "price": 28.5, "categoryId": 3 // 表明这条记录属于ID为3的那个分类之下 } ``` 上述JSON格式的例子清晰地表达了单个菜品实例与其上级分类间的隶属情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值