黑马程序员——javase基础——day02——运算符选择语句

目录:

  1. 运算符
    1. 算术运算符
    2. 案例数值拆分
    3. +操作的三种情况
      1. 数字相加(类型转换)
      2. 字符相加
      3. 字符串相加
    4. 赋值运算符
  2. 选择语句
    1. 顺序结构
    2. Debug的基本使用
    3. 选择语句之if
      1. if语句格式1
      2. if语句格式2和格式3
      3. 案例1(交通信号灯)
      4. 关系运算符
      5. 案例2(奇偶数)
      6. 案例3(手机以旧换新)
      7. 案例4(你是青年人吗)
      8. 逻辑运算符
      9. 三元运算符和if语句格式2的区别
    4. 选择语句之switch

1.运算符

前面我们学过了通过字面量和变量来表示一个数据,这里呢,我们来学习对数据进行运算。而对数据运算就要用到我们这里要讲解的运算符,而在讲解具体的运算符之前,我们对运算符和表达式做一个简单的描述:

运算符:对字面量或者变量进行操作的符号

表达式:运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。

举例说明:**

int a = 10;

int b = 20;

int c = a + b;

+ :是运算符,是算术运算符

a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

知道了什么是运算符和表达式以后,我们来说一下这一块的课程安排:

总共要学习5种类型的运算符,后三种标记为灰色了,我们是在哪里用就在哪里学习。这里我们先学习前两种,首先我们来学习算术运算符

算术运算符

Java中的算术运算符有如下几种:

了解了Java中的算术运算符之后,下面我们到IDEA中去使用一下:

/*
    算术运算符
 */
public class OperatorDemo {
    public static void main(String[] args) {
        //定义两个int类型的变量
        int a = 6;
        int b = 4;

        System.out.println(a + b);//10
        System.out.println(a - b);//2
        System.out.println(a * b);//24
        System.out.println(a / b);//1.5? 1
        System.out.println(a % b);//2

        //整数相除只能得到整数,要想得到小数,必须有浮点数的参与
        System.out.println(6.0 / 4);
    }
}

最后,我们来总结一下,刚才在演示代码的时候有两个注意事项:

 

案例数值拆分

需求:定义一个三位数,将其拆分为个位、十位、百位后,输出在控制台

什么意思呢?下面我们举例来说明一下:

举例:int number = 123;

在控制台输出结果:

个位是:3

十位是:2

百位是:1

知道了要做什么后,下面我们来分析一下如何获取个位,十位,百位:

分析:

① 个位的计算:数值 % 10

123 除以 10(商12,余数为3)

② 十位的计算:数值 / 10 % 10

123 除以 10 (商12,余数为3,整数相除只能得到整数)

12 除以 10 (商1,余数为2)

③ 百位的计算:数值 / 10 / 10 % 10

123 / 10 / 10 % 10(123 / 10 得到12,12 / 10 得到1,1 % 10 得到 1)

分析完毕之后,下面我们到IDEA中去实现一下:

/*
    需求:定义一个三位数,将其拆分为个位、十位、百位后,输出在控制台
 */
public class OperatorTest {
    public static void main(String[] args) {
        //定义一个三位数
        int number = 123;

        //获取个,十,百位数据
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;

        //输出结果
        System.out.println("个位是:" + ge);
        System.out.println("十位是:" + shi);
        System.out.println("百位是:" + bai);
    }
}
+操作的三种情况
数字相加(类型转换)

在Java程序中,数据参与运算,要求类型一致。这里就涉及到了数据的类型转换。而类型转换又分为两种:

  1. 隐式转换

  2. 强制转换

隐式转换:把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量

强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量

格式:数据类型 变量名 = (目标数据类型)(数值或者变量)

IDEA中代码演示如下:

/*
    数字相加
 */
public class OperatorDemo01 {
    public static void main(String[] args) {
        int a = 10;
        double b = 13.14;
        System.out.println(a + b);

        int c = (int)(a + b);
        System.out.println(c);
//        double d = a + b;

        short s = 10;
        int i = 20;
        int j = s + i;
//        short ss = s + i;

        short ss = (short) (s + i);
    }
}
字符相加

来,继续啊,这里我们再来说一下字符参与+操作。

先到IDEA中去讲解,然后再回来总结。

