第02章-变量与运算符

news2024/11/24 3:52:39

1 关键字

关键字被Java语言赋予了特殊含义,用作专门用途的字符串(或单词)。如classpublicstaticvoid等,这些单词都被Java定义好了,称为关键字。

  • 特点:关键字都是小写字母
  • 官方地址:Java Language Keywords (The Java™ Tutorials > Learning the Java Language > Language Basics)icon-default.png?t=N7T8https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

 2 标识符

标识符:Java中变量、方法、类等要素命名时使用的字符序列,称为标识符。简单的说凡是可以自己命名的地方法都是标识符,如类名、方法名、变量名等等。

标识符命名规则必须遵守,不遵守会报错

  • 由26个英文字母大小写,0-9,_或$组成;
  • 不能包含空格,不能以数字开头;
  • 不能与关键字或保留字相同;
  • 严格区分大小写,长度不限;
  • 定义标识符时要“见名知意”。

标识符命名规范建议遵守,不遵守也可以,但遵守了显得更专业

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz。如java.lang
  • 类名、接口名:多单词组成时所有字母的首字母大写:XxxYyyZzz。如Hello
  • 变量名、方法名:多单词组成时第一个单子首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz。如bookName
  • 常量名:所有字母都大写,多单词组成时每个单词之间用下划线链接:XXX_YYY_ZZZ。如MAX_VALUE

3 变量

变量:内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。

  • 变量三要素:数据类型变量名存储的值
  • Java中变量声明的格式:数据类型 变量名 = 变量值;
  • 变量的作用:在内存中保存数据
  • 变量都有作用域,只在作用域内生效,同一作用域内变量不能重名
class VariableTest{
	public static void main(String[] args) {
		//变量的声明
		//分步式:先声明,再初始化
		char gender;
		gender = '男';
		//一步式:声明同时初始化
		int age = 18;
        //变量的使用,直接调用变量名
		System.out.println(gender+""+age);
	}
}

4 数据类型

表数范围计算公式

整型

  • 整数类型包括byteshortintlong
  • 注意:

        1. 声明整型变量时遵守保小不保大,数据类型能小则小;

        2. 整型常量默认为int占用空间更小,声明long型常量须后加lL

  • 各整数类型有固定的表数范围和占用存储空间: 

 浮点型

  • 整数类型包括floatdouble
  • float:单精度,尾数可以精确到7位有效数字;
  • double:双精度,精度是float的两倍;
  • 注意: 浮点型型常量默认为double精度更高,声明float型常量须后加fF
  • 浮点型表数范围和占用空间:

  • 浮点型常量的两种表示形式:
  1. 十进制形式。如5.12 512.0f .512(必须有小数点)
  2. 科学计数法形式。如5.12e2 512E2 100E-2

 关于浮点型精度的说明: 

  1. 不是所有小数都可以精确的使用二进制浮点数表示。二进制浮点不能精确的表示0.1、0.01、0.001这样10的负次幂。
  2. 浮点型float、double的数据不适合在不容许舍入误差的金融计算领域,如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类
  3. 浮点在机器中存放的形式,浮点数=符号位+指数位+尾数位。浮点数float超出存储空间的值会被丢掉
  4. 演示:
// 1.float精度不高,超出存储范围的部分会被丢掉
float num1 = 2.1234567851f;
double num2 = 2.1234567851f;
System.out.println("float=" + num1 + "\ndouble=" + num2);
// 2.二进制浮点数不能准确的表示0.1、0.01、0.001等10的负次幂的数
System.out.println(0.1 + 0.2);
// 3.浮点型使用陷阱
double num3= 2.7;
double num4=8.1/3;
System.out.println(num3 == num4);
float  f1 = 123123123f;
float f2 = f1+1;
System.out.println(f1);
System.out.println(f2);
System.out.println(f1== f2);

应用案例:

案例1:定义圆周率并赋值为3.14,现在3个圆的半径分别为1.2、2.5、6,求他们的面积

/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/26-0:34
 * @description 定义圆周率并赋值为3.14,现在3个圆的半径分别为1.2、2.5、6,求他们的面积
 */
