目录

一. IDE

(1). 使用IDE的原因:

(2). 创建和使用:

(3). 常用快捷方式与设置

(4). 注释

(5). 关键字

(6). 标识符 

(7). 变量

(8). 数据类型

1) 整数类型

2) 浮点类型

3) 布尔类型(boolean)

4) 字符类型(char)

5) 字符串

6) 基本数据类之间的转换

(9). 运算符

         1) 算术运算符

2) 比较运算符

3) 赋值运算符

4) 逻辑运算符

5) 条件运算符

6) 位运算符

(10). 控制台输入

(11). 循环语句

1) if判断和switch...case循环

2) while和do while循环

3) for循环

4) 循环嵌套

(12). 函数(java中的方法)

(13). return作用


一. IDE

(1). 使用IDE的原因:

    如果使用记事本进行编写代码, 手动编译没有提示, 写错了也不知道,实际开发用记事本 效率很低.

IDE (Integrated Development Environment )集成开发环境 所有开发工具统称IDE, 里面集成编辑器 编译器(调我们自己安装的jdk) ,调试器

例如:   前端开发的Hbuildex

           Intellij IDEA 收费 开发工具( jdk 是java开发运行的环境)

           Eclipse 开源

(2). 创建和使用:

现在市场上大多都采用Intellij IDEA,故以Intellij IDEA为例

查看软件可使用的时间(有一个月的免费使用期)

项目的创建及相关设置

(3). 常用快捷方式与设置

         sout ----->System.out.println( );

         main----->public static void main(String[] args) { }

         fori ----->for (int i = 0; i < ; i++) { }

(4). 注释

      1)定义: 用特定的符号进行标记的内容 说明程序功能 调试程序

      2)使用方法:

            //       单行注释 Ctrl+/

            /* */   多行注释 Ctrl+shift+/

            /** */  文档注释   可以为类  函数 变量进行说明 ,在别的地方调用时 ,会显示注释说明

(5). 关键字

        注意:

        1) 在语言中, 被赋予特定含义的单词 所有字母都是小写的

        2) 保留字: constgoto (java中虽然没有用来作为关键字,但是不能拿来命名)

(6). 标识符 

       1)定义: 为变量 函数 类 包 等命名的字符序列

       2)命名规则: 允许使用26个英文字母 数字 下划线_ 和美元$----数字不能开头-----不能是关键字保留字但是可以包含关键字和保留字----不能有空格 长度无限制----严格区分大小写----要见名之意 userAge userName userPassword studentAge studentName----名首字母变量函数名首字母写----多个单词组成,建议第二个单词开始,首字母都大写 驼峰表示----常量名全部大写 多个单词之间用下划线_连接 MAX_VALUE

public class Demo1 {public static void main(String[] args) {// int a# = 5;// int 5a;int a_ = 5;int a$;int user_age;// int goto;int goto1;
// int user age; int a; int A; abc aa;}
}

(7). 变量

      1)定义:
                 变量是程序中最基础的存储单元, 运行时值是可以改变的
                 变量就是在内存中开辟的一块空间
                 使用变量名访问这块空间(java中不再使用指针访问内存)
      2)使用方法:    要先声明,后赋值,使用前必须是赋过值的
      3)结构:           [修饰符] 数据类型  变量名  =  值 ;  (强类型语言)

 

package day2;
public class Demo2 {​
public static void main(String[] args) {int age = 20;age = 22;System.out.println("age="+age);//int height;//System.out.println(height); 报错 变量在使用前必须要初始化int a,b,c;int x=10,y=20,z=30;System.out.println("x="+x+",y="+y+",z="+z);
}
}

(8). 数据类型

可以指导数据在内存中如何存储(分配多大空间)

1) 整数类型

  基本数据类中的整数类型:
  byte    1字节     -128 -- +127
  short   2字节     -32768  -- +32767
  int       4字节     -2147483648 -- 2147483647
  long    8字节     - 9223372036854775808   --  +9223372036854775807

  注意: java中数值类型都是有符号的,没有无符号主线程