IDEA中代码演示如下:

/*
    字符相加
 */
public class OperatorDemo02 {
    public static void main(String[] args) {
        //定义两个变量
        int i = 10;
        char ch = 'A';//'A'的值是65
        ch = 'a';//'a'的值是97
        ch = '0';//'0'的值是48
        System.out.println(i + ch);
    }
}

代码演示完毕后,回到资料总结:

字符参与+操作,其实就是拿字符在计算机底层对应的数值来进行计算的,这里我们了解一下英文大小写字符和数字字符对应的数据值:

  • ‘A’ 65 A-Z是连续的

  • ‘a’ 97 a-z是连续的

  • ‘0’ 48 0-9是连续的

这里也给大家准备了一张ASCII码表,里面有常用的字符及其对应的数值关系:

 

字符串相加

接下来,我们继续讲解字符串相加,先到IDEA中去讲解,然后再回来总结。

IDEA中代码演示如下:

/*
    字符串相加
 */
public class OperatorDemo03 {
    public static void main(String[] args) {
        System.out.println("it" + "heima");
        System.out.println("itheima" + 666);
        System.out.println(666 + "itheima");

        System.out.println("itheima" + 6 + 66);
        System.out.println(1 + 99 + "年itheima");
    }
}

代码演示完毕后,回到资料总结:

  • 当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算

    • “zhongguo”+ 666

  • 当连续进行“+”操作时,从左到右逐个执行

    • 1 + 9999 + “岁zhongguo”

讲解完毕后,大家赶快动手练习一下吧。

赋值运算符

下面呢,我们来学习赋值运算符。

Java中的赋值运算符有如下几种:

 

了解了Java中的赋值运算符之后,下面我们到IDEA中去使用一下:

/*
    赋值运算符
 */
public class OperatorDemo {
    public static void main(String[] args) {
        int a = 10;
        System.out.println("a:" + a);

        // += : 把左边和右边的数据相加,最后把结果赋值给左边
//        a += 20;
        a = a + 20;
        System.out.println("a:" + a);


        //注意:扩展的赋值运算符底层隐含了强制类型转换
        short s = 1;
//        s += 2;
        s = (short) (s + 2);
        System.out.println("s:" + s);
    }
}

最后,我们来总结一下,刚才在演示代码的时候有个注意事项:  

2.选择语句

来,继续啊,为了控制程序的执行流程,Java 就提供了一些流程控制语句,我们先来举例说明一下:

顺序结构:从上往下,依次执行

 

选择结构:

QQ界面的登录,填写账号和密码正确,展示好友列表界面。填写账号或者密码有误,提示:你输入的账号或密码不正确。

这就是通过选择结构来实现的,实际开发中,类似这种逻辑判断的情况非常常见。

 

循环结构:

比如说,京东商城中,查询手机数据,京东就会返回给你一堆符合你查询要求的数据。

假如,每一部手机数据的展示需要5行代码,如果最终返回了1000部手机,你就需要编写5000行代码来实现数据展示。

这样就太麻烦了,那么,有没有一种流程语句,能够简化这种操作呢?答案肯定是有的,就是我们的循环结构,它就可以通过一个比较简单的结构来控制我们的手机展示1000次。

比如说,带着这样写就可以了,这就是循环结构。

了解完毕之后,我们来说一下这一块的课程安排:

 

顺序结构

顺序结构:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行

执行流程图:

了解完顺序结构后,下面我们到IDEA中去演示一下:

/*
    顺序结构语句
 */
public class OrderDemo {
    public static void main(String[] args) {
        System.out.println("开始");
        System.out.println("语句A");
        System.out.println("语句B");
        System.out.println("语句C");
        System.out.println("结束");
    }
}
Debug的基本使用

为了帮助大家更好的理解程序的执行流程,我们来学习Debug,那什么是Debug呢?

Debug:是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序

它的两大作用,查看程序执行流程,调试程序。由于目前我们每个程序的代码内容还比较少,

所以,今天重点掌握查看程序执行流程,当代码复杂的时候,我们需要通过debug来调试程序。那么,debug操作的流程是什么样子的呢?

在讲解操作流程前,我们来说一下:

Debug,又被称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看

知道了Debug被称为断点调试后,我们来讲一下Debug的操作流程:

① 如何加断点