public class FloatDoubleExer {
    public static void main(String[] args) {
        double PI = 3.14; //圆周率

        double radius1 = 1.2;
        double radius2 = 2.5;
        double radius3 = 6;

        System.out.println("第1个圆的面积=" + PI * radius1 * radius1);
        System.out.println("第2个圆的面积=" + PI * radius2 * radius2);
        System.out.println("第3个圆的面积=" + PI * radius3 * radius3);
    }
}

 案例2:将华氏温度转为摄氏温度(℃):℃=(℉ - 32) / 1.8

/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/26
 * 将华氏温度转为摄氏温度(℃):℃=(℉ - 32) /1.8
 */
public class FloatDoubleExer02 {
    public static void main(String[] args) {
        double hua = 80.0;
        double she = (hua-32)/1.8;
        System.out.println("华氏度"+hua+"℉=摄氏度"+she+"℃");
    }
}

 字符型

  • char类型数据用来表示通常意义上“字符”(占2字节)
  • 字符型变量的三种表现形式:
  1. 形式1:使用单引号('')括起来的单个字符。如:char c1 = 'a'; char c2 = '男'; char c3 = 9;
  2. 形式2:直接使用Unicode值来表示字符常量:‘\uXXXX’。其中,XXXX表示一个十六进制整数。如:\u0023 表示'#'。
  3. Java中还允许使用转义字符'\',来将其后的字符转变为特殊字符型常量。如:char c4 = '\n';,'\n'表示换行符
  4. char类型是可以进行运算的,它都对应有Unicode码,可以看作是一个数值,ASCII码值。
  • 演示:
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/26
 */
public class CharBooleanTest {
    public static void main(String[] args) {
        //1.字符类型 char(2字节)
        //2.表示形式
        //2.1 使用单引号('')括起来的单个字符
        char c1 = 'a';
        char c2 = '1';
        char c3 = '男';
        char c4 = '@';
        //2.2 直接使用Unicode值来表示字符常量:'\'uXXXX'。其中,XXXX表示一个十六进制整数。
        char c5 = '\u0036'; //表示后买你
        System.out.println(c5);
        //2.3使用转义字符'\',来将其后的字符转变为特殊字符型常量。
        char c6 = '\n';
        //2.4char类型是可以进行运算的,它都对应有Unicode码,可以看作是一个数值,ASCII码值
        char c7 = 97;
        System.out.println(c7);
    }
}

布尔型

  • 布尔类型(boolean),只有两个值true、false;
  • 常用于逻辑条件的判断,如条件判断、分支结构、循环结构等;
  • 演示:

// 布尔类型(boolean) 1字节
// 1.只有两个值true和false
boolean b1 = true;
boolean b2 = false;
// 不能使用0和1代替true和false
// boolean b3 = 0; //编译不通过

// 常用于条件判断或循环语句中
boolean isStudent = true;
if (isStudent){
    System.out.println("是学生");
}else{
    System.out.println("不是学生");
}

5 数据类型之间的转换

自动类型提升

  • 自动类型转换:数据类型表数范围的自动提升
  • 类型转换规则:
    • 容量较小的类型自动转换为容量大的数据类型(容量是指表数范围的大小);
    • byte、short、char之间运算后为int类型;
    • char不能与short、int转换。
  • 演示:
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/27
 * 演示基本数据类型之间的类型转换
 * 包括:
 *      1.自动 类型转换(数据类型的精度\表数提升)
 *      2.强制 类型转换
 * 类型转换规则:容量是指数据类型(表数范围)的大小
 * 1.容量较小的类型赋值给容量较大的类型时,结果自动转换为容量大的数据类型
 * 	byte ---> short ---> int ---> long ---> float ---> double
 * 2.byte、short char之间运算后为int类型:(特殊情况1)
 *  byte + short ---> int,byte + byte---> int,short + short ---> int
 * 3.char不能与short、int转换(特殊情况2)
 */