package day2;public class Demo3 {public static void main(String[] args) {byte ba = -128;byte bb = 10;
​short sa = 20;
​int ia = 2147483647;/*int a = 10; 10称为字面常量 整数字面常量默认是int类型需要给long类型赋值时,一旦值超过了int的范围,需要在后面添加 L/l  一般建议使用大写L*/long la = 2147483648L;//整数其他表示形式:int x = 12; //12是十进制表示形式
​int m = 0b111; //二进制整数表示  0b开头System.out.println(m);
​int n = 071; //八进制整数表示  0开头System.out.println(n);
​int y = 0x11; //十六进制整数表示  0x开头System.out.println(y);
​
}
}

2) 浮点类型

   float   4字节  -3.403E38~3.4028235E38
   double  8字节


   注意: 浮点类型字面常量是 double类型 ,需要表示float字面常量时,在字面常量后面加 F/f

package day2;import java.math.BigDecimal;public class Demo4 {public static void main(String[] args) {float f1 = 10;float f2 = 10.5F;
​double d = 10;double d1 = 10.5;
​
System.out.println(314.2);//十进制表示
System.out.println(3.14E2);//科学计数法表示
System.out.println(222.22222222222222f);//有效位数是8位  单精度
System.out.println(222.22222222222222);//双精度 是float的两倍
​/*有的小数,在底层存储时,不能做到精确存储,小数部分无限不循环的,只能做到近似值涉及金额尽量不用float,double*/System.out.println(0.1+0.2==0.3);//falseSystem.out.println(1.0-0.7);//0.30000000000000004//BigDecimal bigDecimal1 = new BigDecimal("0.1");//BigDecimal是大浮点数,更精确//BigDecimal bigDecimal2 = new BigDecimal("0.2");//System.out.println(bigDecimal1.add(bigDecimal2));//0.3   }
}

3) 布尔类型(boolean)

注意:
      1. 布尔类型的值只能用true  false表示
      2. 逻辑运算,比较运算之后的值 也只能是true/false    不能用0和非0表示真/假

package day2;public class Demo5 {public static void main(String[] args) {boolean b = true;boolean b1 = false;
​int a  =10;int c = 20;if(1<a && a<c){System.out.println("qqqqqqqqqqqqq");}System.out.println(a<c);System.out.println(a>c);
}
}

4) 字符类型(char)

1. 字符类型表示一个字符   2字节
2. 计算机如何存储和表示字符 ?
    ASCII  a--97--011011  美国信息标准码 只能表示英文字母和英文字符
    java中使用的是Unicode编码(万国码),容纳全球各个国家的文字子符,其他的编码表都兼容了ASCII那一部分的内容

package day2;public class Demo6 {public static void main(String[] args) {char c1 = 'a';char c2 = '中';char c3 = '国';System.out.println(c1+0); //97   
//char类型可以进行算术运算的 运算时用的是字符在编码表中的整数编号计算的System.out.println(c1);System.out.println(c2+0);//20013System.out.println(c2);System.out.println(c3);
}
}

5) 字符串

   java中提供String类来表示字符串    格式: String  变量名  = "字符串值";

package day2;public class Demo7 {public static void main(String[] args) {//c语言中的字符串, 用字符数组存储,且没有单独的字符串类型,而是使用字符数组来表示//char a[10]  = {'h','e','l','l','o','\0'};//char a[]  = {"hello"};//char a[]  = "hello";// "abc" == ['a','b','c']String s = "abcd";String name = "jim";String address = "陕西汉中";System.out.println(s);System.out.println("姓名:"+name+" 地址:"+address); //字符串可以使用 + 进行拼接System.out.println(s.length());
}
}

