当前位置: 首页 > news >正文

Java开发从入门到精通(一):Java的基础语法进阶

Java大数据开发和安全开发

  • (一)Java注释符
    • 1.1 单行注释 //
    • 1.2 多行注释 /* */
    • 1.3 文档注释 /** */
    • 1.4 各种注释区别
    • 1.5 注释的特点
    • 1.5 注释的快捷键
  • (二)Java的字面量
  • (三)Java的变量
    • 3.1 认识变量
    • 3.2 为什么要用变量?
    • 3.3 变量在计算机中的执行原理
    • 3.4 变量的特点
    • 3.5 变量的应用
    • 3.6 变量的总结
    • 3.7 变量的注意事项
  • (四)Java关键字和标识符
    • 4.1 关键字
    • 4.2 标识符
  • (五)变量的详解
    • 5.1 二进制
    • 5.2 十进制转二进制的算法
    • 5.3 计算机中表示数据的最小单元
    • 5.4 其他数据形式是如何存储的
      • 5.4.1 字符在计算机中是如何存储的
      • 5.4.2 图片在计算机中是如何存储的
    • 5.5 二进制转十进制
    • 5.6 八进制和十六进制
    • 5.7 计算机的数据单位
  • (六)Java的数据类型
    • 6.1 **`数据类型的分类`**
    • 6.2 基本数据类型
    • 6.2 引用数据类型
    • 6.3 类型转换
      • 6.3.1 自动类型转换
      • 6.3.2 表达式的自动类型转换
      • 6.3.3 强制类型转换
  • (七)运算符
    • 7.1 算数运算符
    • 7.2 自增自减运算符
    • 7.3 赋值运算符
    • 7.4 关系运算符
    • 7.5 逻辑运算符
    • 7.6 三元运算符
    • 7.7 运算符的优先级
  • (八)键入数据

(一)Java注释符

注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的。

1.1 单行注释 //

public class NoteDemo {public static void main(String[] args) {// 以下是一个打印语句,是往控制台输出内容的System.out.println("hello world");}
}

1.2 多行注释 /* */

public class NoteDemo {public static void main(String[] args) {System.out.println("hello world");/*System.out.println("hello world");System.out.println("hello world");System.out.println("hello world");*/}
}

1.3 文档注释 /** */

/**目标:学会使用注释这个程序就是讲解注释的*/
public class NoteDemo {public static void main(String[] args) {System.out.println("hello world");}
}

1.4 各种注释区别

在这里插入图片描述

1.5 注释的特点

注释不影响程序的执行
在这里插入图片描述

1.5 注释的快捷键

在这里插入图片描述

(二)Java的字面量

计算机是用来处理数据的,字面量就是告诉程序员:数据在程序中的书写格式,也就是各种数据在java中怎么表达,比如数字,字符,字符串怎么表达
在这里插入图片描述

public class LiteralDemo {public static void main(String[] args) {// 目标:需要同学们掌握常见数据在程序中的书写格式吧。// 1、整数System.out.println(666);// 2、小数System.out.println(99.5);//3、字符:必须要用单引号围起来,有且只能有一个字符System.out.println('a');System.out.println('0');System.out.println('中');// System.out.println('中国');  两个字符System.out.println(' ');  //空字符// System.out.println(''); 不能不写// 特殊的字符:\n 代表的是换行的意思  \t代表的是一个tabSystem.out.println('中');System.out.println('\n');System.out.println('国');System.out.println('\t');// 4、字符串:必须用双引号围起来,里面的内容其实可以随意System.out.println("我爱你中国abc");System.out.println(" ");System.out.println("");System.out.println("我");// 5、布尔值:只有2个值 truefalseSystem.out.println(true);System.out.println(false);}
}

(三)Java的变量

变量的学习路径
在这里插入图片描述

3.1 认识变量

什么是变量 ?

  • 变量是用来记住程序要处理的数据的。

变量的定义格式
在这里插入图片描述

int age = 23;

3.2 为什么要用变量?