public class BasicDataSwitch {
    public static void main(String[] args) {

        // 容量是指表数范围的大小
        // 如long型占8字节,float型占4字节,但是表述范围float更大
        long l1 = 115431543L;
        float f1 = l1;
        float f2 = 2.45465412f;
        //long l2 = f2; // 编译报错

        // byte ---> int  ok
        byte b1 = 1;
        int i1 = b1 + b1;

        // int ---> byte
        //byte b2 = i1 + i1; // 编译报错

        // 特殊情况1:byte + short ---> int
        byte b3 = 11;
        short s1 = 12;
        //short s2 = s1+b3; // 编译报错
        int i2 = s1 + b3;

        //  特殊情况2:char不能与byte、short进行类型转换
        char c1 = 10;
        //byte b4 = c1; // 编译报错
        //short s2 = c1; // 编译报错
    }
}

 强制类型转换

  • 强制类型转换:将取值范围(或容量)大的类型强制转换为取值范围小(或容量小的类型)。
  • 强制类型转换符:"()",在小括号内指定要转换为的数据类型。
  • 强制类型转换可能会导致精度损失。
  • 演示:
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/28
 * 演示强制类型转换的使用
 * 规则:
 *      1.如果需要将容量大的赋值给容量小的类型,需要进行强制类型转换
 *      2.强制类型转换符:"()",在小括号内指定要转换为的数据类型
 *      3.强制类型转换可能会导致精度损失
 */
public class ForceTypeSwitch {
    public static void main(String[] args) {
        // 自动类型提升 int ---> double
        double d1 = 12;
        // 尝试double ---> int,编译错误
        //int i1 = d1;
        int i2 = (int) d1;
        System.out.println(i2);

        long l1 = 666;
        short s1 = (short) l1;
        System.out.println(l1);

        // 精度损失
        double d2 = 12.3;
        int i3 = (int) d2;
        System.out.println(i3);

        int i4 = 128;
        byte b1 = (byte) i4;
        System.out.println(b1);
    }
}

6 基本数据类型与String类型转换 

  • 基本数据类型-->String类型:使用包装类的parse方法。
  • String类型-->基本数据类型:使用双引号""拼接。
  • 注意:String类型-->基本数据类型时,String数据的格式必须是能够转换的基本数据类型
  • 演示:
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/28
 * 演示String与基本数据类型之间的转换
 * 1.基本数据类型-->String类型(使用包装类的parse方法)
 * 2.String类型-->基本数据类型(使用双引号""拼接)
 */
public class StringToBasic {
    public static void main(String[] args) {
        // 基本数据类型-->String类型(使用包装类的parse方法)
        int n1 = 100;
        float f1 = 1.1f;
        double d1 = 4.5;
        boolean b1 = true;
        String s1 = n1 + "BasicToString";
        String s2 = f1 + "BasicToString";
        String s3 = d1 + "BasicToString";
        String s4 = b1 + "BasicToString";
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);

        // String类型-->基本数据类型(使用双引号""拼接)
        // 需要通过基本数据的包装类调用parseXX方法
        String byteStr = "127";
        byte b2 = Byte.parseByte(byteStr);
        String shortStr = "123";
        short sh2 = Short.parseShort(shortStr);
        String intStr = "321";
        int int2 = Integer.parseInt(intStr);
        String longStr = "321123321";
        long long2 = Long.parseLong(longStr);
        String floatStr = "12.3";
        float float2 = Float.parseFloat(floatStr);
        String doubleStr = "12.3";
        double double2 = Double.parseDouble(doubleStr);
        //char类型调用charAt(0)方法
        String charStr = "12.3";
        char char2 = charStr.charAt(0);
        String booleanStr = "true";
        boolean boolean2 = Boolean.parseBoolean(booleanStr);
        System.out.println(b2 + " " + sh2 + " " + 
                           int2 + " " + long2 + " " + 
                float2 + " " + double2 + " " + 
                char2 + " " +
                boolean2);
    }
}

7 进制运算 

进制的分类

  • 十进制(decimal)
    • 数字组成:0-9
    • 进位规则:满10进1
  • 二进制(bindary):以0b或0B开头
    • 数字组成:0-1
    • 进位规则:满2进1
  • 八进制(octal):很少使用,以数字0开头
    • 数字组成:0-7
    • 进位规则:满8进1
  • 十六进制(bindary):以0x或0X开头
    • 数字组成:0-9和a-f。a-f不区分大小写
    • 进位规则:满16进1
  • 演示:
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/28
 * 演示二进制数
 * 用四种进制表示数字20
 */