6) 基本数据类之间的转换

 除了boolean类型之外, 其他7种基本数据类型之间可以进行相互转换 ,转换规则如下:
              byte       1字节
              short      2字节
              char       2字节
              int          4字节
              long       8字节
              float       4字节
              double   8字节
    注意: 
           (默认转换) 小容量类型  --->  大容量类型
           (强制转换) 大容量类型  ---> 小容量类型

   1. 默认情况下 小容量类型  可以 转换为大容量类型
                       大容量类型 不可以 转为小容量类型 (而如果需要转换 只能通过强制类型转换 )
   2. 强制类型转换可能会出现以下问题:
       (1). 溢出, 因为小类型装不下
       (2). 精度降低了  (浮点--整数)
       char  byte  short ---->int---->long---->float---->double
   由于小数底层的计算方式和整数不同, 所以4字节的float 大于 4字节int,也大于8字节的long

package day2;public class Demo8 {public static void main(String[] args) {/*默认转换: 小容量类型  --->  大容量类型byte a1 = 10;int  a2 = a1;float a3 = a2;System.out.println(a2);*/
​int   a  = 258;byte  b = (byte)a;System.out.println(b);//2
​float  c = 10.5f;int    d = (int)c;double e = c;System.out.println(d);//10System.out.println(e);
​//在混合运算时, 小类型默认也是会转为大类型的int  f = (int)(10+'a'+10.5);System.out.println(10+'a'+10.5);//最终结果的数据类型是? double}
}

(9). 运算符

      1) 算术运算符

     +    -     *    /    %   ++    --

     +:    作用1: 正号   作用2: 加法运算   作用3:字符串连接符
      -:    作用1: 符号   作用2: 减法运算
     * / %  只能用作算术运算  数值与数值运算

     自增运算(++),自减运算(--)  都只能用于数值类型

package day2;public class Demo9 {
public static void main(String[] args) {int a = +30;int b = 20;System.out.println(a+b);System.out.println(a-b);System.out.println(a+'a');// 加法运算System.out.println(a-'a');// 减法运算//System.out.println(a+true);// 不可以int age = 20;String name = "jim";System.out.println("姓名:"+name+",age:"+age);
​System.out.println("---------------------");System.out.println(a*b);System.out.println(a/b);//1   整数/整数==结果是整数System.out.println(a%b); //取模  求余数
​int a = 5;++a; //a=a+1a++;System.out.println(a);//7--a; //a=a-1a--;System.out.println(a);//5
​int a = 5;//int b = ++a + 2;   在混合运算时  ++在前  先增再判断//System.out.println(b);//8int b = a++ + 2; // 在混合运算时  ++在后  先判断再增System.out.println(b);//7System.out.println(a);//6
}
}

2) 比较运算符

== 和 !=            可以用于数值之间比大小,还可以比较布尔类型, 还可以比较引用数据类型

<=  >= 和<  >    只能用于数值之间的比较 , 包含字符类型 返回值为 true/false

System.out.println(10==10);
System.out.println(ture==ture);
System.out.println("abc"=="abcd");
System.out.println('a'>10);
System.out.println(10>5);
System.out.println(10>10);

3) 赋值运算符

= 把右边的值赋给左边变量,注意右边字面常量和左边的字面常量需要一致(也可以小类型隐式的转换为大类型的),注意强制类转换

+=  a+=b  相当于a=a+b

-=   a-=b   相当于a=a-b

*=   a*=b   相当于a=a*b

%= a%=b 相当于a=a%b

4) 逻辑运算符

& 逻辑与          | 逻辑或        !  逻辑非

&& 短路与       || 短路或       ^ 逻辑异或

运算符,都只能是逻辑值与逻辑值之间的运算

1. 逻辑与(&和&&):

         当所有的表达式结果为true,结果才为true, 只要有一个表达式为false,结果就为false
    区别:
           & : 不会出现短路现象,已经有表达式为false,后面的表达式还会执行
          &&: 会出现短路现象 所以也称为短路与.一旦有表达式值为false, 后面其他的表达式就不执行,称为短路了 (常用,效率高)