  • 使用变量记要处理的数据,编写的代码更灵活,管理代码更方便。
public class VariableDemo {public static void main(String[] args) {// 目标:认识变量,掌握使用变量的好处,变量的特点,应用场景。// 1、定义一个整型变量记住一个整数// 数据类型 变量名= 数据;// 注意:=在Java中是赋值的意思,从右往左看int age = 23;System.out.println(age);// 2、记住一个人的成绩double score = 99.5;System.out.println(score);System.out.println("----");//3、使用变量的好处:便于扩展和维护。System.out.println(666);  //想把666改成888 需要每个都改System.out.println(666);System.out.println(666);int number = 888;System.out.println(number); //想把888改成666 只需要改变量即可,这就是便于维护System.out.println(number);System.out.println(number);System.out.println(number);}
}

3.3 变量在计算机中的执行原理

  • 变量就是内存中的一块区域,可以理解成一个盒子,用来装一个数据的!
    在这里插入图片描述

3.4 变量的特点

变量中装的数据是可以被替换的

		// 4、变量的特点:里面装的数据可以被替换int age2 = 18;System.out.println(age2);age2 = 19;//赋值:从右边往左边执行System.out.println(age2);age2= age2 + 1;// 赋值:从右边往左边执行System.out.println(age2);

3.5 变量的应用

写程序对数据进行处理就很方便

		// 5、需求:钱包有9.5元,收到了10元红包,又发出去了5元红包,请输出各阶段钱包的情况double money=9.5;// 钱包System.out.println(money);// 收红包10元。money = money + 10;System.out.println(money);// 发出去5元。money = money - 5;System.out.println(money);

3.6 变量的总结

在这里插入图片描述

3.7 变量的注意事项

在这里插入图片描述

(四)Java关键字和标识符

4.1 关键字

  • Java语言自己用到的一些词,有特殊作用的,我们称之为关键字,如:public、class、int、double…

  • 注意:关键字是java用了的,我们就不能用来为做为:类名、变量名,否则会报错!
    在这里插入图片描述

4.2 标识符

标志符就是名字,我们写程序时会起一些名字,如类名变量名等等都是标识符。

标识符的要求

  • 基本组成:由数字、字母、下划线()和美元符($)等组成
  • 强制要求:不能以数字开头、不能用关键字做为名字、且是区分大小写的。
    在这里插入图片描述

标识符的建议规范

  • 变量名称:满足标识符规则,同时建议用英文、有意义、首字母小写,满足“驼峰模式”例如:int studyNumber = 59;
  • 类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如: HelloWorld, Student

(五)变量的详解

数字是以二进制的形式存储的

5.1 二进制

  • 只有0、1,按照逢2进1的方式表示数据

在这里插入图片描述

5.2 十进制转二进制的算法

在这里插入图片描述

5.3 计算机中表示数据的最小单元

  • 计算机中表示数据的最小单元:一个字节(bvte,简称B,是使用8个二进制位组成的)
  • 字节中的每个二进制位就称为位(bit,简称b),1B=8b

在这里插入图片描述

5.4 其他数据形式是如何存储的

在这里插入图片描述

5.4.1 字符在计算机中是如何存储的

在这里插入图片描述

public class ASCIIDemo {public static void main(String[] args) {// 目标:掌握ASCII编码表的编码特点。System.out.println('a'+10);//97 + 10 = 107   a的值对应的是编码表里的值97System.out.println('A'+10);//65 + 10 = 75System.out.println('0'+10);//48 + 10 = 58}
}

5.4.2 图片在计算机中是如何存储的

  • 图片就是无数个像素点组成的
  • 每个像素点的数据:用0~255255255表示其颜色

先存储每个像素点的数值 ,每个像素点由三位数 255 0 255 ,计算机挨个保存每个像素点的值就可以存储一张图片
在这里插入图片描述

5.5 二进制转十进制

在这里插入图片描述

5.6 八进制和十六进制

  • 为了便于观察和表示二进制,推出了八进制和十六进制。
  • 每3位二进制作为一个单元,最小数是0,最大数是7,共8个数字,这就是八进制。
    在这里插入图片描述
  • 每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用:0~9ABCDEF 代表就是十六进制。
    在这里插入图片描述
    在这里插入图片描述
        //二进制 八进制 十六进制在程序中的写法。int a1 =0B01100001;System.out.println(a1);int a2 = 0141; // 0开头的数据当成八进制看待!System.out.println(a2);int a3= 0XFA; // 0X开头的数据是十六进制System.out.println(a3);

5.7 计算机的数据单位