public class BinaryTest {
    public static void main(String[] args) {
        // 十进制
        int num1 = 20;
        // 二进制
        int num2 = 0b10100;
        // 八进制
        int num3 = 024;
        // 十六进制
        int num4 = 0x14;
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4); 
    }
}

进制的转换

十进制

二进制

八进制

十六进制

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

a

11

1011

13

b

12

1100

14

c

13

1101

15

d

14

1110

16

e

15

1111

17

f

16

10000

20

10

其它进制转十进制:

  • 二进制转十进制:从最低位(右边)开始,将每一位上的数提取出来,乘以2的(位数-1)次方。位数是指从右边数第几位。如0b1011=1*2^(4-1) + 0*2^(3-1) + 1*2^(2-1) + 1*2^(1-1)
  • 八进制转十进制:从最低位(右边)开始,将每一位上的数提取出来,乘以8的(位数-1)次方。
  • 十六进制转十进制:从最低位(右边)开始,将每一位上的数提取出来,乘以16的(位数-1)次方。

 十进制转其它进制:将十进制连续除以其它进制数,直到商为0,取每步的余数倒置就是对应的进制数。

  • 十进制转二进制:十进制数连续除以2,直到商为0,取每步的余数倒置
  • 十进制转八进制:十进制数连续除以8,直到商为0,取每步的余数倒置
  • 十进制转十六进制:十进制数连续除以16,直到商为0,取每步的余数倒置

二进制转八、十六进制:

  • 二进制转八进制:将二进制数的每3位为一组(从右开始个位数的值分别是421),每一组对应转换为一个8进制数。
  • 二进制转十六进制:将十六进制的每4位为一组(从右开始个位数的值分别是8421),每一组对应转换为一个16进制数。

 8 运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等等。

运算符的分类:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、Lambda运算符。

分类

运算符

算术运算符(7个)

+  -  *  /  %  ++  --

赋值运算符(12个)

=  +=  -=  *=  /=  %=  >>=  <<=  >>>=  &=  |=  ^=

比较(或关系)运算符(6个)

>  >=  <  <=  ==  !=

逻辑运算符(6个)

&  |  ^  !  &&  ||

位运算符(7个)

&  |  ^  -  <<  >>  >>>

条件运算符(1个)三元运算符

条件表达式?表达式1:表达式2;

Lambda运算符(1个)

->(Java新特性章节讲解)

算术运算符

运算符

功能

范例

结果

+

正号

+3

3

-

负号

b=4; -b;

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模(取余)

7%5

2

++i

自增(前):先自增,后赋值

a=2;b=++a;

a=3;b=3

i++

自增(后):先赋值,后自增

a=2;b=a++

a=3;b=2

--i

自减(前):先自减,后赋值

a=2;b=--a

a=1;b=1

i--

自减(后):先赋值,后自减

a=2;b=a--

a=1;b=2

+

字符串拼接

"Hello"+"world"

"Helloworld"

赋值运算符 

赋值运算符是将某个运算后的值赋给指定的变量。

  • 基本赋值运算符:"=",如int n = 1;;
    • 当"="两边数据类型不一致时,可以使用自动类型提升或强制类型转换进行处理;
  • 复合赋值运算符:+=、-+、*=、/=、%=,如n += 3;等价于n = n + 3;;
    • 注意:复合赋值运算符会进行类型转换,底层具有强制类型转换符。
  • 演示:
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/28
 * 演示赋值运算符
 */
public class SetValueTest {
    public static void main(String[] args) {

        int n = 10;
        // 1.当"`=`"两边数据类型不一致时,可以使用`自动类型提升`或`强制类型转换`进行处理
        long l1 = n; // 自动类型提升
        byte b1 = (byte) n; // 强制类型转换
        // 2.允许连续赋值
        int a, b;
        a = b = 100;
        // 3.复合赋值运算符会进行`类型转换`,底层具有`强制类型转换符`
        byte n1 = 12;
        n1 += 3; // 等价于n1=(byte)(n1+3),强制类型转换为int
        System.out.println(n1);
    }
}
  • 练习1:
