作业

/***  回顾:*   循环有三种  while  do-while  for*   固定元素 --> 循环变量赋初值  循环条件   重复操作的事情   循环变量自增或自减* 1.   在屏幕上输出10行内容,每行的内容都是“*”。*       for(int i = 0 ; i<10 ;i++){sout(“*”)}** 2.  在屏幕上输出10行内容,每行的内容都是“*****”。*        for(int i = 0 ; i<10 ;i++){sout(“*****”)}**      循环变量赋初值作用有两个: 1. 作为循环条件判断存在*                              2.参与到循环中运算** 3.  在屏幕上输出10行内容,每行的内容都不一样,第1行一个星号,第2行2个星号,依此类推第10行10个星号。**      内存循环不结束,外层无法开启下一次**     for(int j = 0 ; i<10;i++){  //外层循环 --》 控制行数*      for(int i = 0 ; i<=j ;i++){ //内层循环 --》 控制打印*的个数*      sout(“*”)   //---> 这个行的打印不能换行   这个打印不能添加ln*      }*      sout() //--->这里需要进行换行 需要使用ln  内存循环是打印一行内的 *  打印完之后需要换行*     }** 4.   在屏幕上输出10行内容,每行的内容都是“1”。* 5.  在屏幕上输出10行内容,每行的内容都不一样,第1行输出“1”,第 2行输出“2”,依此类推第10行输出“10”。*    //4~5题你就参考 123题即可** 6. 在屏幕上输出以下内容:*     12345*     1234*     123*     12*     1*     //1.打印第一行*     for(int i= 1;i<=5;i++){*         sout(i) //不能使用换行*     }*     //2.重复打印5次*     for(int j  =1 ; j<=5;j++){*          //控制当前打印个数   控制内层循环次数*          for(int i= 1;i<=6-i;i++){ //打印内容*  *         sout(i) //不能使用换行*  *     }*          sout()//需要使用换行*     }* 7. 计算10个99相加后的值并输出。*       int sum = 0*      for(int  i  = 0 ;i<10;i++){*          sum += 99;*      }* 8. 计算从1加到100的值并输出。* 9. 计算10的阶乘(1x2x3x4x5x6x7x8x9x10)。* 10.   计算2的20次方。  ---> Math.pow(2,20)*      int num = 1;*      for(int  i = 0;i<20;i++){*          num *= 2*      }*   7-10题 思路是完全一样  只不过循环条件变换  如果求和 sum = 0   如果求乘积 num = 1**   //循环体中 不仅可以写重复操作的事情【打印,计算,循环等等】*  // 循环体内部 添加判断  --》 if分支  switch分支** 11. 计算从1到1000以内所有奇数的和并输出。  if(i%2 == 1){sum += i}* 12.  计算从1到1000以内所有能被3或者17整除的数的和并输出。if(i%3==0 || i%17 == 0){sum +=i}* 13.   计算从1到1000以内所有能同时被3,5和7整除的数的和并输出。if(i%3==0 && i%5==0 && i%7==0){sum+=i}* 14.  计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。*       int count = 0;*    for(inti i = 1;i<100;i++){*         if(i%3 ==0  || i%7 ==0){*             if(i%3==0 && i%7 ==0){*                 continue;*             }else{*                  count ++; //计数变量*             }*         }*        }* 15.   计算1到100以内能被7整除但不是偶数的数的个数。*       if(i%7 == 0 && i%2 ==0 ){count ++}* 16.  计算从1到100之间临近两个整数的合并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后依次输出199(99+100)。*       for(int  i = 1; i<100;i++){*           sout((i+(i+1))+"("+i+"+"+(i+1)+")")*       }** 17. 判断n是不是一个质数(质数是只能被1和它自身整除的数)。***** 18. 将某个8位的整数所有位的数值加在一起并输出。*** 19.   给定一个n位的整数,将该数位逆置,*        例如给定12345变成54321,12320变成2321*        要求:输入是数字-->打印的结果也要是一个数字*         12345 -> 54321    12320 --> 2321    12032 -->23021** 20.   输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。*** 21. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?double类型做** 22. 打印输出乘法口诀表(直角三角形)** 23. 已知 abc+cba=1333, 其中的a,b,c均为一位数,编写一个程序,求出a,b,c分别代表什么数字** 24. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222*** 25.输入一个数,打印下述图形*     输入5*     打印*         ABBBB*      AABBB*    AAABB*  AAAAB* AAAAA*/
public class LoopHomeWork {public static void main(String[] args) {/** 17.  判断n是不是一个.(质数是只能被1和它自身整除的数)。*/int n = (int)(Math.random()*98+2);//[0,1)*98 --> [0,98)+2-->[2,100)//声明一个变量 ,这个变量用来存储能被整除数int  index = 0;//质数是只能被1和它自身整除的数  ,是从1开始往后//i<=n的原有是因为质数只能被1和自身整除for (int i = 2;i<=n;i++){if(n%i == 0){ //判断整除index = i; //i只有两种情况 一种就是自身,另外一种就是其他数据break;}}if (index == n){System.out.println("是质数:"+n);}else{System.out.println("不是质数:"+n);}/**** 18.    将某个8位的整数所有位的数值加在一起并输出。*/int n1 = 12345678; //1+2+3+4+5+6+7+8//通过对 n1%10  --》 获取到它的各位  重复8次 就可以拿到这里的每个个位  --》 如何拿到每一个个位//n1/10 --> 12345678/10 --> 1234567    1/10 --》 0 判断是否是0即可int sum = 0;for(;n1 !=0;){ //循环条件是一个boolean类型表达式 ,循环条件只认true和false  能出现true和false就是关系和逻辑运算符//就可以使用 > >= < <= == !=  && ||  !sum += n1%10;n1 = n1/10;}System.out.println(sum);/** 19. 给定一个n位的整数,将该数位逆置,*        例如给定12345变成54321,12320变成2321*        要求:输入是数字-->打印的结果也要是一个数字*         12345 -> 54321    12320 --> 2321    12032 -->23021*/int n2 = (int)(Math.random()*10000000);System.out.println("n2的值是:"+n2);int a = 0 ;// 存储 拆数的值int sub  = 0;//用来存储对数据拼接的操作//拆数字for(;n2 != 0;){//12345 --》 12345%10 ---》 5     1234%10 --》 4   123%10 --》 3a = n2%10;  //取出每一位//拼接sub = sub *10 + a;  // 0*10+5 --> sub = 5 //  5*10+4 --》 sub= 54  --》54*10+3//12345 --》 12345/10 --- 》1234    1234/10 --》123n2 = n2/10;     // 缩小10倍}System.out.println(sub);/* 20.    输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。循环变量赋初值  需要是从100开始 不要从1开始*//** 21. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?double类型做*///初始距离double sum1 = 100;//高度是double hight = 100;//因为sum已经记录第一次的距离100,所以从第二次开始计算for(int  i = 2;i<=10;i++){//每次弹起都是原有高度的一半hight = hight/2;//开始计算距离sum1 = sum1 + hight*2;System.out.println("第"+i+"次"+"高度:"+hight+"距离"+sum1);}System.out.println(sum1);/* 22. 打印输出乘法口诀表(直角三角形)*/for(int i = 1 ; i<=9;i++){ //行数for(int j = 1; j<=i;j++){ //控制打印内容 j<=i的时候  i值的增加 j值的打印就增加System.out.print(j+"x"+i+"="+(i*j)+"\t");}System.out.println();}/* 23. 已知 abc+cba=1333, 其中的a,b,c均为一位数,编写一个程序,求出a,b,c分别代表什么数字第一种  a的 变换范围就是从1~9之间  b的值 1~9   c的值1~9for(int a = 1;a<=9;a++){for(int b = 1 ; b<=9;b++){for(int c = 1;c<=9 ;c++){if(abc +cba == 1333)for(int i = 100; i<1000;i++){int a = i/100;int b = i/10%10;int c = i%10if(abc +cba == 1333)}*//* 24. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222*///定义一个随机数  1-9之间int n3 = (int)(Math.random()*9+1);System.out.println("数据是:"+n3);//定义一个计算范围int n4 = 5;//定一个变量求和int s = 0;//定义一个变量 固定n3值int m = n3;//循环计算for(int i = 1;i<=n4;i++){//先求和s= s+n3;//计算规律  就是乘以10+计算数据 就是下一位n3=n3*10+m;}System.out.println(s);/** 25.输入一个数,打印下述图形*     输入5*     打印*         ABBBB*       AABBB*     AAABB*   AAAAB* AAAAA*///定义常用变量char chA = 'A';char chB = 'B';char chS = ' ';//最外层循环控制行for(int i = 0;i<10;i++){//打印空格 随着行数增加而递减for(int j = 1; j<10-i;j++){System.out.print(chS);}//打印A 随着行数的增加而增加for(int y = 0;y<=i;y++){System.out.print(chA);}//打印B,B的打印和空格是一样for(int x= 1; x<10-i;x++){System.out.print(chB);}System.out.println();//换行}}
}

方法

学习循环的时候,就是解决重复操作的事情,相对来说比较简单【有规律、重复、语句格式是相同】

循环不能解决所有重复的问题,当遇到针对某一段特定的代码,重复实现,此时循环就无法完成这个需求,需要一个新的概念完成这个需求 —》 【方法】

方法就是**【一段特定功能的代码】**

开发中必须要遵守一个原则: DRY【不要重复自己】 --》 不要写多于的重复代码

方法的使用

将一段特定的功能代码进行封装,需要写入到一个大括号中,然后给这个大括号起一个名字,有这个名字之后,就可以调用这个方法了,调用方法就可以处理你要处理业务逻辑

方法定义

PS:方法与函数的关系"在Java中是不区分方法和函数的,函数和方法本质上是相同的,没有任何区别,所以我们即可以叫方法为函数,也可叫函数为方法,函数的叫法是从【面向过程】而来的,方法的叫法是从【面向对象】而来的"--》"因为Java是一门面向对象语言建议叫方法不要叫函数" 语法:访问权限修饰符 [其他修饰符] 返回值类型 方法名 (参数列表){方法体return    }
PS:在定义方法到时候,方法与方法之间是平级【兄弟】关系,不允许在方法的内部写另外一个方法

方法的详解

1. 访问权限修饰符:主要就是告诉程序猿谁能调用这个方法,【我们现阶段默认就是public】PS1."访问权限修饰符不仅可以修饰方法,还可以修饰类,和成员变量【属性】"2."访问权限修饰符一共有4种, 【公有,私有,默认,保护】 公有的权限是最大--》public"3."访问权限修饰符 可以不写 ,如果不写就默认权限"2. [其他修饰符]: 限制当前方法属于,谁可以对方进行操作,操作原则是什么  【可以明确的不写】 PS 现阶段因为没有面向对象概念存在,所以固定【static】1."其他修饰符一共有3种, 【静态,抽象,不可变】"因为static被翻译为【静态】,而在【java中静态的属于类】,可以直接在相同静态方法中调用,所以为了保证可以正常使用方法,我们先固定staitc3.返回值类型:  取决于当前封装的这段逻辑代码是否可以得到一个返回结果这个返回值类型将决定return关键后面跟着的值的数据类型  PS:1."返回值类型支持两种 【基本数据类型和引用类型】"2."返回值类型支持一种特殊数据类型,这个数据类型只能在方法中使用 --> ""void代码无返回值类型,方法处理完之后不会得到任何明确的结果""如果方法使用void,将不可以使用return后面跟值"4.方法名:  方法名必须遵守标识符命名规则,尽量使用英语动词,严禁使用【中文,拼音,无意义缩写】大小驼峰规则:大驼峰适用于: 类名,接口,枚举名,注解名字【要求:每个单词首字母大写】小驼峰适用于: 方法名【要求:第一个单词字母小写,后学每个单词字母大写】例如: getNumber5.(参数列表): 参数列表有一个学名"形参列表"PS: 形参  --》 形式参数什么是形参?"就是在方法参数列表中定义的变量,没有任何具体的值,这个变量是由外部传递而来决定这个变量的值,而在方法内部使用"  --》 "在方法没有调用之前,形参是没有变量空间的"参数列表的组成"【数据类型 参数名(变量名、形参名)】",这样的方式可以有多个,但是必须使用"【,】"隔开例如:(int a)  (int a, int b)如何定义参数列表?"如果这个方法中某些参数是由外部传递进来,并参与计算,就需要参数列表,否则可以不写"6.方法签名 : 方法签名=方法名+参数列表 每一个方法的方法签名"【都是唯一的】",这是代码中区分方的方式,也是编译器检查方法名是否重复第一个依据 --》可以利用方法签名做同一个方法概念 --》"【重载】"7.{方法体}:  就是你要处理也业务的逻辑【封装的就是逻辑代码】8.return 关键字  "return 最主要的作用就是停止(终止)一个方法"PS:如何使用returnreturn的使用取决于的返回值类型"一个方法中可以有多个return,但是只有一个方法中只有一个return执行""如果是多个return存在,需要使用分支语句将其分开" 1.如果返回值类型是void"此时方法中可以写return也可以不写,但是绝对不能return后面有值"2.有返回值类型"此时return必须有值,并且这个值需要和返回值类型一致""return后面只能跟一个值,不能是多个值"例如: return 1;  是可以的return 1 2; 或 return 1,2; 都不可以PS:方法中只要遇到return必然停止,所以在什么为之使用个return 一定要慎重return只会适用于当前方法内部return后面跟的式一个值,记住这个值即可以是【变量,常量和表达式】

定义方法和调用方法

定义方法