选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。如图

② 如何运行加了断点的程序

在代码区域右键Debug执行

③ 看哪里

看Debugger窗口,看Console窗口

 

④ 点哪里

点(Step Over F8) 开始,点(Stop)结束

 

⑤ 如何删除断点

选择要删除的断点,单击鼠标左键即可。也就是把第一步的动作,再做一次即可。

总结一下,Debug的使用流程:

①如何加断点:选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可

②如何运行加了断点的程序:在代码区域右键Debug执行

③看哪里:看Debugger窗口,看Console窗口

④点哪里:点(Step Over F8) 开始,点(Stop)结束

⑤如何删除断点:选择要删除的断点,单击鼠标左键即可

讲解完毕后,大家赶快动手练习一下吧。

通过Debug的方式看一下,如下代码的执行流程:

/*
    Debug查看程序执行流程
 */
public class DebugDemo {
    public static void main(String[] args) {
        //定义一个int类型的变量,用来表示价格
        int price = 998;

        //输出变量
        System.out.println(price);

        //修改变量的值
        price = 888;

        //再次输出变量的值
        System.out.println(price);
    }
}
选择语句之if

选择语句有两种结构:

  1. if语句

  2. switch语句

这里我们先来学习if语句,它会根据判定的结果(真或假)决定执行某个分支的代码

举例说明一下:

无人驾驶的核心就是需要编写大量的判断逻辑,让车辆的行驶变得更加安全。

了解了交通信号灯的基本逻辑后,下面呢,我们通过if语句来实现过马路的信号灯判断,而if语句呢,有三种格式,这里我们首先来学习第一种格式

 

if语句格式1

格式:

范例:

执行流程:

了解完if语句格式1之后,下面我们到IDEA中去使用一下:

/*
    if语句格式1
 */
public class IfDemo01 {
    public static void main(String[] args) {
        //定义一个变量,用来表示绿灯的状态
        boolean isGreen = true;
        isGreen = false;

        if(isGreen) {
            System.out.println("绿灯行");
        }
    }
}
if语句格式2和格式3

刚才我们通过if语句格式1进行了判断,是绿灯的时候,可以通行,但是不是绿灯的时候,没有告诉我不可以通行啊。所以,这里就产生了if语句的第二种格式,先在代码中演示,再回去总结:

/*
    if语句格式2
 */
public class IfDemo02 {
    public static void main(String[] args) {
        //定义一个变量,用来表示绿灯的状态
        boolean isGreen = true;
        isGreen = false;

        if (isGreen) {
            System.out.println("绿灯行");
        } else {
            System.out.println("不是绿灯,不允许行使");
        }
    }
}

格式:  

 

范例:

 

执行流程:

 

讲解完if语句格式2之后,我们到IDEA中再去看一段代码:

public class IfDemo03 {
    public static void main(String[] args) {
        //定义三个变量,表示交通信号灯的三种状态
        boolean isRed = true;
        boolean isGreen = true;
        boolean isYellow = true;
        
        if (isRed) {
            System.out.println("红灯停");
        }

        if (isGreen) {
            System.out.println("绿灯行");
        }

        if (isYellow) {
            System.out.println("黄灯亮了等一等");
        }
    }
}

很明显,这是不合理的,因为我们把三种状态都设置为true了,而实际生活中,只会有一种状态为true,怎么解决呢多种情况的判断呢?这个时候就产生了if语句的第三种格式,先在代码中演示,再回去总结:

/*
    if语句格式3
 */
public class IfDemo03 {
    public static void main(String[] args) {
        //定义三个变量,表示交通信号灯的三种状态
        boolean isRed = true;
        boolean isGreen = true;
        boolean isYellow = true;

        //红灯
//        isGreen = false;
//        isYellow = false;

        //绿灯
//        isRed = false;
//        isYellow = false;

        //黄灯
//        isRed = false;
//        isGreen = false;

        //出现了故障,信号灯都不亮了
        isRed = false;
        isGreen = false;
        isYellow = false;


        if(isRed) {
            System.out.println("红灯停");
        }else if(isGreen) {
            System.out.println("绿灯行");
        }else if(isYellow) {
            System.out.println("黄灯亮了等一等");
        } else  {
            System.out.println("交通信号灯故障,请在保证安全的情况下通行");
        }
    }
}

 