2. 逻辑或( |  和 || ) :

             子表达式中只要有一个是true,结果就为true
    区别:
          |  不会出现短路现象  有表达式返回true,但是后面的表达式还会执行
         ||  会出现短路现象      一旦出现有表达式返回true,后面的表达式就不会执行了

package day3;public class OperDemo3 {public static void main(String[] args) {int a = 10;int b = 15;int c = 20;System.out.println(a<b & c>b); // true & true = trueSystem.out.println(a<b & c<b); // true & false = false//System.out.println(a>b & c++>b); // false & true = false  没有短路,前面为false 后面c++依然执行//System.out.println(c);21
​System.out.println(a<b && c>b); // true && true = trueSystem.out.println(a<b && c<b); // true && false = falseSystem.out.println(a>b && c++>b); // false && true = falseSystem.out.println(c);//20
}System.out.println(a<b | c>b); // true | true = trueSystem.out.println(a<b | c<b); // true | false = true//System.out.println(a<b | c++<b); // true | false = true//System.out.println(c);
​System.out.println(a<b || c>b); // true || true = trueSystem.out.println(a<b || c<b); // true || false = trueSystem.out.println(a<b || c++<b); // true || false = trueSystem.out.println(c);
​}
}

3.  ^ 逻辑异或 : 突出重点就是 异    不同返回true,相同返回false
4.  ! 逻辑非     : 取反

package day3;public class OperDemo5 {System.out.println(a<b ^ c>b);// true ^ true = falseSystem.out.println(a>b ^ c>b);//false ^ true = true
​System.out.println(!true);//falseSystem.out.println(!(a>b));//true
​/*int a = 10, b = 10, c = 10;boolean result = a++ == 10 && b-- == 10 || ++c == 10;result= truea=11b=9c=10(短路了,没有执行)*/
}
}

5) 条件运算符

1. 格式:  结果 = (条件表达式)? 结果1 : 结果2;

2. 注意: 当条件表达式结果为true 时,返回?后面的结果

             当条件表达式结果为false时,返回后面的结果

条件表达式必定要返回结果(与 if{ }else{ }不一样) 返回的结果 与 接收变量类型都得一致

package day3;public class OperDemo6 {public static void main(String[] args) {/* int score = 50;String result =  (score>=60)?"及格":"不及格";System.out.println(result);*/
​int a = 10;int b = 20;int max = (a>b)?a:b;System.out.println(max);
​
}
}

6) 位运算符

1. 定义: 是对整数的二进制位进行运算的

2. 使用方法:

   <<   左移 二进制比特位向左移动,后面空缺补0

   >>   右移 二进制比特位向右移动(带符号), 正数移动后,符号位补0, 负数移动后,符号为补1

   >>> 无符号右移 不管是正数还是负数,移动后统一补0, 结果肯定为整数

3. 注意: 

     & 和 | 既可以当做逻辑运算符,也可以当做位运算符 当&和 | 左右是逻辑值(true/false) 时,当做逻辑运算符 当&和 | 左右是正数时,当做位运算符

package day3;import java.lang.reflect.Array; import java.util.Arrays; import java.util.HashMap;public class OperDemo7 {public static void main(String[] args) {int a  = 2;//  0000 0010//  0000 1000int b = a<<2;//左移两位System.out.println(b);
​//0000 1000//0000 0010int c = -8;int d = c>>2;System.out.println(d);//-2
​/*  int x = 8;int y = x>>>1;System.out.println(y);//4*/
​int x = 8;int y = x>>>1;System.out.println(y);//4int x = -8;int y = x>>>1;System.out.println(y);//2147483644
​
}
}

 1. 定义:

             计算机以补码存储数值 正数的补码  反码  原码三码合一 , 负数以补码形式表示
 2.  数值二进制为什么要用补码存储 ?

      因为计算机只做加法, 把减法 转换为加法
         3-2 = 1 -->   3+(-2) = 1


         +3   0000 0011
         -2   1111  1110
               0000 0001 

         2   0000 0010
             1111 1101  反码 +1
             1111 1110  -2的补码