int n = 10;
n += (n++) + (++n); // 等价于n = n + (n++) + (++n)
// num = 10 + 10 + 12,先计算n++和++n
System.out.println(n);

 关系运算符

关系运算符的结果都是boolean类型truefalse

  • 关系运算符:>>=<<===!=
  • ==和!=适用于基本数据类型和引用数据类型,其它只适用于基本数据类型;
  • 注意:=是赋值运算符,==是关系运算符

运算符

功能

范例

结果

==

等于

8 == 7

false

!=

不等于

8 != 7

true

>

大于

8 > 7

true

>=

大于等于

8 >= 7

true

<

小于

8 < 7

false

<=

小于等于

8 <= 7

false

A instanceof B

检测A是否为B类的对象

"ahhlt" instanceof String

true

 逻辑运算符

逻辑运算符只对boolean类型进行操作,结果也是boolean类型的值。

运算符

功能

&&&

表示""关系,符号两边同时为true时,结果为true。助记:同1为1,1为true,0为fasle

|||

表示""关系,符号两边只要有一个为true,结果为true。助记:有1为1

!

表示""关系,变量的值为true时,结果为false。助记:取反

^

表示"异或"关系,符号两边的值不同时,结果为true。助记:有同为0,不同为1

 逻辑运算与短路运算的区别:

  • 短路与(&&)和逻辑与(&):
    • 短路与(&&):条件1 && 条件2,若条件1为false,则不再判断条件2。
    • 逻辑与(&):条件1 & 条件2,若条件1为false,继续判断条件2。
    • 注意:开发中一般使用短路与,除非特定情况才使用逻辑与。
  • 短路或(||)和逻辑或(|):
    • 短路或(||):条件1 || 条件2,若条件1为true,则不再判断条件2。
    • 逻辑或(|):条件1 | 条件2,若条件1为true,继续判断条件2。

三元运算符 

  • 语法格式:(条件表达式)?表达式1:表达式2
  • 运算规则:如果条件表达式的值为true,运算结果为表达式1,否则为表达式2
  • 表达式1和表达式2必须是可以赋给接收变量的类型(可以自动转换或语法强转)
/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/28
 * 条件表达式的使用
 */
public class ConditionTest {
    public static void main(String[] args) {
        int a = 10;
        int b = 99;
        int result = (a > b) ? a++ : b--;
        // a > b为false,返回第二个表达式b--,先将b的值返回,b再自减
        System.out.println("result= " + result);
        System.out.println("b= " + b);
        // 表达式类型与接收变量类型不同时,必须满足类型自动转换或者强制转换
        int c = a > b ? (int)1.1 : (int)2.2;
    }
}

位运算符

位运算

  • 计算机进行运算时,都是对补码进行运算,显示运算结果时将计算后的补码转为原码;
  • 正数的原码、反码、补码都相同,称三码合一
  • 负数的三码:
    • 反码:原码除符号位不变,其它位取反
    • 补码:反码+1。相应的:负数的反码= 补码-1
    • 符号位:二进制的最高位(最左边)为符号位,0代表正数,1代表负数

位运算符

二进制补码进行运算

运算符

功能

&

按位与,全1为1

|

按位或,有1为1

^

按位异或,不同为1,相同为0

~

按位取反,每位都取相反值

<<

左移,符号位不变,低位补0。左移n位相当于乘2的n次方

>>

右移,符号位不变,用符号位补高位空缺。右移n位相当于除2的n次方

>>>

无符号右移,低位溢出,高位补0

演示:

/**
 * @author shbzhao
 * @version 1.0
 * @date 2023/8/28
 */
public class BitOperatorTest {
    public static void main(String[] args) {
        /*
         * 1.按位与(&):2 & 3
         * 正数的原码、反码、补码都相同
         * 2的三码:00000000 00000000 00000000 00000010
         * 3的三码:00000000 00000000 00000000 00000011
         * 2 & 3: 00000000 00000000 00000000 00000010
         * 结果为2
         *
         * 2.按位或(&):
         * */
        System.out.println(2 & 3);
    }
}

 运算符优先级

优先级

运算符说明

Java运算符

1

括号

()、[]、{}

2