  import java.util.Scanner;/*** 方法的调用和定义*/
public class MethodDemo1 {public static void main(String[] args) {//如何定义方法Scanner input = new Scanner(System.in);System.out.println("请输入第一个数据:" );int a = input.nextInt();System.out.println("请输入第二个数据:" );int b = input.nextInt();//1.在写好逻辑思维的位置 使用{}将逻辑代码括起来//2.给这个{}括起来的代码起名//3.使用已知的修饰【访问权限和其他权限】//4.在确定返回值和参数列表前提下,可以先不写,后续决定
//         public static void maxNumber(){//            //比较谁最大
//            int max = a > b ? a : b;
//        }//5.方法与方法之间是平级关系,所以需要定在方法外部,而不是内部System.out.println("最大值:" + max);}/**建议在每个写好的方法上面添加文档注释* 这里是写这个方法是干什么* @param a 方法的参数 说明【类型 ,传递方式】* @param b* @return 方法可以得到的返回值 ,说明返回值含义*//*** 判断两个整数谁最大* @param a int类型变量* @param b int类型变量* @return  a和b之间的最大值【int类型】*/public static int maxNumber(int a,int b){/*如果在方法体中需要使用到某个参数有两种方式1.在方法体的内部定义参数并赋值使用[是否定义需要看需求]PS:需求指,当前变量仅在方法内部使用,我们就可以直接在方法体内定义*/
//        int a = 1;
//        int b = 2;//2.在方法中使用变量可以作为方法的形参存在,当前方法使用参数是外部传递进来//ps:当前方法内只是一个处理逻辑,具体数据是有外部调用方法人员决定//形参名字可以和外部传递进来的变量名一致//此时是否需要返回值?//如果调用方法的时候,需要值继续进行参与计算,此时就需要返回值//当前方法只是做一个打印结果展示,就不需要使用返回值  //此方法就带有返回值return  a > b ? a : b;}//方法定义方式2/*1.因为方法和方法之间是平级关系,所以直接定义在类体的内部和其他方法平级即可2.使用已知的权限修饰符进行方法修饰3.可以在定义方法时决定返回值类型,若无法决定可以使用void4.起一个方法的名字,遵守小驼峰规则5.参数列表,如果能明确,建议直接定义,否则先不写6.书写方法体,逻辑处理7.是否需要return 看返回值类型类型*/public static void println99(){for (int i = 1 ;i<=9;i++){for(int j = 1;j<=i;j++){System.out.print(j+"x"+i+"="+(i*j)+"\t");}System.out.println();}}
}

调用方法

import java.util.Scanner;/*** 方法的调用*/
public class MethodDemo2 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入第一个数据:" );int a = input.nextInt();System.out.println("请输入第二个数据:" );int b = input.nextInt();//调用规则//1.方法只能在方法体的内部调用//2.调用方法的时候如果有方法参数,必须传递【必须给形参赋值】//  如果没有参数一定不能传递【不能赋值】//3.方法没有返回值,此时不允许接收也不允许使用到println语句 --》【返回值是void】//4.方法有返回值,可以分为两种方式处理/*1.接收返回值:接收方法返回值的时候需要和返回值类型一致的数据类型声明变量接收2.不接收返回值,可以不用做任何处理PS:只要是带有返回值类型方法都可以使用println语句打印,并且可以参与到其他方法传递和判断语句中使用*///如何调用 方法名(给具体的参数值)//1.常规调用println99(); //因为是无返回值类型,所以不能接收和打印// void  sum = println99();//System.out.println(println99());//带有返回值类型的方法处理方式://接收在使用int max =   maxNumber(a,b);//带有参数的必须传递参数,传递到参数中对形参赋值的这个变量// 叫做实际参数【实参】,真是存在并已经赋值 的变量 或常量 或表达式 或 其他带有相同数据类型的方法【返回值类型】System.out.println("最大值:" + max);//直接打印System.out.println("最大值:"+maxNumber(a,b));//可以参与到其他运算中System.out.println("请输入第三个数据:");int c = input.nextInt();int max2 = maxNumber2(maxNumber(a,b),c);System.out.println("最大值:"+max2);}public static int  maxNumber2(int a,int c){return a > c ? a : c;}/*** 判断两个整数谁最大* @param a int类型变量* @param b int类型变量* @return  a和b之间的最大值【int类型】*/public static int maxNumber(int a,int b){return  a > b ? a : b;}/*** 打印99乘法表*/public static void println99(){for (int i = 1 ;i<=9;i++){for(int j = 1;j<=i;j++){System.out.print(j+"x"+i+"="+(i*j)+"\t");}System.out.println();}}
}

PS:因为现在定义的方式static修饰的,所以是属于类的,如果在同一个文件中调用这个样静态方法,可以省略如下写法:

"类名.静态方法名(参数列表)  等价于  静态方法名(参数列表)"

在不同文件中调用静态方法,就必须使用【类名.静态方法名(参数列表)】–》例子就是Math类下面的所有方法

常见方法形式

常见方法的定义方式//1.无参无返回类型的方法public static void 方法名(){}//2.有参无法无返回值类型public static void 方法名(参数列表){}//3.有参有返回值类型public static 返回值类型 方法名(参数列表){ return 跟返回值类型一样的数据}//4.无参有返回值类型public static 返回值类型 方法名(){return 跟返回值类型一样的数据}

重载(overload)

需求:在同一个类中,分别定义两个方法一个是求两个整数的和另外一个球小数的和

import jdk.nashorn.internal.ir.CallNode;/*** 重载*/
public class OverloadDemo {/*** 求出两个整数的和* @param a int 类型* @param b int 类型* @return  两个整数的和*/public static int getSum(int a,int b){return a+b;}/*** 求两个小数的和* @param a double 类型* @param b double 类型* @return 两个小数的和*/public static double getSum(double a,double b){return a+b;}public static void main(String[] args) {//1.求整数//如果方法名过多不方便记忆也不方管理//提供同一个方法名,无需记忆其他参数和方法名,只需要记录一个方法,系统会根据传递参数动态选择合适方法使用int sum = getSum(1, 2);}
}

重载的规则

方法重载:方法名相同,参数列表不同即为重载【只要满足以下任意一个条件即可】

1.参数的数据类型不同
2.个数不同
3.顺序不同  

重载的好处:可以不用大量记忆方法名,同样实现逻辑的方法只需要记住一个方法名即可,无需记忆参数类型,只需要在调用方法的时候,传入对应值即可,系统会自动选择最合适的方法给你使用

重载避免的问

/*** 重载问题*/
public class OverloadDemo2 {public static int getSum(byte num1,short num2) {return num1+num2;}public static int getSum(short num1,byte num2){return num1+num2;}public static void main(String[] args) {byte num1 = 1;byte num2 = 2;//写重载方的时候必须避免的一个问题,就是“二义性”//当前程序是通过参数自动匹配方法的,因为byte类型都可以匹配为到当前的方法中//所有会出现两个方法都匹配,无法调用的// getSum(num1,num2);}
}ps:以后再定义方法重载的时候,数据类型尽量定义一致,避免交叉问题

方法在内存中的调用

在这里插入图片描述

1-4 Java方法和数组相关推荐

