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 算数运算符
  • 循环语句
  • 分支语句

(一)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;// 编译报错// x = (byte)(x + y);// x += y; //等价形式:x = (byte)(x + y);System.out.println(x);}
}

7.4 算数运算符

7.5 算数运算符

循环语句

分支语句

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

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

相关文章

离散数学——(1)数理逻辑,命题的概念,命题联结词,条件联结词,命题公式,命题的翻译

目录 1.数理逻辑 2.命题的概念 1.命题的判断 ​2.命题的真值 ​ 3.原子命题和复合命题 3.命题联结词 1.否定联结词 2.合取联结词 3.析取联结词 4.条件联结词 ​1.双条件联结词 5.命题公式 1.合式公式 6.命题的翻译 1.数理逻辑 2.命题的概念 1.命题的判断 2.命…

Kakarot:当今以太坊的未来

1. 引言 前序博客: Kakarot:部署在Starknet上的ZK-EVM type 3 随着 Kakarot zkEVM 即将发布测试网,想重申下 Kakarot zkEVM 的愿景为: 为什么在rollup空间中还需要另一个 zkEVM? 开源代码见: https:/…

二、数据结构——单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表等内容。

对于链表来说,由于new操作时间太长,因此,算法题中一般使用静态链表。 1.单链表 采用数组实现单链表,可以直接开两个数据,一个数组存放数值,另外一个数据存放下一个元素(指针)。 示…

网络编程作业day6

数据库操作的增、删、改完成 #include <myhead.h>//查询的回调函数 int callback(void* data,int count,char** argv, char** columnName) {//count是字段数//argv是字段内容//columnName是字段名称for(int i0;i<count;i) {printf("%s%s\n", columnName[…

YOLO-World:实时开放词汇目标检测

摘要 Open Vocabulary&#xff1a;开放词汇 论文链接&#xff1a;https://arxiv.org/pdf/2401.17270.pdf You Only Look Once (YOLO) 系列检测器已经确立了自己作为高效和实用工具的地位。然而&#xff0c;它们对预定义和训练过的对象类别的依赖限制了它们在开放场景中的适用…

MYSQL使用mysqldump备份、复原数据库

参考 添加链接描述 1. 备份数据库 C:\Windows\system32>mysqldump -uroot -p test student>C:\student.sql Enter password: ****2. 备份多个数据库 mysqldump -u root -p --databases test mysql>C:\testandmysql.sql3. 备份所有数据库 mysqldump -u root -p -…

Java+SpringBoot+Vue+MySQL:农业管理新篇章

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

SICP解读指南:深度阅读 “计算机领域三巨头” 之一(文末送书)

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 书籍介绍1.1 SICP侧重点1.2 SICP章节介绍 二. 书籍推荐2.1 书籍介绍2.2 推…

打家劫舍(java版)

&#x1f4d1;前言 本文主要是【动态规划】——打家劫舍(java版)的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一…

YTM32同步串行通信引擎SPI外设详解(slave part)

YTM32同步串行通信引擎SPI外设详解&#xff08;slave part&#xff09; 文章目录 YTM32同步串行通信引擎SPI外设详解&#xff08;slave part&#xff09;IntroductionPricinple & Mechinism引脚信号Slave从机工作模式发送/命令FIFO和接收FIFOMatch匹配接收功能硬件片选和内…

100 spring-security 中 /oauth/token 发送请求不携带参数 报错 “401 Unauthorized“

前言 最近存在这样的一个问题, 大致的复现方式是 访问 /oauth/token 接口, 然后不携带任何参数, 结果 服务器抛出了一个 "401 Unauthorized" 针对这个 401, 这里 梳理一下这个流程, 也会衍生出一些其他的问题 测试用例 客户端这边大致的情况是 构造参数, 然后发…

excel中去除公式,仅保留值

1.单个单元格去除公式 双击单元格&#xff0c;按F9. 2.批量去除公式 选中列然后复制&#xff0c;选择性粘贴&#xff0c;选值粘贴

【每日一题】1976. 到达目的地的方案数-2024.3.5

题目: 1976. 到达目的地的方案数 你在一个城市里,城市由 n 个路口组成,路口编号为 0 到 n - 1 ,某些路口之间有 双向 道路。输入保证你可以从任意路口出发到达其他任意路口,且任意两个路口之间最多有一条路。 给你一个整数 n 和二维整数数组 roads ,其中 roads[i] = […

PCL官方demo的编译使用教程

写在前面 本文内容 PCL官方demo的编译使用教程&#xff1b; 后续对PCL demo中比较常用的算法、应用demo会出专门的博客讲解、拓展&#xff1b; 更多点云基础、算法相关内容请关注专栏&#xff1a; 点云处理基础 点云配准(PointCloud Registration) Open3D点云处理 PCL点云处理 …

青少年如何从零开始学习Python编程?有它就够了!

文章目录 写在前面青少年为什么要学习编程 推荐图书图书特色内容简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家带来一本非常适合青少年学习编程的图书&#xff0c;快来看看吧~ 青少年为什么要学习编程 青少年学习编程&#xff0c;就好比在他们年轻时就开始掌握一种…

Vulnhub靶机:Bellatrix

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.4&#xff09; 靶机&#xff1a;Bellatrix&#xff08;10.0.2.9&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/hogwa…

Sy2 Linux系统登录及用户管理

实验环境&#xff1a; 宿主机为win11 Vmware workstaion 17 目标机的OS&#xff1a; Ubuntu 2004 网络&#xff1a;NAT 获取地址&#xff1a;192.168.248.131/24 DNS,DHCP&#xff1a;192.168.248.2 第一章ppt的命令操作&#xff08;部分&#xff09; S1、执行whoami、who…

极狐GitLab 如何设置 Markdown 中的图片大小

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 使用极狐GitLab 进行代码托管或者 CI/CD&#xff0c;都避免不了…

Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?

文章目录 Object.defineProperty小结 proxy总结有需要的请私信博主&#xff0c;还请麻烦给个关注&#xff0c;博主不定期更新&#xff0c;或许能够有所帮助&#xff01;&#xff01;请关注公众号 Object.defineProperty 定义&#xff1a;Object.defineProperty() 方法会直接在一…

docker部署aria2-pro

前言 我平时有一些下载视频和一些资源文件的需求&#xff0c;有时候需要离线下载&#xff0c;也要速度比较快的方式 之前我是用家里的玩客云绝育之后不再写盘当下载机用的&#xff0c;但是限制很多 我发现了aria2 这个下载器非常适合我&#xff0c;而有个大佬又在原来的基础…