  • 计算机表示数据的最小组成单元是:字节,1B=8b。
  • 在B的基础上,计算机发展出了KB、MB、GB、TB、…… 这些数据单位!
    在这里插入图片描述

(六)Java的数据类型

6.1 数据类型的分类

在这里插入图片描述

6.2 基本数据类型

基本数据类型:4大类8种
在这里插入图片描述

public class VariableDemo2 {public static void main(String[] args) {// 目标:掌握基本数据类型的使用。// 1、byte short int longbyte a=127; // -128-127// byte a2=128;// 越界了short s= 13244;//short s1=93244;//越界了int i = 422424;// 默认//|注意:随便写一个整型字面量默认是int类型的,424242244444虽然没有超过long的范围,但是超过了本身int类型的范围// 如果希望随便写一个整型字面量默认是long类型的,需要在后面加上L/llong lg = 424242244444L;// 2、float double// 注意:随便写小数字面量,默认是double,如果希望小数是float,后面加上F/ffloat f = 3.14F;double d = 56.45;//3、char 字符型char ch='a';char ch2='中';// 4、booleanboolean flag =true;boolean flag2 = false;//5、String// 拓展一种引用数据类型,后面要用// String 称之为字符串类型,定义的变量可以用于记住一个字符串数据String name ="张三";System.out.println(name);}
}

6.2 引用数据类型

		//5、String// 拓展一种引用数据类型,后面要用// String 称之为字符串类型,定义的变量可以用于记住一个字符串数据String name ="张三";System.out.println(name);

6.3 类型转换

  • 1、存在某种类型的变量赋值给另一种类型的变量
  • 2、存在不同类型的数据一起运算

6.3.1 自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量

public class TypeConversionDemo {public static void main(String[] args) {// 目标:理解自动类型转换机制。byte a= 12;int b = a;//发生自动类型转换System.out.println(a);System.out.println(b);}
}

自动类型转换原理:

	byte   占1个字节int    占4个字节类型范围小的变量,可以直接赋值给类型范围大的变量

在这里插入图片描述
自动类型转换的其他形式
在这里插入图片描述

public class TypeConversionDemo {public static void main(String[] args) {// 目标:理解自动类型转换机制。int c= 100;//4字节double d=c;//8字节 发生了自动类型转换了System.out.println(d);char ch='a';// 2字节 'a'97 =>00000000 01100001int i=ch;// 4字节 发生了自动类型转换了=> 00000000 00000000 00000000 01100001System.out.println(i);}
}

6.3.2 表达式的自动类型转换

  • 不同类型的变量或者数据一起远算,最终运算出的数据的类型是什么??

  • 在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算

在这里插入图片描述
注意事项:

  • 表达式的最终结果类型由表达式中的**最高类型决定**
  • 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
public class TypeConversionDemo2 {public static void main(String[] args) {// 目标:掌握表达式的自动类型转换机制。byte a = 10;   int  b = 20;long c = 30;long rs = a + b + c;   //表达式的最终结果类型由表达式中的**`最高类型决定`** System.out.println(rs);double rs2 = a + b + 1.0;    //表达式的最终结果类型由表达式中的**`最高类型决定`** System.out.println(rs2);byte i = 10;short j= 30;int rs3 = i + j;   //在表达式中,byte、short、char 是直接转换成int类型参与运算的System.out.println(rs3);// 面试笔试题:byte b1 = 110;   //byte的范围是-128-127 110+80=190 超过了byte的范围 为了防止运算错误程序自动转换成了intbyte b2 = 80;int b3 = b1 + b2;  //在表达式中,byte、short、char 是直接转换成int类型参与运算的System.out.println(b3);}
}

6.3.3 强制类型转换

  • 类型范围大的数据或者变量,直接赋值给类型范围小的变量,会报错

在这里插入图片描述

  • 可以强行将类型范围大的变量、数据赋值给类型范围小的变量