package day3;public class OperDemo8 {public static void main(String[] args) {//System.out.println(true & false);//System.out.println(true | false);
​int a  = 5;int b = 4;/*& 把两个整数的对应的二进制位进行 列 运算(每一列都是1,结果就是1,否则结果为0) 0000 0101   50000 0100   40000 0100   4*/System.out.println(a & b);//4
​/*| 每一列只要一位是1,结果就是1,都没有1时才是00000 0101   50000 0100   40000 0101   5*/System.out.println(a | b);//5
​int x = 4;int y = 5;/*^ 异或  两个数对应列的比特位相同结果0  不同结果为10000 0100   40000 0101   5 0000 0001   1*/System.out.println(x^y);
​/*~ 取反0000 01001111 1011*/System.out.println(~x);//-5}
}

(10). 控制台输入

package day3;//导入类库 import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {//创建一个输入对象Scanner scanner = new Scanner(System.in);//相当于导库,调用函数System.out.println("请输入姓名");String name = scanner.next();//从控制台上读取字符串System.out.println("请输入年龄");int age  = scanner.nextInt();System.out.println(name+":"+age);
​
}
}

(11)循环语句

         循环定义: 满足某种条件时,重复执行某些操作 while do while for 循环有四个部分 循环变量初始化 循环条件 循环体 循环变量迭代

    1) if判断和switch...case循环

if(条件表达式 a>b && c>d ture / false ){ }

if(条件表达式){ }else{ }

if(条件表达式){ }else if (条件表达式){ }.......

if(条件表达式){ }else if{ }......else{ }

注意: if后面如果没有 { },只能控制与其相邻的那一行

    switch...case语句
    switch(表达式){
       case 字面常量1 :  语句块1   [break];
       case 字面常量2 :  语句块2   [break];
       case 字面常量3 :  语句块3   [break];
       ....
       default: 默认语句块
    }

注意:  1. 表达式值 可以是 byte short int char String(字符串) 枚举

          2. break 用在Switch循环语句中, 结束整个循环语句

          3. continue 用在循环语句中 结束当次循环

package day3;import java.util.Scanner;public class SwitchDemo {
​
public static void main(String[] args) {int w = 3;switch (w){case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;default:System.out.println("输入不合法");}String w = "3";switch (w){case "1":System.out.println("星期一");break;case "2":System.out.println("星期二");break;case "3":System.out.println("星期三");break;default:System.out.println("输入不合法");}
​/*从控制台输入一个整数月份打印该月份所属的季节,3,4,5春季  6,7,8夏季  9, 10, 11秋季  12 ,1,2 冬季分别用if  switch实现*/Scanner scanner = new Scanner(System.in);int month = scanner.nextInt();if(month==3||month==4||month==5){System.out.println(month+"是春季");}else if(month>=6&&month<=8){System.out.println(month+"是夏季");}else if(month>=9&&month<=11){System.out.println(month+"是秋季");}else if(month==12||month==1||month==2){System.out.println(month+"是冬季");}else{System.out.println("输入有误");}
​//switch实现month = scanner.nextInt();switch (month) {case 1:case 2:case 12 :System.out.println(month+"是冬季");break;case 3:case 4:case 5 :System.out.println(month+"是春季");break;case 6:case 7:case 8 :System.out.println(month+"是夏季");break;case 9:case 10:case 11 :System.out.println(month+"是秋季");break;default:System.out.println("输入有误");}
}
}

2) while和do while循环

1.while循环:

     while (条件){


     }

2.do while 循环
       do{

        }while(条件表达式)