  1. java方法和数组的概念及法

    今天主要是了解数组和方法,下面主要是展示一下方法的概念和调用以及技巧,数组的引用调用命名等规则 方法和数组 方法的概念 调用方式常见的有三种 重名问题 参数传递 两条规则 递归调用 汉诺塔问题: 递归 ...

  2. Java方法实现数组的遍历、获取数组的最大值和最小值

    1. Java方法的练习:数组遍历 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的.例如:[11, 22, 33, 44, 55] import java.util.Scanner;//需 ...

  3. Java方法中数组_Java中数组常用方法的总结

    将截取一部分旧数组中的元素,复制给新数组, 反之,如果大于旧数组的长度,则将以 0 , null ,或 false 给予补充. 例:快速复制数组? public class Practice{ pub ...

  4. Java方法和数组练习

  5. java怎么返回数组_java方法怎么返回数组

    java方法返回数组的方法:在方法前添加int[]即可返回一维的整型数组.如果在方法前添加int[][],则可以返回二维的整型数组. Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还 ...

  6. java反射 数组类,乐字节Java反射之三:方法、数组、类加载器和类的生命周期

    继续讲述Java反射之三:方法.数组.类加载器 一.方法 获取所有方法(包括父类或接口),使用Method即可. public static void test() throwsException { ...

  7. Java学习_day007:数组与方法

    一.数组 数组的复制 int[]a={10,20,30,40,50}; int[]b=new int[6]; //b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4 ...

  8. Java中创建数组的几种方法

    Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...

  9. JAVA不同类型数组重载_java学习笔记--java中的方法与数组

    方法 完成特定功能的代码块 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ //方法体 return 返回值: } 方法的调用方式 通过方法名调用方法 根据形 ...

最新文章

  1. IDEA 配置 Docker
  2. svn命令在linux下的使用
  3. python习题:写一个备份数据库的脚本
  4. pytorch tensor查找0_在PyTorch中Tensor的查找和筛选例子
  5. 关键路径问题--完美版
  6. 老师,我们想看到您的笑容!
  7. 基于Java springboot+vue+redis前后端分离家具商城平台系统设计和实现
  8. Arduino笔记-Arduino UNO与WeMos D1串口通信(数据交互)
  9. LeetCode —— 332. 重新安排行程(Python)
  10. Unity3d 周分享(11期 2019.2.16)
  11. 信息论与编码冯桂周林著答案_信息论与编码技术+(冯桂+林其伟+陈东华+著)+清华大学出版社+课后答案.pdf...
  12. 将计算机屏幕,iPad化身显示器!一款能让平板变电脑屏幕的神器
  13. 《 PHP+H5全栈工程师培训项目实战》
  14. Boxplot(箱形图或盒图)的介绍和使用
  15. GPS GLONASS数据文件类型解析
  16. JAVA学习【IDEA转中文】
  17. 逆向之汇编(EBP寻址)
  18. 从零开始学架构——异地多活架构
  19. 【U8+】U8手工增加会计期间提示找不到存储过程
  20. Robot Framework + Pywinauto 框架实现Windows GUI Automation

热门文章

  1. 基于帝企鹅算法优化BP神经网络实现数据预测matlab代码
  2. 一首歌曲,没有寻找到试听资源
  3. 第二次作业:支付宝案例分析1
  4. 数据的商业化实现之商圈选址
  5. 软件测试 (1)软件测试基础/理论知识储备
  6. Java数据结构之栈与计算器
  7. EndNote参考文献格式_国标
  8. 微型计算机功耗,关机功耗不到1W EuP主板设计简析
  9. 风雨二十载:OpenGL 4.3规范发布
  10. 云服务器多个项目同时迁移至另一台服务器(阿里腾讯共享镜像用法)