     byte b =(byte)a;
    

在这里插入图片描述

public class TypeConversionDemo3 {public static void main(String[] args) {// 目标:掌握强制类型转换。int a= 20;byte b =(byte)a; // ALT + ENTER 强制类型转换。System.out.println(a);System.out.println(b);}
}

强制类型转换在计算机中的执行原理
在这里插入图片描述

public class TypeConversionDemo3 {public static void main(String[] args) {// 目标:掌握强制类型转换。int i = 1500;byte j=(byte) i;System.out.println(j);}
}

在这里插入图片描述

		double d = 99.5;int m =(int)d;// 强制类型转换System.out.println(m);//丢掉小数部分,保留整数部分>>>99

注意事项

  • 强制类型转换可能造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回

(七)运算符

7.1 算数运算符

在这里插入图片描述

public class OperatorDemo {public static void main(String[] args) {// 目标:掌握基本的算术运算符的使用。int a = 10;int b = 2;System.out.println(a + b);System.out.println(a - b);System.out.println(a * b);//20System.out.println(a / b);//5System.out.println(5 / 2);//2.5 ==> 2System.out.println(5.0 / 2);//2.5 想要的到小数int i = 5;int j = 2;System.out.println(1.0 * i / j);// 2.5System.out.println(a % b);//0System.out.println(3 % 2);//1}
}

+符号可以做连接符的

  • +符号与字符串运算的时候是用作连接符的,其结果依然是一个字符
    在这里插入图片描述

  • 怎么判断是连接符还是运算符

    独门秘籍
    能算则算,不能算就在一起。(计算机很聪明)

public class OperatorDemo {public static void main(String[] args) {// 目标2:掌握使用+符号做连接符的情况。int a2 = 5;System.out.println("abc"+ a2);//"abc5"System.out.println(a2+5);//10System.out.println("itheima" + a2 +'a'); // "itheima5a"System.out.println(a2+'a'+ "itheima"); // 102itheima}
}

7.2 自增自减运算符

在这里插入图片描述

注意:

  • ++、-- 只能操作变量,不能操作字面量的
public class OperatorDemo2 {public static void main(String[] args) {// 目标:掌握自增自减运算符的使用。int a= 10;a++; // a = a + 1++a;System.out.println(a);a--;//a = a - 1--a;System.out.println(a);// System.out.println(2++);// 自增减只能操作变量不能操作字面量的,会报错!}
}
  • ++、-- 如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别
  • 如果单独使用放前放后是没有区别的,
  • 非单独使用:在变量前,先进行变量自增/自减,再使用变量。
  • 非单独使用:在变量后,先使用变量,再进行变量自增/自减。

在这里插入图片描述

public class OperatorDemo2 {public static void main(String[] args) {// 目标:掌握自增自减运算符的使用。int i= 10;int rs=++i;// 先加后用System.out.println(rs);System.out.println(i);int j= 10;int rs2 =j++;// 先用后加System.out.println(rs2);System.out.println(j);}
}

自增、自减拓展案例
在这里插入图片描述

        int m=5;int n = 3;//m 5 6 5 4//n 3 4 3//            6  -  5  + 5   - 4   + 4   + int result = ++m - --m + m-- - ++n + n-- + 3;System.out.println(result);//9System.out.println(m);//4System.out.println(n);//3

7.3 赋值运算符

基本赋值运算符

  • 就是“=”,从右边往左看
    在这里插入图片描述

扩展赋值运算符
在这里插入图片描述
注意:扩展的赋值运算符隐含了强制类型转换

public class OperatorDemo3 {public static void main(String[] args) {// 目标:掌握扩展赋值运算符的使用。// +=// 需求:收红包double a=9.5;double b=520;a += b;// a = (double)(a + b); //赋值运算符隐含了强制类型转换System.out.println(a);//-= 需求:发红包double i= 600;double j= 520;i-=j;//i = (double)(i-j);System.out.println(i);int m= 10;int n=5;m *= n;//等价形式:m = (int)(m * n)m /= n;//等价形式:m = (int)(m / n)m %= n;//等价形式:m = (int)(m % n)System.out.println(m);}
}

练习题:

public class OperatorDemo3 {public static void main(String[] args) {// 目标:掌握扩展赋值运算符的使用。byte x=10;byte y= 30;// x = x + y;// 编译报错    byte = int + int 不成立了// x = (byte)(x + y);  //赋值运算符隐含了强制类型转换 byte = byte(int + int)// x += y; //等价形式:x = (byte)(x + y);System.out.println(x);}
}

7.4 关系运算符