演示完毕后,我们来说一下,if语句格式3:

if语句格式3:

格式:

执行流程:

 

 

案例1(交通信号灯)

需求:交通信号灯由红灯、绿灯、黄灯组成,请通过程序实现不同的信号灯给出不同的提示。

提示信息:红灯停、绿灯行、黄灯亮了等一等

首先,我们来简单的分析一下:

分析:

① 用哪种类型来表示信号灯的三种状态呢?

用int类型来表示信号灯的三种状态(1表示红灯,2表示绿灯,3表示黄灯)

② 用if语句的哪种格式来实现该需求呢?

一般来说:1种情况的判断用if格式1,2种情况的判断用if格式2,多种情况的判断用if格式3

③ if语句判断的表达式该怎么写呢?

int light = 1;

if(light == 1) {…}

==:是关系运算符,用来判断两个数据是否相等,如果相等,结果为true,否则为false

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 定义一个int类型的变量用来表示信号灯的状态(1表示红灯,2表示绿灯,3表示黄灯)

② 用if语句格式3进行多种情况的判断

③ 根据不同的情况给出不同的提示信息

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:交通信号灯由红灯、绿灯、黄灯组成,请通过程序实现不同的信号灯给出不同的提示。
    提示信息:红灯停、绿灯行、黄灯亮了等一等
 */
public class IfTest01 {
    public static void main(String[] args) {
        //1:定义一个int类型的变量用来表示信号灯的状态(1表示红灯,2表示绿灯,3表示黄灯)
        int light = 1;
        light = 2;
        light = 3;
        light = 4;

        //2:用if语句格式3进行多种情况的判断
        //3:根据不同的情况给出不同的提示信息
        if (light == 1) {
            System.out.println("红灯停");
        } else if (light == 2) {
            System.out.println("绿灯行");
        } else if (light == 3) {
            System.out.println("黄灯亮了等一等");
        } else {
            System.out.println("交通信号灯故障,请在保证安全的情况下通行");
        }
    }
}

 

关系运算符

Java中的关系运算符有如下几种:

了解了Java中的关系运算符之后,下面我们到IDEA中去使用一下:

/*
    关系运算符
 */
public class OperatorDemo01 {
    public static void main(String[] args) {
        //定义三个int类型的变量
        int i = 10;
        int j = 20;
        int k = 10;

        //等于:==
        System.out.println(i == j);//false
        System.out.println(i == k);//true
        System.out.println("--------");

        //不等于:!=
        System.out.println(i != j);//true
        System.out.println(i != k);//false
        System.out.println("--------");

        //大于:>
        System.out.println(i > j);//false
        System.out.println(i > k);//false
        System.out.println("--------");

        //大于等于:>=
        System.out.println(i >= j);//false
        System.out.println(i >= k);//true
        System.out.println("--------");

        //千万不要把==写成了=
        System.out.println(i = j); //20
    }
}

 最后,我们来总结一下,刚才在演示代码的时候有两个注意事项:

案例2(奇偶数)

需求:给定一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数

提示:偶数是能够被2整除的整数

首先,我们来简单的分析一下:

分析:

① 如何判断一个整数是奇数还是偶数?

整数对2进行取余,余数为0是偶数,否则为奇数

② 用if语句的哪种格式来实现该需求呢?

该整数要么是偶数,要么是奇数,2种情况,所以用if语句格式2

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 定义一个int类型的整数

② 用if语句格式2进行判断

③ 根据是否是偶数给出不同的提示信息

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:给定一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
 */
public class IfTest02 {
    public static void main(String[] args) {
        //1:定义一个int类型的整数
        int number = 10;
        number = 9;

        //2:用if语句格式2进行判断
        //3:根据是否是偶数给出不同的提示信息
        if (number % 2 == 0) {
            System.out.println(number + "是偶数");
        } else {
            System.out.println(number + "是奇数");
        }
        
    }
}
案例3(手机以旧换新)

需求:张三想买一台7988元的新手机,他的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新优惠,把他旧手机交给店家,新手机就能够打8折优惠。

为了更省钱,要不要以旧换新?请通过程序告诉张三

首先,我们来简单的分析一下:

分析:

① 计算不使用以旧换新的花费

7988 - 1500

② 计算使用以旧换新的花费

