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

news/2024/4/21 13:17:53/文章来源:https://blog.csdn.net/qq_43422402/article/details/136515667

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 + "欢迎您进入系统~~");}
}

在这里插入图片描述

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

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

相关文章

例行性工作(at,crontab)

目录 单一执行的例行性工作at 语法 选项 时间格式 at的工作文件存放目录 at工作的日志文件 实例 命令总结&#xff1a; 循环执行的例行性工作crond 语法 选项 crontab工作调度对应的系统服务 crontab工作的日志文件 用户定义计划任务的文件所在目录 动态查看 crontab文件格式 文…

集合拆分Lists.partition的使用

集合拆分Lists.partition的使用 集合拆分Lists.partition的使用 需要的包 import com.google.common.collect.Lists;引入maven依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>21.0</…

真Unity-Editor二次开发-ScriptableObject 可自定义UI界面

关于ScriptablObject自定义 作为官方指定的&#xff0c;曾经我也吐槽过ScriptableObject很鸡肋&#xff0c;个人曾经也是强烈反对在项目中使用&#xff0c;但直到我今天看到下面这个代码&#xff0c;菜发现其实只是自己太菜鸡而已 --------------不想多写什么 -------------…

Rust组织管理,箱Crate包Package和模块module定义和区别,use关键字作用

Rust 组织管理 任何一门编程语言如果不能组织代码都是难以深入的&#xff0c;几乎没有一个软件产品是由一个源文件编译而成的。 本教程到目前为止所有的程序都是在一个文件中编写的&#xff0c;主要是为了方便学习 Rust 语言的语法和概念。 对于一个工程来讲&#xff0c;组织…

NineData与OceanBase完成产品兼容认证,共筑企业级数据库新生态

近日&#xff0c;云原生智能数据管理平台 NineData 和北京奥星贝斯科技有限公司的 OceanBase 数据库完成产品兼容互认证。经过严格的联合测试&#xff0c;双方软件完全相互兼容、功能完善、整体运行稳定且性能表现优异。 此次 NineData 与 OceanBase 完成产品兼容认证&#xf…

Manz高压清洗机S11-028GCH-High Quality Cleaner 操作使用说明492页

Manz高压清洗机S11-028GCH-High Quality Cleaner 操作使用说明492页

理解 JSON 和 Form-data 的区别

在讨论现代网络开发与API设计的语境下&#xff0c;理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里&#xff0c;特别值得关注的是两种主流数据格式&#xff1a;JSON与Form-data。尽管它们的终极目标一致&#xff0c;即数据传输的高效性和可靠性&#xff0c;但…

wps没保存关闭了怎么恢复数据?数据恢复这样做

WPS文件已成为我们不可或缺的一部分。从撰写报告、制作表格到展示演讲&#xff0c;WPS系列软件为我们提供了极大的便利。然而正如任何电子设备都可能遇到的问题一样&#xff0c;WPS文件有时也可能出现损坏的情况&#xff0c;这无疑给我们的工作带来了不小的困扰。 那么当WPS文件…

RPC——远程过程调用

一、RPC介绍 1.1 概述 RPC&#xff08;Remote Procedure Call Protocol&#xff09; 远程过程调用协议。RPC是一种通过网络从远程计算机程序上请求服务&#xff0c;不需要了解底层网络技术的协议。RPC主要作用就是不同的服务间方法调用就像本地调用一样便捷。 1.2 RPC框架 …

【项目笔记】java微服务:黑马头条(day02)

文章目录 app端文章查看&#xff0c;静态化freemarker,分布式文件系统minIO1)文章列表加载1.1)需求分析1.2)表结构分析1.3)导入文章数据库1.3.1)导入数据库1.3.2)导入对应的实体类 1.4)实现思路1.5)接口定义1.6)功能实现1.6.1)&#xff1a;导入heima-leadnews-article微服务&am…

JEDEC标准介绍及JESD22全套下载

JEDEC标准 作为半导体相关的行业的从业者&#xff0c;或多或少会接触到JEDEC标准。标准对硬件系统的设计、应用、验证&#xff0c;调试等有着至关重要的作用。 JEDEC&#xff08;全称为 Joint Electron Device Engineering Council&#xff09;是一个电子组件工程标准制定组织…

面试题个人总结(面经)

自我介绍 你好&#xff0c;我叫XXX&#xff0c;是今天面试初级蓝队的人员&#xff0c;我毕业于XXXX&#xff0c;专业为网络空间安全,我曾经在XXXXX实习过&#xff0c;有过大概一年左右的工作经验&#xff0c;还有过一定的护网经验&#xff0c;去年在XXX厂商护过网&#xff0c;…

Python与FPGA——图像锐化

文章目录 前言一、图像锐化二、Python robert锐化三、Python sobel锐化四、Python laplacian锐化五、FPGA sobel锐化总结 前言 在增强图像之前一般会先对图像进行平滑处理以减少或消除噪声&#xff0c;图像的能量主要集中在低频部分&#xff0c;而噪声和图像边缘信息的能量主要…

排序算法——梳理总结

✨冒泡 ✨选择 ✨插入  ✨标准写法  &#x1f3ad;不同写法 ✨希尔排序——标准写法 ✨快排 ✨归并 ✨堆排 ✨冒泡 void Bubble(vector<int>& nums) {// 冒泡排序只能先确定最右边的结果&#xff0c;不能先确定最左边的结果for (int i 0; i < nums.size(); i){…

Spark Core

Spark Core 一、Spark RDD RDD概述 1.RDD基础 2.RDD源代码描述 3.RDD特性 4.Spark宽窄依赖 RDD创建 在驱动器中创建RDD 1.parallelize 读取外部数据集创建RDD 2.textFile RDD操作 缓存rdd到内存 1.RDD转化操作 2.常见的转化操作 3.RDD行动操作 4.常见的行动操作 Spark…

力扣-数组题

1. 两数之和 找出map中是否有target-nums[i]&#xff0c; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hash;for(int i 0 ;i < nums.size(); i){if(hash.find(target - nums[i]) ! hash…

Service Mesh:如何为您的微服务架构带来可靠性和灵活性

在云原生架构中&#xff0c;Service Mesh 技术成为了微服务架构中不可或缺的一环。本文灸哥将和你一起探讨 Service Mesh 技术的原理、功能和实践&#xff0c;帮助架构师和开发人员更好地理解和应用这一关键技术。 1、Service Mesh 技术概述 Service Mesh 又称为服务网格&…

【STM32】HAL库 CubeMX 教程 --- 高级定时器 TIM1 定时

实验目标&#xff1a; 通过CUbeMXHAL&#xff0c;配置TIM1&#xff0c;1s中断一次&#xff0c;闪烁LED。 一、常用型号的TIM时钟频率 1. STM32F103系列&#xff1a; 所有 TIM 的时钟频率都是72MHz&#xff1b;F103C8不带基本定时器&#xff0c;F103RC及以上才带基本定时器。…

代码随想录 回溯算法-分割

目录 131.分割回文串 93.复原IP地址 131.分割回文串 131. 分割回文串 中等 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xff1a; 输…

【PHP+代码审计】PHP基础——变量和常量的定义和使用

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…