  • 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或者false。

在这里插入图片描述
在这里插入图片描述

public class OperatorDemo4 {public static void main(String[] args) {int a = 10;int b = 5;boolean rs = a > b;System.out.println(rs);System.out.println(a >= b);//要么a大于b,或者a等于bSystem.out.println(2 >= 2);// trueSystem.out.println(a < b);System.out.println(a <= b);// falseSystem.out.println(2 <= 2);// trueSystem.out.println(a == b); // falseSystem.out.println(5 ==5);// true//System.out.println(a = b);// 注意了:判断是否相等一定是用 == ,=是用来赋值的。System.out.println(a != b);//trueSystem.out.println(10 != 10);// false}
}

7.5 逻辑运算符

  • 把多个条件放在一起运算,最终返回布尔类型的值:true、false

在这里插入图片描述

public class OperatorDemo5 {public static void main(String[] args) {// 目标:掌握逻辑运算符的使用。// 需求:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8double size =6.8;int storage = 16;//1、&前后的条件的结果必须都是true,结果才是true.boolean rs = size >= 6.95 & storage >= 8;System.out.println(rs);// 需求2:要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8// 2、|只要多个条件中有一个是true,结果就是true.boolean rs2 = size >= 6.95 | storage >= 8;System.out.println(rs2);// 3、!取反的意思System.out.println(!true);// falseSystem.out.println(!false);//trueSystem.out.println(!(2 > 1));// false// 4、^前后条件的结果相同时返回false,不同时返回true.System.out.println(true ^ true);// falseSystem.out.println(false ^ false);// falseSystem.out.println(true ^ false);// trueSystem.out.println(false ^ true);// true}
}

在这里插入图片描述

注意:

  • 在java中,“&”,“|” 无论左边是 false还是 true,右边都要执行
  • 由于&&、|| 运算效率更高、在开发中用的更多
public class OperatorDemo5 {public static void main(String[] args) {//5、&& 左边为false,右边不执行。int i = 10;int j= 20;System.out.println(i>100 && ++j>99);System.out.println(i>100 & ++j > 99);System.out.println(j);//6、||左边是true ,右边就不执行。int m = 10;int n= 30;System.out.println(m > 3 || ++n > 40);System.out.println(m > 3 | ++n > 40);System.out.println(n);}
}

7.6 三元运算符

三元运算符介绍:

  • 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2.
    在这里插入图片描述
public class OperatorDemo6 {public static void main(String[] args) {// 目标:掌握三元运算符的基本使用。double score = 58.5;String rs = score >= 60 ? "成绩及格" : "成绩不及格";System.out.println(rs);// 需求2:找出2个整数中的较大值,并输出。int a = 99;int b = 69;int max = a > b ? a : b;System.out.println(max);// 需求3:找3个整数中的较大值。int i = 10;int j = 45;int k = 34;// 找出2个整数中的较大值。int temp = i > j ? i :j;// 找出temp与k中的较大值int max2 = temp > k ? temp : k;System.out.println(max2);}
}

7.7 运算符的优先级

  • 在表达式中,哪个运算符先执行后执行是要看优先级的,例如“*、/”的优先级高于”+.

在这里插入图片描述

(八)键入数据

需求:

  • 请在程序中,提示用户通过键盘输入自己的姓名、年龄,并能在程序中收到这些数据,怎么解决?.
  • 需要自己研发技术来实现吗? 不需要!Java已经写好了实现程序,我们调用即可!

怎么调用程序

  • 翻看上一篇笔记JDK的组成,编写好的程序需要开发工具javac进行编译,开发工具java进行运行,输送到JVM执行代码
    JVM调用核心类库的程序System.out.println()才能使用打印输出程序输出hello world,

核心类库也叫API,APl(Application Programming Interface:应用程序编程接口)