正负号

+、-

3

单元运算符

++、--、~、!

4

乘、除、取余

*、/、%

5

加、减

+、-

6

位移运算符

<<、>>、>>>

7

关系运算符

>、>=、<、<=、==、!=、instanceof

8

按位与

&

9

按位异或

^

10

按位或

|

11

短路与

&&

12

短路或

||

13

三元运算符

条件表达式?表达式1:表达式2;

14

赋值运算符

=、+=、-=、*=、/=、%=、>>=、<<=、>>>=、&=、|=、^=

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国长城-安全防护-硬件,软件,细粒度权限划分-等级保护,人员意识

目录 等级保护 安全防护 中国长城-安全防护 硬件&#xff0c;软件&#xff0c;细粒度权限划分-等级保护&#xff0c;人员意识 等级保护 安全防护 建立安全管理制度&#xff1a;制定信息安全政策&#xff0c;明确安全管理职责&#xff0c;建立安全培训和考核机制&#xff0c…

Mgeo:multi-modalgeographic language model pre-training

文章目录 question5.1 Geographic Encoder5.1.1 Encoding5.1.2 5.2 multi-modal pre-training 7 conclusionGeo-Encoder: A Chunk-Argument Bi-Encoder Framework for Chinese Geographic Re-Rankingabs ERNIE-GeoL: A Geography-and-Language Pre-trained Model and its Appli…

开发第一个flutter app的六个关键步骤

Flutter这些年发展的很快&#xff0c;特别是在 Google 持续的加持下&#xff0c;Flutter SDK 的版本号已经来到了 3开头&#xff0c;也正式开始对 Windows、macOS 和 Linux 桌面环境提供支持。如果从 Flutter 特有的优势来看&#xff0c;我个人认为主要是它已经几乎和原生的性能…

【嵌入式项目应用】__UART自定义通信协议代码实现方法

目录 前言 一、什么是通信协议 二、简单通信协议的问题 三、通信协议的常见内容 1. 帧头 2. 设备地址/类型 3. 命令/指令 4. 命令类型/功能码 5. 数据长度 6. 数据 7.帧尾 8.校验码 四、通信协议代码实现 1. 消息数据发送 a. 通过串口直接发送每一个字节 b. 通过…

16. 机器学习 - 决策树

Hi&#xff0c;你好。我是茶桁。 在上一节课讲SVM之后&#xff0c;再给大家将一个新的分类模型「决策树」。我们直接开始正题。 决策树 我们从一个例子开始&#xff0c;来看下面这张图&#xff1a; 假设我们的x1 ~ x4是特征&#xff0c;y是最终的决定&#xff0c;打比方说是…

十年JAVA搬砖路——Linux搭建Ldap服务器。

1.安装命令 yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel2.启动ldap systemctl start slapd systemctl enable slapd3.修改密码 slappasswd Aa123456获得返回的密码加密密码串&#xff1a; {SSHA}DkSw0…

SQLServer数据库透明加密 安当加密

安当TDE透明加密组件是一种用于数据保护的解决方案&#xff0c;它对数据进行加密&#xff0c;以防止未经授权的访问和数据泄露。 以下是安当TDE透明加密组件的主要功能介绍&#xff1a; 数据保护&#xff1a;安当TDE透明加密组件可以对数据库中的敏感数据进行加密&#xff0c;…

软件无线电处理平台解决方案:330-基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡

基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡 一、板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片&#xff0c;pin_to_pin兼容FPGAXC7K410T-2FFG900 &#xff0c;支持PCIeX8、64bit DDR3容量2GByte&#xff0c;HPC的FMC连接器&#xff0c;北京太速科…

TypeScript之命名空间与模块

一、模块 TypeScript 与ECMAScript 2015 一样&#xff0c;任何包含顶级 import 或者 export 的文件都被当成一个模块 相反地&#xff0c;如果一个文件不带有顶级的import或者export声明&#xff0c;那么它的内容被视为全局可见的 例如我们在在一个 TypeScript 工程下建立一个…

Linux 网络流量监控利器 iftop命令详解及实战