7988 * 0.8

③ 用if语句的哪种格式来实现该需求呢?

if语句格式2

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 定义变量(money1)纪录不使用以旧换新的花费

② 定义变量(money2)纪录使用以旧换新的花费

③ 用if语句格式2进行判断 money1是否大于money2

④ 根据判断结果,给出相应的提示

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:张三想买一台7988元的新手机,他的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新优惠,
        把他的旧手机交给店家,新手机就能够打8折优惠。为了更省钱,要不要以旧换新?请通过程序告诉张三
 */
public class IfTest03 {
    public static void main(String[] args) {
        //1:定义变量(money1)纪录不使用以旧换新的花费
        int money1 = 7988 - 1500;

        //2:定义变量(money2)纪录使用以旧换新的花费
        double money2 = 7988 * 0.8;

        //3:用if语句格式2进行判断 money1是否大于money2
        //4:根据判断结果,给出相应的提示
        if (money1 > money2) {
            System.out.println("使用以旧换新更省钱");
        } else {
            System.out.println("不使用以旧换新更省钱");
        }
        
    }
}
案例4(你是青年人吗)

需求:给出你的年龄,通过程序判断你是否属于青年人?

提示:世界卫生组织,经过对全球人体素质和平均寿命进行测定,对年龄划分标准作出了新的规定

首先,我们来简单的分析一下:

分析:

① 如何判断一个年龄是否属于青年人?

年龄要大于等于18,并且小于等于65

② 在Java中如何表示并且的关系呢?

age >=18 && age<=65

&&:是逻辑运算符,用来连接两个结果为boolean类型的表达式,都为true,结果为true,否则为false

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 定义一个int类型的变量来表示你的年龄

② 用if语句格式2进行判断看你是否属于青年人

③ 根据是否是青年人给出不同的提示信息

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:给出你的年龄,通过程序判断你是否属于青年人?
    提示:青年人的年龄范围 18~65
 */
public class IfTest04 {
    public static void main(String[] args) {
        //1:定义一个int类型的变量来表示你的年龄
        int age = 22;
        age = 100;

        //2:用if语句格式2进行判断看你是否属于青年人
        //3:根据是否是青年人给出不同的提示信息
        if(age>=18 && age<=65) {
            System.out.println("你是青年人");
        } else {
            System.out.println("你不是青年人");
        }
        
    }
}
逻辑运算符

Java中常用的逻辑运算符有如下几种:

了解了Java中的逻辑运算符之后,下面我们到IDEA中去使用一下:

/*
    逻辑运算符
 */
public class OperatorDemo02 {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 30;

        //逻辑与:&&
        System.out.println((i>j) && (i>k));//false && false
        System.out.println((i<j) && (i>k));//true && false
        System.out.println((i>j) && (i<k));//false && true
        System.out.println((i<j) && (i<k));//true && true
        System.out.println("-----------------------");

        //逻辑或:||
        System.out.println((i>j) || (i>k));//false || false
        System.out.println((i<j) || (i>k));//true || false
        System.out.println((i>j) || (i<k));//false || true
        System.out.println((i<j) || (i<k));//true || true
        System.out.println("-----------------------");

        //逻辑非:!
        System.out.println(!(i>j));//!false
        System.out.println(!!(i>j));//!!false
        System.out.println(!!!(i>j));//!!!false
        System.out.println(!!!!(i>j));//!!!!false
        
    }
}

三元运算符

来,继续啊,下面我们来学习三元运算符:

格式:关系表达式 ?表达式1 :表达式2;

范例:a > b ? a : b;

执行流程:

  • 首先计算关系表达式的值

  • 如果值为true,表达式1的值就是运算结果

    如果值为false,表达式2的值就是运算结果

了解了三元运算符的执行流程后,下面我们到IDEA中去使用一下:

/*
    三元运算符
 */
public class OperatorDemo03 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        int max = a > b ? a : b;

        System.out.println("较大的值是:" + max);
    }
}
三元运算符和if语句格式2的区别

这里呢,我们来讲解一下三元运算符和if语句格式2的区别,它们有什么区别呢?我们先到IDEA中进行讲解,然后再回来总结:

/*
    三元运算符和if语句格式2的区别
 */