package day3;import java.util.Scanner;public class WhileDemo {public static void main(String[] args) {int a = 1;while (a<=5){System.out.println(a);//a++;//a=a+1;//a+=1;a+=2;}
​int  a = 5;while (a>=1){System.out.println(a);a--;}
​//  while实现死循环while(true){System.out.println("111");}
​int a = 8;do {System.out.println(a);a++;}while (a<=5);
​/*猜数字游戏循环让用户输入一个数字,当输入的值与x相同时,循环就可以结束猜小了  提示小了猜大了  提示大了相等退出循环   使用break关键字退出循环记录一下猜的次数*/int x = 30;int count = 0;Scanner scanner = new Scanner(System.in);while (true){count++;int g =  scanner.nextInt();if(g>x){System.out.println("猜大了");}if(g<x){System.out.println("猜小了");}if(g==x){System.out.println("你经过了"+count+"次猜对了");break;}}
​//一直青蛙在一口11米深的井底向上爬,白天向上爬3米,晚上向下滑2米,总共需要几天可以爬出.int h = 0; //记录每天爬的高度int sum = 0;while (true){sum++;h+=3;if(h>=11){System.out.println("经过了"+sum+"天爬出去了");break;}h-=2;}
}
}

3) for循环

for(变量初始; 循环条件; 变量迭代){ }