  • Java写好的程序,咱们程序员可以直接拿来调用。

  • Java为自己写好的程序提供了相应的 程序使用说明书(API文档)。

在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {// 1、导包:一般不需要我们自己做,idea工具会自动帮助我们 导包的。// 2、抄写代码:得到一个键盘扫描器对象(东西)Scanner sc=new Scanner(System.in);//3、开始 调用sc的功能,来接收用户键盘输入的数据。System.out.println("请您输入您的年龄:");int age = sc.nextInt();// 执行到这儿,会开始等待用户输入一个整数,直到用户按了回车键,才会拿到数据。System.out.println("您的年龄是:" + age);System.out.println("请您输入您的名字:");String name = sc.next();// 执行到这儿,会开始等待用户输入一个字符串,直到用户按了回车键,才会拿到数据。System.out.println(name + "欢迎您进入系统~~");}
}

在这里插入图片描述

相关文章:

Java开发从入门到精通(一):Java的基础语法进阶

Java大数据开发和安全开发 &#xff08;一&#xff09;Java注释符1.1 单行注释 //1.2 多行注释 /* */1.3 文档注释 /** */1.4 各种注释区别1.5 注释的特点1.5 注释的快捷键 &#xff08;二&#xff09;Java的字面量&#xff08;三&#xff09;Java的变量3.1 认识变量3.2 为什么…...

【C++从0到王者】第五十一站:B+树

文章目录 一、B树1.B树的概念2.B树的特性3.B树的插入的过程4.总结 二、B*树1. B*树的概念2.B*树的分裂 三、总结四、B树系列和哈希和平衡搜索树作对比五、B树的一些应用1.索引2.MySQL索引3.MyISAM2.InnoDB 一、B树 1.B树的概念 B树是B树的变形&#xff0c;是在B树基础上优化的…...

Spring Cloud 面试题及答案整理,最新面试题

Spring Cloud中断路器的原理及其作用是什么&#xff1f; Spring Cloud断路器的原理和作用基于以下几个关键点&#xff1a; 1、故障隔离机制&#xff1a; 在微服务架构中&#xff0c;断路器作为一种故障隔离机制&#xff0c;当某个服务实例出现问题时&#xff0c;断路器会“断…...

使用Kali搭建钓鱼网站教程

一、前言 使用kali工具一分钟制作出和目标网站一模一样的钓鱼网站。目标用户使用钓鱼网站登录自己的账号&#xff0c;账号密码将被自动劫持。 二、钓鱼网站的制作过程 1.在虚拟机VMvare中登录kali linux 2.准备一个目标网址 3.在kail中搜索使用工具 4.在弹出的选项中选择第一…...

《TCP/IP详解 卷一》第15章 TCP数据流与窗口管理

目录 15.1 引言 15.2 交互式通信 15.3 延时确认 15.4 Nagle 算法 15.4.1 延时ACK与Nagle算法结合 15.4.2 禁用Nagle算法 15.5 流量控制与窗口管理 15.5.1 滑动窗口 15.5.2 零窗口与TCP持续计时器 15.5.3 糊涂窗口综合征 15.5.4 大容量缓存与自动调优 15.6 紧急机制…...

ContentType类型总结

ContentType类型总结 Content-Type是一个HTTP头部字段&#xff0c;用于指示资源的媒体类型&#xff08;MIME类型&#xff09;&#xff0c;以及可选的字符集和编码方式。它告诉浏览器或其他客户端如何解释接收到的数据。以下是一些常见的Content-Type类型及其用途&#xff1a; t…...

基于脚手架创建vue工程

环境要求: node.js:前端项目的运行环境 npm:javascript的包管理器 vue cli&#xff1a;项目脚手架 忘了自己有没有安装可以通过在黑窗口输入命令看一下 node -v npm -v 这里出现版本号就说明已经安装了 安装脚手架的命令:npm i vue/cli -g 创建vue基础工程 1.在一个没…...

【Http】OSI 和 TCP/IP,OSI,TCP/IP为什么网络要分层?

目录 OSI 和 TCP/IP OSI TCP/IP 为什么网络要分层&#xff1f; OSI 和 TCP/IP OSI ![image-20231205101106040](.assets/image-20231205101106040.pn OSI 的七层体系结构概念清楚&#xff0c;理论也很完整&#xff0c;但是它比较复杂而且不实用&#xff0c;而且有些功能在…...

STM32(5) GPIO(2)输出

1.点亮LED 1.1 推挽接法和开漏接法 要想点亮LED&#xff0c;有两种接法 推挽接法&#xff1a; 向寄存器写1&#xff0c;引脚输出高电平&#xff0c;LED点亮&#xff1b;向寄存器写0&#xff0c;引脚输出低电平&#xff0c;LED熄灭。 开漏接法&#xff1a; 向寄存器写0&…...

shell脚本一键部署docker

Docker介绍 Docker 是一个开源的平台&#xff0c;用于开发、交付和运行应用程序。它利用容器化技术&#xff0c;可以帮助开发人员更轻松地打包应用程序及其依赖项&#xff0c;并将其部署到任何环境中&#xff0c;无论是开发工作站、数据中心还是云中。以下是 Docker 的一些关键…...

vue2实现拖拽排序效果

1、首先下载 vuedraggable 插件 npm i -S vuedraggable2、使用方法 <template><div><div style"display: flex; justify-content: center; align-items: center"><div style"width: 120px; height: 60px; line-height: 60px; text-align…...

数据结构实验:二叉排序树

题目描述 对应给定的一个序列可以唯一确定一棵二叉排序树。然而&#xff0c;一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树&#xff0c;都得到一样的结果。你的任务书对于输入的各种序列&#xff0c;判断它们是否…...

Java类加载流程?

Java类加载过程是指将.class文件中的字节码数据加载到内存中&#xff0c;并生成对应的Class对象的过程。Java类加载器&#xff08;ClassLoader&#xff09;负责执行这个任务。Java类加载过程主要包括以下几个步骤&#xff1a; 加载&#xff08;Loading&#xff09;&#xff1a;…...

Docker从0到1的开始【入门篇】

Docker是一种流行的容器化平台&#xff0c;它允许开发人员将应用程序及其所有依赖项打包到一个标准化的单元中&#xff0c;从而实现快速部署和可移植性。在本文中&#xff0c;我们将列出一些常用的Docker命令&#xff0c;以帮助您更好地了解和使用Docker。 1. 安装Docker 要安…...

@ResponseStatus

目录 概述&#xff1a; 用途&#xff1a; 参数&#xff1a; 注意事项&#xff1a; 自定义异常类&#xff1a; 底层原理&#xff1a; 概述&#xff1a; 在 Spring MVC 中&#xff0c;我们有很多方法来设置 HTTP 响应的状态码其中最直接的方法&#xff1a;使用 ResponseSt…...

高效加载大文件(pandas+dask)

一、仅用pd加载大文件(iterator、chunksize) 要使用Pandas进行高效加载超大文件&#xff0c;我们通常会利用其内置的分块&#xff08;chunk&#xff09;处理功能。不过&#xff0c;请注意&#xff0c;Pandas本身并不支持多线程读取文件&#xff1b;它更倾向于单线程中进行块处理…...

游戏引擎分层简介

游戏引擎分层架构&#xff08;自上而下&#xff09; 工具层&#xff08;Tool Layer&#xff09; 在一个现代游戏引擎中&#xff0c;我们最先看到的可能不是复杂的代码&#xff0c;而是各种各样的编辑器&#xff0c;利用这些编辑器&#xff0c;我们可以制作设计关卡、角色、动画…...

向爬虫而生---Redis 探究篇6<Redis的Bigkey问题介绍>

前言: 随着数据规模的增长,Redis的BigKey问题也开始显现。 BigKey问题主要指的是存储了大量数据的key,这可能给Redis的性能和可用性带来负面影响。当一个key的数据量过大时,会占用宝贵的内存资源,拖慢Redis的响应速度。此外,存储和恢复这些BigKey也会变得困难和耗时,增…...

【开源物联网平台】FastBee认证方式和MQTT主题设计

&#x1f308; 个人主页&#xff1a;帐篷Li &#x1f525; 系列专栏&#xff1a;FastBee物联网开源项目 &#x1f4aa;&#x1f3fb; 专注于简单&#xff0c;易用&#xff0c;可拓展&#xff0c;低成本商业化的AIOT物联网解决方案 目录 一、接入步骤 1.1 设备认证 1.2 设备交…...

Ubuntu Qt控制终端运行ros

文章目录 gnome-terminalQt 通过QProcess类Qt 通过system gnome-terminal 在Ubuntu中可以使用man gnome-terminal命令查看gnome-terminal的使用指南&#xff0c;也可在ubuntu manuals查看&#xff1a; NAMEgnome-terminal — 一个终端仿真应用.概要gnome-terminal [-e, --c…...

mysql 性能调优参数配置文件

########################################################################### ## my.cnf for MySQL 8.0.x # ## 本配置参考 https://imysql.com/my-cnf-wizard.html # ## 注意&#xff1a; …...

windows右键新建文件没有txt文本文档怎么办?

我碰到此问题&#xff0c;按照以下方法改了注册表&#xff0c; 重启之后就正常了&#xff08;没有注销&#xff0c;只是单纯重启&#xff09;。以下方法来自AI&#xff1a; 如果在注册表的 .txt 路径下没有找到 ShellNew 键&#xff0c;你可以尝试手动创建这个键和所需的值来恢…...

已读不回,我又玻璃心了

最近有点上火&#xff0c;3个询盘给我整我无语了&#xff0c;难道我还没修炼到家&#xff1f;玻璃心又出来作祟了&#xff1f; 客户A急火火的发我一个文件&#xff0c;需求内容ios客户端调整&#xff0c;让我按照需求给找个人处理下&#xff0c;我收到后抓紧时间摇人&#xff0…...

面试经典150题(105-107)

leetcode 150道题 计划花两个月时候刷完之未完成后转&#xff0c;今天&#xff08;第2天&#xff09;完成了3道(105-107)150 105.&#xff08;191. 位1的个数&#xff09;题目描述&#xff1a; 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&am…...

javaWebssh药品进销存信息管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh药品进销存信息管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOM…...

计算机设计大赛 深度学习实现语义分割算法系统 - 机器视觉

文章目录 1 前言2 概念介绍2.1 什么是图像语义分割 3 条件随机场的深度学习模型3\. 1 多尺度特征融合 4 语义分割开发过程4.1 建立4.2 下载CamVid数据集4.3 加载CamVid图像4.4 加载CamVid像素标签图像 5 PyTorch 实现语义分割5.1 数据集准备5.2 训练基准模型5.3 损失函数5.4 归…...

Linux系统编程(六)高级IO

目录 1. 阻塞和非阻塞 IO 2. IO 多路转接&#xff08;select、poll、epoll&#xff09; 3. 存储映射 IO&#xff08;mmap&#xff09; 4. 文件锁&#xff08;fcntl、lockf、flock&#xff09; 5. 管道实例 - 池类算法 1. 阻塞和非阻塞 IO 阻塞 IO&#xff1a;会等待操作的…...

Python与FPGA——全局二值化

文章目录 前言一、Python全局128二、Python全局均值三、Python全局OTSU四、FPGA全局128总结 前言 为什么要进行图像二值化&#xff0c;rgb图像有三个通道&#xff0c;处理图像的计算量较大&#xff0c;二值化的图像极大的减少了处理图像的计算量。即便从彩色图像转成了二值化图…...

《Docker极简教程》--Docker的高级特性--Docker Compose的使用

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它允许开发人员通过简单的YAML文件来定义应用程序的服务、网络和卷等资源&#xff0c;并使用单个命令来启动、停止和管理整个应用程序的容器。以下是关于Docker Compose的一些关键信息和优势&#xff1a; 定义…...

tidyverse去除表格中含有NA的行

在tidyverse中&#xff0c;特别是使用dplyr包&#xff0c;去除含有NA的行可以通过filter()函数结合is.na()和any()或all()函数来实现。dplyr是tidyverse的一部分&#xff0c;提供了一系列用于数据操作的函数&#xff0c;使数据处理变得更加简单和直观。 以下是一个简单的例子&…...