public class OperatorTest {
    public static void main(String[] args) {
        //定义两个int类型的变量
        int a = 10;
        int b = 20;

        //需求:获取两个数中的较大值
        //if语句实现
//        int max;
//        if (a > b) {
//            max = a;
//        } else {
//            max = b;
//        }
//        System.out.println("较大的值是:" + max);

        if(a > b) {
            System.out.println("较大的值是:" + a);
        }else {
            System.out.println("较大的值是:" + b);
        }

        //三元运算符实现
        int max = a > b? a: b;
        System.out.println("较大的值是:" + max);
    }
}

讲解完毕之后,回来总结一下:

  • 如果if语句控制的内容:是用变量纪录数据值,可以通过三元运算符改进

 

  • 如果if语句控制的内容是:是通过输出语句直接输出数据值,无法通过三元运算符改进

 

选择语句之switch

格式:  

格式说明:

执行流程:

 

了解完switch语句后,下面我们到IDEA中去使用一下:

/*
    switch语句
 */
public class SwitchDemo {
    public static void main(String[] args) {
        //定义一个int类型的变量用来表示信号灯的状态(1表示红灯,2表示绿灯,3表示黄灯)
        int light = 1;
//        light = 2;
//        light = 3;
//        light = 4;

        //用switch语句实现交通信号灯案例
        switch (light) {
            case 1:
                System.out.println("红灯停");
                break;
            case 2:
                System.out.println("绿灯行");
                break;
            case 3:
                System.out.println("黄灯亮了等一等");
                break;
            default:
                System.out.println("交通信号灯故障,请在保证安全的情况下通行");
                break;
        }

    }
}

 最后,我们来总结一下,刚才在演示代码的时候有个注意事项:

注意:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整个switch语句结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/326983.html

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

相关文章

探索2023年大模型与AIGC峰会:程序员的学习之旅与未来展望

在2023年的技术前沿&#xff0c;大模型与AIGC峰会无疑是一个备受瞩目的盛会。 作为程序员&#xff0c;你将从这次大会中学到什么&#xff1f;这次峰会将为你揭示哪些前沿科技趋势&#xff1f;让我们一起来探讨这个问题。 一、理解大模型与AIGC 大模型和AIGC是人工智能领域中两…

开源图床Lychee本地如何部署并结合内网穿透工具实现远程访问

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…

NASA太空原子电池与Betavolt便携原子能电池对比分析

一、核心技术原理对比 1. Betavolt BV100原子能电池 工作原理&#xff1a;Betavolt BV100采用镍-63同位素作为能量源&#xff0c;这种同位素在衰变过程中释放β粒子&#xff08;高速电子流&#xff09;&#xff0c;并通过金刚石半导体材料捕获并转换为电能。不同于传统的热电转…

单调栈练习(五)— 子数组的最小值之和

题目 同样的LeetCode原题&#xff1a;题目链接 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 10^9 7 。 思路 暴力解 先来说暴力解的思路…

别再给自己的创业失败找借口了,什么都有你还创什么业?2024普通人如何创业,2024适合普通人的创业项目

说起创业&#xff0c;大家都是满腹牢骚&#xff0c;抱怨现在阶层固化&#xff0c;没有机会&#xff0c;自己也没有钱&#xff0c;没有资源。反正就是给自己创业失败找借口。 但是马云曾经表示&#xff0c;钱是最容易得到的东西&#xff0c;如果自己一开始就有钱&#xff0c;那…

C++特殊类设计类型转换

一、特殊类设计 在普通类的设计基础上&#xff0c;提出一些限制条件设计的类就是特殊类。 1、请设计一个类&#xff0c;不能被拷贝 拷贝只会放生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c; 只需让该类不能调…

Codeforces Round 919 (Div. 2) A~E

A. Satisfying Constraints(模拟) 题意&#xff1a; 给出 n n n个限制条件&#xff0c;问有多少个数字 k k k同时满足这些限制条件。 限制条件分为以下三种&#xff1a; k k k必须大于等于给出的一些数字 x x x k k k必须小于等于给出的一些数字 x x x k k k不能与给出的…

Go新项目-为何选Gin框架?(0)