4) 循环嵌套

 public static void printStar(int row,int col){int row =4;int col= 5;for(int i=0;i<=row;i++){//外层循环,控制行数for(int j=1;j<= col ; j++){//内层循环,控制列数System.out.print("*");
//注意:在内层循环使用break 只结束内层循环, 不结束外层循环//  如果想要结束外层循环 需要使用标签}System.out.println();}
}

标签格式如下:
outloop: for(      ){//结束整个循环
​        for(      ){
              循环体
​        break outloop;
​        }​  
}

(12). 函数(java中的方法)

            就是写某个特定功能的代码,把他写在一组有名称的代码块{ }中,需要使用的时候,通过函数名调用(调用时,需要通过类名调用)

[访问权限修饰符]   [修饰符]    返回值类型    函数名(参数列表) {

方法体

(如果有返回值) return 值;

}

package day4;
​
public class Demo3 {public static void main(String[] args) {//Demo3是类名Demo3.print99(5);//调用含参的99乘法表函数System.out.println("------------------");Demo3.print99();//调用不含参的00乘法表函数Demo3.printStar(5,10);}
​
​public static void print99(int row){//含参的for (int i =1;i<= row ; i++){for(int j=1;j<=i ;j++){System.out.print(j+"*"+i+"="+ i*j +" ");}System.out.println();//换行}}
​public static void print99(){//不含参for (int i =1;i<= 9 ; i++){for(int j=1;j<=i ;j++){System.out.print(j+"*"+i+"="+i*j+" ");}System.out.println();//换行}}
​public static void printStar(int row,int col){//不含参for(int i=0;i<=row;i++){//外层循环,控制行数for(int j=1;j<= col ; j++){System.out.print("*");}System.out.println();}}
}

注意: 在java中可以定义两个函数名一样的方法, 称为方法的重载,区分关键在于是否有参数. void是没有返回值的类型, 可以不用写return; 如果定义了返回值的类型,就必须要写返回值

(13). return作用

package day4;
​
public class Demo5 {public static void main(String[] args) {Demo5.print(98);}
​//void修饰的函数可以使用return,且后面不能添加任何值(return;)//如果是return 0 ,相当于有返回值public static void print(int score){if(score<0 || score >100){System.out.println("成绩不合法");return;}if(score>= 90){System.out.println("A");return;//return是终止,不return的话会出现问题,因为成绩也满足>=80,会同时打印AB}if (score>=80){System.out.println("B");}}
}
​

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

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

相关文章

JavaScript 闭包与递归深度解析:从理论到实战

本文将系统梳理 JavaScript 中闭包与递归的核心概念、实战应用及面试要点,涵盖课堂知识点、作业实现、面试题解析等内容,帮助你全面掌握这两大重要概念。 一、闭包:函数与变量的绑定艺术 1.1 闭包的定义与核心特性 闭包是 JavaScript 中一种特殊的语言现象,其核心定义可…

牛 CDR3 单抗:抗病毒领域的 “纳米级精准导弹”

一、病毒防御的天然克星病毒感染的核心难题在于其表面的 “糖衣炮弹”—— 以 HIV 为例&#xff0c;其 Env 蛋白表面密集的糖链形成物理屏障&#xff0c;传统抗体难以穿透。而牛 CDR3 单抗的超长 CDR H3 结构&#xff08;50-60 个氨基酸&#xff09;如同 “纳米探针”&#xff…

鸿蒙应用开发和Vue网页开发中生命周期的区别

因为下节课就可以写讲解两者生命周期代码的实战了&#xff0c;写介绍一下理论方面的区别&#xff1a;鸿蒙应用开发&#xff08;ArkUI范式&#xff09;与Vue网页开发在生命周期管理上的核心区别&#xff0c;这直接反映了原生OS应用与Web应用在架构哲学和运行环境上的根本差异⚙️…

基于SpringBoot+Vue的轻手工创意分享平台(WebSocket即时通讯、协同过滤算法、Echarts图形化分析)

&#x1f388;系统亮点&#xff1a;WebSocket即时通讯、协同过滤算法、Echarts图形化分析&#xff1b;一.系统开发工具与环境搭建1.系统设计开发工具后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk17前端&#xff1…

Java应届生求职八股(5)---并发编程篇

线程基础线程与进程的区别进程是程序的一次执行过程。它资源分配的单位。线程是程序执行的单位。并行和并发的区别单核CPU下&#xff0c;线程串行。&#xff08;并发&#xff1a;多线程轮流使用一个或多个CPU&#xff09;多核CPU下&#xff0c;每个核都可调度线程。&#xff08…

WSL 配置文件 wsl.conf 设置

WSL .wslconfig 小技巧 要在 WSL&#xff08;Windows Subsystem for Linux&#xff09;中增加内存&#xff0c;你需要编辑 WSL 配置文件 wsl.conf 或者直接调整虚拟机的资源限制。 文章目录WSL .wslconfig 小技巧以下是步骤&#xff1a; 找到或创建 .wslconfig 文件&#xff1…

9.从零开始写LINUX内核——设置中断描述符表

Linux 0.12 内核中断描述符表&#xff08;IDT&#xff09;完整实现代码以下是基于 setup 程序扩展的完整代码&#xff0c;包含中断描述符表&#xff08;IDT&#xff09;的定义、初始化及中断处理程序&#xff0c;可直接用于实验验证&#xff1a;asm/* setup.s —— 4 扇区&…

手机实时提取SIM卡打电话的信令声音-当前现状与思考

手机实时提取SIM卡打电话的信令声音-当前现状与思考 --纯手机-无外置配件的方案规划 上一篇&#xff1a;手机实时提取SIM卡打电话的信令声音-新的篇章(篇外小结与思考) 下一篇&#xff1a;手机实时提取SIM卡打电话的信令声音-整体解决方案规划 一、前言 我们在2024年09月的…

【车联网kafka】常用参数及其命令总结(第八篇)

目录 1、kafka参数 1.1 、消费者消息批次发送 1.2 、消息大小的配置(环环相扣的消息大小&#xff0c;调整时需要一起调整) 1.3 、消息重试发送幂等 1.4、消息提交 1.5、分区分配策略&#xff08;自己看的设置&#xff09; 1.6、文件存储 2、kafka命令 2.1 常用命令一览…

基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统

&#x1f525;作者&#xff1a;it毕设实战小研&#x1f525; &#x1f496;简介&#xff1a;java、微信小程序、安卓&#xff1b;定制开发&#xff0c;远程调试 代码讲解&#xff0c;文档指导&#xff0c;ppt制作&#x1f496; 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1…

17.4 合并购物车

分析 用户登录后&#xff0c;将Cookie中的购物车商品合并到redis数据库中。如果此时redis中已经有相同id的商品&#xff0c;则使用Cookie中的数据覆盖redis中的数据。 合并功能需要在用户登录后实现&#xff0c;但登录视图中应避免过多与登录逻辑无关的逻辑&#xff0c;所以考虑…

RK3588消费级8K VR一体机 是否有坑?

​​芯片平台​​​​定位场景​​​​核心优势​​​​消费级功能性短板​​全志H8/RK3288入门级VR低成本、基础性能稳定算力弱&#xff08;4*A55&#xff09;、无NPU、显示分辨率仅1080P高通XR1中端VR/AR均衡性能&#xff08;Adreno 615 GPU&#xff09;仅WiFi5、续航≤4小时…

基于Spring Boot校园二手交易平台系统设计与实现 二手交易系统 交易平台小程序

&#x1f525;作者&#xff1a;it毕设实战小研&#x1f525; &#x1f496;简介&#xff1a;java、微信小程序、安卓&#xff1b;定制开发&#xff0c;远程调试 代码讲解&#xff0c;文档指导&#xff0c;ppt制作&#x1f496; 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1…

Nginx 服务器常用操作

一. Nginx 常用配置 1. Nginx 总配置文件 nginx 安装目录下的 nginx.conf 文件: # 指定 Nginx worker 进程运行的系统用户 user nginx; # 自动根据 CPU 核心数启动相应数量的 worker 进程&#xff0c;充分利用多核。 worker_processes auto; # 自动将 worker 进程绑定到特定 …

PHP官方及第三方下载地址全指南(2025最新版)

PHP官方及第三方下载地址全指南&#xff08;2025最新版&#xff09; 本文整理了PHP官方及主流第三方下载渠道&#xff0c;包含PHP 5.5至8.4各版本的直接下载链接&#xff0c;助您快速获取安全可靠的PHP环境。 一、PHP官方下载渠道 1.1 全球主站下载 网址&#xff1a;https://…

深度剖析Redisson分布式锁项目实战

今天在练手项目中也是遇到了许多新的技术&#xff0c;其中我认为最深刻的还是Redisson分布式锁&#xff0c;这里我就结合一下我项目中用到Redisson分布式锁的代码来讲述一下Redisson分布式锁&#xff0c;希望可以帮助大家更深刻地理解这项技术。在之前的文章中我已经讲过Rediss…

第四天-创建一个Classic CAN(经典CAN2.0)/CANFD的系统描述ARXML文件

【ARXML专题】-构建CAN/CANFD通信系统:ARXML实战指南 汽车神经系统的"高速公路" 想象一辆现代汽车如同人体,电子控制单元(ECU)是器官,而CAN总线就是连接它们的神经系统。在自动驾驶时代,传统CAN2.0的"乡间小路"已无法满足数据传输需求,CANFD的"…

用架构建模工具Sparx EA绘制企业转型路线图

企业数字化转型面临诸多挑战&#xff1a;信息壁垒导致各部门协同困难&#xff0c;资源投入缺乏科学评估&#xff0c;潜在风险难以提前预判。这些问题不仅拖慢转型进程&#xff0c;还可能引发高昂的试错成本。 本文将阐述如何运用架构建模工具Sparx EA的核心功能——可视化路线…

STM32——GPIO

总 &#xff1a;STM32——学习总纲 参考资料&#xff1a; STM32F1系列参考手册-V10&#xff08;中&#xff09; 一、GPIO简介 1.1 GPIO 特点 1.2 GPIO 电气特性* stm32芯片资料STM32F103ZET6(English) 1.3 GPIO 引脚分布 电源引脚&#xff1a;V开头 晶振引脚&#xff1a; …

NUX MG-400 吉他效果器功能原理介绍

NUX MG-400 是一款多功能数字吉他效果器&#xff0c;它的核心原理就是把吉他的模拟信号&#xff0c;通过 A/D 转换变成数字信号 → 在 DSP 芯片上做建模运算 → 再通过 D/A 转换还原成模拟信号输出。 它的硬件 软件协作设计&#xff0c;基本可以拆成几个模块来看&#xff1a; …