简介 iftop 是什么 在 Linux 系统下即时监控服务器的网络带宽使用情况&#xff0c;有很多工具&#xff0c;比如 iptraf、nethogs 等等&#xff0c;但是推荐使用小巧但功能很强大的 iftop 工具。 iftop 是 Linux 系统一个免费的网卡实时流量监控工具&#xff0c;类似于 top 命令…

智能防雷浪涌保护器的行业应用

智能浪涌保护器是一种能够自动监测和控制电涌保护器&#xff08;SPD&#xff09;的工作状态&#xff0c;实现SPD的自我保护和远程管理的设备。智能防雷是一种将云计算、移动互联网和物联网技术引入到综合防雷措施中&#xff0c;实现雷电预警、智能化防雷、智能化监测的系统。这…

群晖 | Synology Directory Server 批量导入用户 文件模板格式

目录 错误写法 正确写法 错误写法 在网上找到过类似的教程&#xff0c;但是一律都以失败告终&#xff1a; 正确写法 其实并不是只要写上前面的属性即可&#xff0c; 就算后面不写也需要使用 tab 补齐 &#xff0c;所有的属性&#xff1a; 1.名称 2.密码 3.描述 4…

开源问答平台网站源码系统商业运营版源码系统 带完整的搭建教程

在我们现在的日常生活中&#xff0c;人们对于获取信息的需求越来越大&#xff0c;而问答平台作为一种快速、有效的信息获取方式&#xff0c;受到了广泛的关注和使用。同时&#xff0c;随着开源技术的普及和成熟&#xff0c;越来越多的开发者选择使用开源技术进行网站的开发和维…

几种常见的接地类型详解

接地作为一种应用最为广泛的电气安全措施&#xff0c;是指电力系统和电气装置的中性点、电气设备的外露导电部分和装置外导电部分经由导体与大地相连。接地的作用主要是防止人身遭受电击、设备和线路遭受损坏、预防火灾和防止雷击、防止静电损害和保障电力系统正常运行。按其功…

关于 iOS 报Multiple commands produceMultiple 错误的解决方案

今天在运行一个RN老项目的时候&#xff0c;报了一个下面的错误。 对应的信息如下&#xff1a; Multiple commands produce /Users/xzh/RN/work/cgv_app/ios/build/Debug-iphonesimulator/cgv_app.app/Entypo.ttf Multiple commands produce /Users/xzh/RN/work/cgv_app/ios/bu…

EASYX实现多物体运动

eg1:单个物体运动使用easyx实现单个小球的运动 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define PI 3.14 #define NODE_WIDTH 4…

应用在阀门控制中的直流有刷驱动芯片

控制阀又称阀门&#xff0c;是流体运送系统中的控制部件&#xff0c;具有导流、截流、调节、节流、防止倒流、分流或溢流卸压等功能。阀门是一种用于控制流体&#xff08;液体、气体、粉体等&#xff09;流动的装置&#xff0c;广泛应用于工业生产、建筑、农业、能源等领域。 …

提高效率!5个顶级网页开发工具助你事半功倍!

1.WordPress–一站式网站建设工具 价格&#xff1a;基本版终身免费&#xff0c;个人版HK$30&#xff0c;高级版HK$63&#xff0c;商务版HK$1993 推荐指数&#xff1a;★★★★ WordPress是一个使用PHP语言开发的博客平台。它可以在PHP和MySQL数据库的服务器上设置自己的网站&…

从项目开始学习Vue——01

目录标题 一、官方文档二、搭建环境三、停止服务四、使用 webstorm 一键创建项目创建过程可能出现错误 五、启动和访问项目&#xff08;一&#xff09;启动&#xff08;二&#xff09;访问项目六、项目目录讲解 一、官方文档 https://cn.vuejs.org/ 二、搭建环境 参考&#…

新版开源UI千月影视APP源码/后端基于ThinkPHP框架/前后端完美匹配

源码简介&#xff1a; 开源UI千月影视APP源码&#xff0c;它是基于ThinkPHP框架&#xff0c;而且前后端完美匹配。这是一个广泛使用的PHP开发框架&#xff0c;具有稳定性和安全性方面的优势。 2023版本UI千月影视APP是一款提供电影、电视剧、综艺节目等视频内容的应用程序&am…