先说结论&#xff1a;我们选型Gin框架 早在大概在2019年下旬&#xff0c;由于内部一个多线程上传的需求&#xff0c;考虑到Go协程的优势&#xff1b; 内部采用Gin框架编写了内部的数据上传平台BAP&#xff0c;采用GinVue开发&#xff0c;但前期没考虑到工程化思维&#xff0c;导…

【linux】终端发送网络请求与文件下载

发送网络请求 linux的终端中发送网络请求可以使用curl命令。 语法&#xff1a; curl [url] 但是他返回的是html代码&#xff0c;因为在终端中&#xff0c;他无法像浏览器中一样把访问到的html代码渲染成我们访问的页面&#xff0c;所以我们只能拿到他的源码。 访问CSDN - 专…

线性表的应用 | 线性表的合并

线性表的合并 #include <iostream> using namespace std;#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2typedef int Status;// 定义单链表 typedef struct LNode {int data;struct LNode *next; }LNode, *…

stack,queue和prioriy_queue

MySTL stack和queue template <class T, class Container deque<T> > class queue;template <class T, class Container deque<T> > class stack;选择适配器的宗旨是要能达到预想的功能 queue——只能使用list和deque stack——可以使用vector和…

【开源】基于JAVA的康复中心管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

试用清华Chatglm智能体

清华AI平台&#xff0c;感觉在见过的国内AI平台中做的是比较优秀的&#xff0c;目前该平台提供的智能体功能感觉更智能或者说更傻瓜式一些。定义可以定义专属智能体&#xff0c;这些智能体是自己想要的网络上的汇集处理后的信息&#xff0c;或者是绘画或者是编写某个方面的代码…

16.桥接模式

桥接模式 介绍 桥接模式是一种结构型设计模式&#xff0c;它通过将抽象部分与实现部分分离&#xff0c;使它们可以独立变化。这种模式通过组合的方式来实现&#xff0c;而不是继承。桥接模式通过将抽象和实现解耦&#xff0c;从而实现抽象和实现的分离&#xff0c;使得系统更加…

数字人系统OEM流程:部署AI数字人系统源码需要注意哪些?

随着数字化技术的不断发展&#xff0c;数字人SaaS系统源码的部署已经成为许多企业关注的焦点。数字人SaaS系统源码的部署可以帮助企业降低成本、提高运营效率&#xff0c;为企业提供更加高效的服务。然而&#xff0c;在部署数字人SaaS源码时&#xff0c;有一些须知事项需要我们…

SpringAOP-说说 JDK动态代理和 CGLIB 代理

Spring 的 AOP 是通过动态代理来实现的&#xff0c;动态代理主要有两种方式 JDK 动态代理和 Cglib 动态代理&#xff0c;这两种动态代理的使用和原理有些不同。 JDK 动态代理 Interface&#xff1a;JDK动态代理是基于接口的代理&#xff0c;它要求目标类实现一个接口。Invoca…

内存四区图练习

带着白卡去旅行 绘制图中三种情况的内存四区图 一个实参 一个形参 取地址 通过指针修改变量 返回 多级指针的训练 #define _CRT_SECURE_NO_WARNINGS #include<stdlib.h> #include<stdio.h> #include<string.h> #include<math.h>int getMem(char***p3,…

模拟记事本

1. 模拟记事本 设计一个记事本 &#xff08;1&#xff09;更改字体颜色 &#xff08;2&#xff09;更改字体大小 &#xff08;3&#xff09;新建记事本 &#xff08;4&#xff09;查找记事本中的数据 &#xff08;5&#xff09;设置消息提示 &#xff08;6&#xff09;设置粘贴…

蓝莓产量预测(R语言版)

数据描述 字段名 描述 字段名 描述 id 蓝莓唯一标识 MinOfUpperTRange 花期内最高温带日平均气温的最低记录, Clonesize 蓝莓克隆平均大小 AverageOfUpperTRange 花期内最高温带日平均气温, Honeybee 蜜蜂密度 MaxOfLowerTRange 花期内最低温带日平均气温的最…

GEE:机器学习分类中每个类别的概率图像可视化

作者:CSDN @ _养乐多_ 在 Google Earth Engine(GEE) 中应用机器学习分类器进行多分类时,有一个需求是想知道每个像素对于每个类别的分类概率。 比如在进行随机森林分类时,每个决策树会生成一个类别,通过投票选择票数最多的类别作为最终分类。除了最终分类结果,其他类别…