黑马程序员技术交流社区

标题: 提供基础班的课堂笔记,分享给大家 [打印本页]

作者: 曹操001    时间: 2015-6-21 00:30
标题: 提供基础班的课堂笔记,分享给大家
1:常量(理解)
(1)在程序的运行过程中,其值是不可以发生改变的量。
(2)常量的分类:
  1:字面值常量
   1:整数常量
    12,-23
   2:实数常量
    12.5,-65.43
   3:字符常量
    'a','A','0'
   4:字符串常量
    "hello"
   5:布尔常量
    true,false
   6:空常量(后面讲)
    null
  2:自定义常量(后面讲)
(3)常量可以直接被输出。
2:进制(理解)
(1)是一种进位的方式。X进制,表示逢x进1。
(2)Java中整数常量的表示
  1:二进制 由0,1组成。以0b开头。JDK7以后的新特性。
  2:八进制 由0-7组成。以0开头。
  3:十进制 由0-9组成。默认就是十进制。
  4:十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。
(3)进制转换:
  1:其他进制到十进制
   系数:就是每一位上的数据。
   基数:X进制,基数就是X。
   权:在右边,从0开始编号,对应位上的编号即为该位的权。
   结果:把系数*基数的权次幂相加即可。
   
   二进制:1011
    十进制:
   八进制:74
    十进制:
   十六进制:a3
    十进制:
  2:十进制到其他进制
   除基取余,直到商为0,余数反转。
   十进制:60
   结果:
    二进制
    八进制
    十六进制
  3:快速转换
   1:8421码。
   2:二进制--八进制(3位组合)
   3:二进制--十六进制(4位组合)
3:变量(掌握)
(1)程序的运行过程中,在指定范围内发生改变的量。
(2)格式:
  数据类型 变量名 = 初始化值;
  变形格式:
   数据类型 变量名;
   变量名 = 初始化值;
  举例:
   方式1: byte b = 10;
   方式2: byte b;
    b = 10;
4:数据类型(掌握)
(1)分类
  基本类型:4类8种。
  引用类型:类,接口,数组。(了解)
(2)基本类型
  整型:
   byte 1
   short 2
   int 4
   long 8
  浮点型:
   float 4
   double 8
  字符型:
   char 2
  布尔型:  
   boolean 不明确。可以认为是1个字节。
  
  注意:
   整数默认是int类型。long类型需要加L或者l后缀。
   浮点数默认是double类型。float类型需要加F或者f后缀。
(3)类型转换
  1:boolean类型不参与转换。
  2:隐式转换(从小到大)
   byte,short,char -- int -- long -- float -- double
  3:强制转换(从大到小)
   格式:
    (数据类型)数据;
(4)面试题
  byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;
  byte b4 = 3 + 4;
5:运算符(掌握)
(1)就是把常量和变量连接的符号,一般参与运算使用。
(2)分类:
  算术运算符
  赋值运算符
  关系运算符
  逻辑运算符
  位运算符
  三元运算符
(3)算术运算符
  +,-,*,/,%,++,--
  +:正号,加法,字符串连接符。
   System.out.println("5+5="+5+5);//5+5=55
   System.out.println(5+5+"=5+5");//10=5+5
  %:取得余数
   左边如果大于右边,结果是余数。
   左边如果小于右边,结果是左边。
   左边如果等于右边,结果是0。
   正负号跟左边一致。
  ++/--:
   ++ 其实相当于把数据+1
   单独使用:
    在数据的前后,结果一致。
  
   参与操作使用:
    如果在数据的后边,数据先操作,在++/--
    如果在数据的前边,数据先++/--,在操作。
(4)赋值运算符
  =,+=,-=,*=,/=,%=
  int a = 10;
   把10赋值给int类型的变量a。
  a += 20;
   把左边和右边的和赋值给左边。
  注意事项:
   a = a + 20;
   a += 20;
   结果是等价的,理解不是等价的。
   因为+=这种运算符,内含了强制类型转换功能。
   比如:
    short s = 2;
    s+=3;
    等价于
    s = (short)
(5)关系运算符
  ==,!=,>,>=,<,<=
  特点:关系运算符的结果都是boolean类型。
        请千万注意:== 不要写成 =
(6)逻辑运算符
  &,|,!,^,&&,||
  
  &:有false则false
  |:有true则true
  !:true变false,false变true
  ^:相同false,不同true
  &&:有false则false
  ||:有true则true
  &&和&的区别是:如果左边有false了,右边将不再执行。
  ||和|的区别是:如果左边有true了,右边将不再执行。
  开发中常用:
   &&,||,!(s+3);


1:运算符(掌握)
(1)位运算符(了解)
  ^ : 一个数据对同一个数据^两次,结果还是数据本身。
  举例:a ^ b ^ b = a
(2)条件运算符
  格式:
   条件表达式?表达式1:表达式2
   执行流程:
    根据条件表达式返回的是true还是false,决定结果是什么。
    如果是true,就把表达式1作为结果。
    如果是false,就把表达式2作为结果。
  举例:
   int a = 100;
   int b = a > 50 ? 200 : 100;
   请问b的值?200
2:面试题(理解)
(1)请用最有效率的代码写出2乘以8
  2<<3
(2)请交换两个变量。
  int a = 10;
  int b = 20;
  开发:临时变量
   int temp = a;
   a = b;
   b = temp;
  面试:位^运算符
   a = a ^ b;
   b = a ^ b;
   a = a ^ b;
3:if语句(掌握)
(1)用于做判断使用的。
    常见于对某个范围进行判断,或者几个变量进行判断,还有就是boolean表达式的判断。
(2)格式:
A:第一种格式
  if(条件表达式)
  {
   语句体;
  }
  执行流程:
   如果条件表达式为true,就执行语句体;
   否则,什么都不执行。
B:第二种格式
if(条件表达式)
{
  语句体1;
}
else
{
  语句体2;
}
执行流程:
  如果条件表达式为true,就执行语句体1;
  否则,就执行语句体2;
特殊:
  可以和条件表达式在某些情况下进行替换。
  一般是在赋值的情况下可以。
举例:
  获取两个数中的最大值。
C:第三种格式
if(条件表达式1)
{
  语句体1;
}
else if(条件表达式2)
{
  语句体2;
}
...
else
{
  语句体n;
}
执行流程:
  如果条件表达式1为true,就执行语句体1;
  如果条件表达式2为true,就执行语句体2;
  ...
  否则,就执行语句体n;
  
D:注意事项
a:什么时候时候哪一种if语句。
  第一种格式在判断条件为一种情况下使用。
  第二种格式在判断条件为两种情况下使用。
  第三种格式在判断条件为多种情况下使用。
b:每一种if语句其实都是一个整体,如果有地方执行了,
   其他的就不执行了。
c:如果if或者else里面控制的语句体是一条语句,是可以省略大括号的,
   但是,如果是控制多条语句,就必须写上大括号。
   建议:永远写上大括号。
d:大括号和分号一般不同时出现。
E:作用域
所有变量的定义只在它所属的大括号内有效。
(3)案例:
  A:根据键盘录入的成绩,判断等级。
  B:根据键盘录入的月份,输出该月份所对应的季节。
4:switch语句(掌握)
(1)用于做选择使用的。一般用于几个常量的判断。
switch会把几个常量值直接加载到内存,在判断的时候,效率要比if高。
所以,针对几个常量的判断,一般选择switch语句。
(2)switch语句的格式:
switch(表达式)
{
  case 值1:
   语句体1;
   break;
  case 值2:
   语句体2;
   break;
  case 值3:
   语句体3;
   break;
  ...
  default:
   语句体n;
   break;
}
  A:针对格式的解释
   switch:表示这里使用的是switch语句,后面跟的是选项。
    表达式:byte,short,int,char
            JDK5以后可以是枚举(以后讲)
     JDK7以后可以是字符串(后面讲)
   case:表示这里就是选项的值,它后面的值将来和表达式的值进行匹配。
        case后面的值是不能够重复的。
   break:
    switch语句执行到这里,就结束了。
   default:
    当所有的case和表达式都不匹配的时候,就走default的内容。
    它相当于if语句的else。一般不建议省略。
  B:执行流程
   进入switch语句后,就会根据表达式的值去找对应的case值。
   如果最终没有找到,那么,就执行default的内容。
  
  C:注意事项:
   a:default整体可以省略吗?
    可以,但是不建议。
   b:default的位置可以放到前面吗?
    可以,但是不建议。
   c:break可以省略吗?
    可以,但是不建议。
    default在最后,break是可以省略的。
    case后面的break可以省略,但是结果可能有问题。
   d:switch语句什么时候结束呢?
    就是遇到break或者执行到程序的末尾。
(3)案例:
  A:根据键盘录入的日期(1-7),输出对应的星期日期。
  B:根据键盘录入的月份,输出该月份所对应的季节。(选做)
5:Scanner的使用(掌握)
(1)Scanner是JDK5以后设计的用来接收键盘录入数据使用的。
(2)目前我们要通过键盘录入int类型数据,必须按照如下步骤:
  A:导包
   import java.util.Scanner;
  B:创建对象,封装键盘录入
   Scanner sc = new Scanner(System.in);
  C:调用方法,获取数据
   int number = sc.nextInt();


作者: 曹操001    时间: 2015-6-21 00:32
1:循环(掌握)
        (1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码。
           让我们代码看起来简洁了。
        (2)循环的组成
                A:循环体,就是要做的事情。
                B:初始化条件。一般定义的是一个初始变量
                C:判断条件。用于控制循环的结束。
                D:控制条件。用于控制变量的变化。一般都是一个++/--操作。
        (3)循环的分类:
                A:for
                        for(初始化条件;判断条件;控制条件)
                        {
                                循环体;
                        }

                        执行流程:
                                a:先执行初始化条件;
                                b:执行判断条件
                                c:根据判断条件的返回值:
                                        true:执行循环体。
                                        false:就结束循环。
                                d:最后执行控制条件。返回到b继续。

                B:while
                        初始化条件;
                        while(判断条件)
                        {
                                循环体;
                                控制条件;
                        }
                       
                        执行流程:
                                a:先执行初始化条件;
                                b:执行判断条件
                                c:根据判断条件的返回值:
                                        true:执行循环体。
                                        false:就结束循环。
                                d:最后执行控制条件。返回到b继续。

                C:do...while(了解)
                        初始化条件;
                        do{
                                循环体;
                                控制条件;
                        }while(判断条件);

                        执行流程:
                                a:先执行初始化条件;
                                b:执行循环体和控制条件;
                                c:执行判断条件
                                d:根据返回值
                                        true:返回b。
                                        false:就结束循环。

                注意:
                        a:一般使用for循环或者while循环。而且这两种循环是可以等价转换的。
                        b:do...while循环至少执行一次循环体。

        (4)案例:(掌握)
                A:请在控制台输出5次"我爱Java"
                B:请在控制台输出1-10的数据。
                C:求1-10的和,改进位求1-100的和。
                D:求1-100之间偶数的和。
                E:求5的阶乘。
                F:水仙花。
                G:统计叠多少次,能叠成珠穆朗玛峰的高度。
        (5)循环嵌套:(理解)
                A:也就是循环语句的循环体是一个循环语句。
                B:通过输出
                        ****
                        ****
                        ****
                  我们不断的改进。发现了一个问题:
                        外循环控制行数,内循环控制列数。
        (6)案例:(理解)
                A:正三角形
                        内循环的判断条件:y<=x

                        for(int x=0; x<5; x++)
                        {
                                for(int y=0; y<=x; y++)
                                {
                                        System.out.print("*");
                                }
                                System.out.println();
                        }

                B:倒三角形
                        内循环的初始化条件:y=x

                        for(int x=0; x<5; x++)
                        {
                                for(int y=x; y<5; y++)
                                {
                                        System.out.print("*");
                                }
                                System.out.println();
                        }

                C:九九乘法表(理解)
               

2:break和continue(掌握)
        (1)有些时候,我们需要对循环进行一些控制终止,这个时候,就出现了两个关键字:
                break和continue
        (2)特点:
                A:它们都必须在循环中(break还可以在switch中。)。
                  一般在循环的判断中。
                B:如果单独使用break和continue,后面是不能有语句的。
        (3)区别:
                A:break 结束当前循环。
                B:continue 结束本次循环,进入下一次循环。
        (4)如何退出嵌套循环:(了解)
                用带标签的循环。
                格式:
                        标签名:for(){
                                        for(){
                                                if()
                                                {
                                                        break 标签名;
                                                }
                                        }
                                }

3:应用场景(理解)
        (1)变量:发现有一个数据是变化的时候,就要用变量。
        (2)if语句:如果是一个范围的判断,boolean类型的表达式的判断,几个数据的判断。
        (3)switch语句:几个数据的判断。一般这种情况,有限选择switch。
        (4)for语句:如果次数或者范围特别明确。(水仙花)
        (5)while语句:如果次数或者范围不明确。(珠穆朗玛峰)

1、概念(掌握)
                    定义在类中,有特定功能的一小段程序


     2、格式(掌握)




                    

                        修饰符 返回类型 函数名(参数类型 形式参数,...){

                              函数体;

                              return 返回值;

                         }




                  解释:

                         A 修饰符: public static

                         B 返回值类型 :就是数据类型

                         C 函数名:见名知意,如果一个单词,首字母小写,如果多个单词组成,从第二个单词开始首字母大写

                         D 参数类型 :数据类型

                         E 形式参数 :接受实际参数的变量

                         F 实际参数 :就是实际参与运算的变量

                         G 函数体:实现功能的代码

                         H 返回值 程序的结果,如果没有明确返回值可以不写

                         I return 返回值 ,那里调用程序,return就把结果返回到哪里 比如 int num = max(1,2);return把结果返回给num

     3、特点(掌握!!)

                   A 函数和函数是平级关系,且只能定义在类中,不能在函数中嵌套函数

                   B 函数只有被调用才会执行

     4、注意(掌握)

                   无论函数的返回值是具体的数据类型还是void,函数都是以return语句结束的

     5、函数的调用(理解)

                   A 有明确返回值函数的调用

                            单独调用//没有意义

                            输出调用//视频中老师用的最多的

                            赋值调用//开发中用的最多的

                   B  没有明确返回值函数的调用

                            单独调用

     6、函数的重载-overload(掌握)

                   概念

                             在同一个类中,函数名相同,参数列表不同(参数类型和个数),与返回值类型无关

                   举例

                              class Demo{





public static void print(int x, int y);




public static void print(int a,int b,int c)




public static void print(double a);




public static void print(int a);




}

     7、案例(掌握)

                    1、有明确返回值的案例

                             A求两个数据和

                             B 求两个数据的最大值

                             C 比较两个数是否相等

                    2、没有明确返回值的案例

                             A 矩形案例

                             B nn乘法表



2、数组(掌握)



     1、概念(掌握)

                  数组是存储多个同一类型数据元素的容器(container)

     2、好处(理解)

                  数组中的元素会被自动从0开始编号,方便我们获取
     3、格式(掌握)

                  A int[] arr =new int[2];//念法:int类型的数组arr

                  B int arr[] = new int[2];//念法:int 类型的arr数组,不推荐这么写,他和第一种格式其实一样的

                  C int[] arr = new int[]{1,2,3,7};//大括号内可以没有任何东西

                  D int[] arr = {3,4,65,4};//大括号内可以没有任何东西

     




                  推荐使用A D,如果是给方法直接传递实际参数可以用c

                  获取数组的长度:变量名.length;



     4、内存图(理解)

                  堆:所有new出来的东西都在堆里
                  1、每一个实体都有地址值
                  2、每一个实体内的内容都有默认值



整数: 0



浮点数: 0.0



字符: ’\u0000’  //char c = ‘\u0000’;



布尔:false

      5、数组操作(掌握)


                  1、数组遍历
                  2、获取数组最值

                  3、数组查找:给定一个值,查找该值在数组中对应的索引

      6、常见问题(掌握)

                  A 数组越界异常:ArrayIndexOutOfBoundsException

                         你访问了不存在的索引。

                  B 空指针异常:NullPointerException

                         一个实例(对象)已经不存在了,你还去访问它的内容
      7、二维数组(理解)

                  A 格式

                         第一种定义通过定义长度的方式定义了二维数组的长度,并且定义了一维数组的长度 int[][] arr = new int[6][3]

                         第二种定义通过长度仅定义了二维数组的长度,没有初始化一维数组int[] [] arr= new int[2][]

                         第三种定义通过直接给出元素定义了二维数组的长度和每一个一维数组的长度 int[][] arr = {{2,23},{33}}

                  B 案例

                         抽烟案例

                              /**



一条烟中10包烟


每包烟有20支烟


那么就把一条烟看成一个二维数组,里面的包是一维数组


*/


class SmokeDemo


{


     public static void main(String[] args)


     {


          int[][] tiaoyan = new int[10][20];


         


          tiaoyan[9] = new int[2];


         






          for(int i=0; i<tiaoyan.length; i++)


          {


               int[] baoyan = tiaoyan[i];


               for(int j=0; j<baoyan.length; j++)


               {


                    System.out.println("正在抽第"+(i+1)+"盒烟中的第"+(j+1)+"根烟");


               }


          }


     }


}
      
作者: 1958078929    时间: 2015-6-21 10:14
谢谢分享
作者: 曹操001    时间: 2015-6-21 11:22
zhangkai986745 发表于 2015-6-21 08:34
这是基础班前几天的笔记

恩恩,我主页里面还有其他几天的,随后会更新基础班所有的笔记和大家分享,希望可以帮到大家
作者: 曹操001    时间: 2015-6-21 11:23
1958078929 发表于 2015-6-21 10:14
谢谢分享

不用客气,我也在享受分享的乐趣:lol
作者: JJJD    时间: 2015-6-21 11:25
谢谢分享
作者: 曹操001    时间: 2015-6-21 11:27
JJJD 发表于 2015-6-21 11:25
谢谢分享

作为黑马的一员,这是义所当为!
作者: 壹颗心只属于你    时间: 2015-6-21 11:54
不错啊,谢谢分享。

作者: 曹操001    时间: 2015-6-21 12:40
壹颗心只属于你 发表于 2015-6-21 11:54
不错啊,谢谢分享。

不用客气:lol
作者: 十五号的人生    时间: 2015-6-21 12:43
赞一个      
作者: 1千克=1024克    时间: 2015-6-21 20:58
记得有点忒详细了...
作者: 小龙编程世界    时间: 2015-6-21 21:59
笔记写的很详细,不错
作者: heisanheisan123    时间: 2015-6-21 22:04
谢谢分享
作者: 夜空中最亮的星    时间: 2015-6-21 22:06
感谢楼主
作者: 腹黑生姜    时间: 2015-6-21 22:46
感谢曹操的分享
作者: ARD    时间: 2015-6-21 22:56
顶 支持.
作者: 小骆驼    时间: 2015-6-21 23:03
整理的不错,挺好的
作者: liu100chao    时间: 2015-6-21 23:21
我在此给你赞一个
作者: cyd1058    时间: 2015-6-21 23:27
谢了!!!!!
作者: 为了理想而奋斗    时间: 2015-6-22 03:02
谢谢分享
作者: 曹操001    时间: 2015-6-23 00:14
为了理想而奋斗 发表于 2015-6-22 03:02
谢谢分享

不用客气!义所当为!:lol
作者: 银哥    时间: 2015-6-23 08:22
谢谢分享
作者: 水壶vs兔子    时间: 2015-6-23 09:01
这是自己做的笔记吗?谢谢分享!
作者: 野驴少东    时间: 2015-6-23 09:14
楼主的长度有了,高度也随之而来
作者: fantianfei    时间: 2015-6-23 09:26
楼主感觉怎样?
作者: 陌上桑    时间: 2015-6-23 09:57
       http://blog.csdn.net/wuqiqing_1/article/details/46597765   希望帮助到你
作者: 拐子    时间: 2015-6-23 10:15
自己的笔记么?
作者: 王冲6060    时间: 2015-6-23 19:33
感谢分享
作者: Foundmoon    时间: 2015-6-23 19:49
挺全啊,谢谢分享
作者: 一口老郭    时间: 2015-6-23 20:42
哇,谢谢楼主!
作者: 发抖的_DtYJA    时间: 2015-6-23 21:08

记得有点忒详细了...
作者: Ann闇    时间: 2015-6-23 21:37
刚好在学 感谢分享
作者: 曹操001    时间: 2015-6-25 01:28
fantianfei 发表于 2015-6-23 09:26
楼主感觉怎样?

有点难度,现在已经跟不上了,在班里已经是倒数了
作者: 曹操001    时间: 2015-6-25 01:29
拐子 发表于 2015-6-23 10:15
自己的笔记么?

是我们老师总结的,我就把它拿出来和大家分享一下啦:lol
作者: fantianfei    时间: 2015-6-25 08:37
曹操001 发表于 2015-6-25 01:28
有点难度,现在已经跟不上了,在班里已经是倒数了

这样的啊,看来压力在啊
作者: ssc911361    时间: 2015-6-25 09:27
头像不错呀!!!
作者: 龙哥Longer    时间: 2015-6-25 12:21
谢谢分享,温故而知新
作者: 几率收割    时间: 2015-6-25 12:29
太长了,看不下去了
作者: 伟大的骗子    时间: 2015-6-25 12:30
wawawawa,好货啊
作者: 乔栋    时间: 2015-6-25 12:47
曹操001 发表于 2015-6-21 00:32
1:循环(掌握)
        (1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码。
           让我们代码看起 ...

O(∩_∩)O谢谢分享
作者: 乔栋    时间: 2015-6-25 12:51
顶。。。。。。。。。。。。。。。。
作者: 风一样的少年    时间: 2015-6-25 15:41
好详细,值得学习
作者: 曹操001    时间: 2015-6-25 23:39
不用客气!
作者: 曹操001    时间: 2015-6-25 23:42
lidiwo 发表于 2015-6-25 08:06
都是基础知识呢

恩恩,是的都是基础的
作者: 曹操001    时间: 2015-6-25 23:43
ssc911361 发表于 2015-6-25 09:27
头像不错呀!!!

恩恩,曹操是我的偶像,呵呵
作者: 曹操001    时间: 2015-6-25 23:44
fantianfei 发表于 2015-6-25 08:37
这样的啊,看来压力在啊

恩恩,我们班里好多人都有压力
作者: 金亮0602    时间: 2015-6-25 23:55
多多总结,温故知新,总有收获
作者: e275919713    时间: 2015-6-26 21:45
笔记很详细
作者: 曹操001    时间: 2015-6-27 00:44
金亮0602 发表于 2015-6-25 23:55
多多总结,温故知新,总有收获

恩恩,是的,每次复习都有新的收获!
作者: 曹操001    时间: 2015-6-27 00:47
e275919713 发表于 2015-6-26 21:45
笔记很详细

恩恩,这些都是我们老师总结的
作者: 曹操001    时间: 2015-6-27 00:51
e275919713 发表于 2015-6-26 21:45
笔记很详细

恩恩,这些都是我们老师总结的
作者: 蓦然回首3Y    时间: 2015-6-27 07:01
很详细啊,楼主是个有心人
作者: lvzhfeng    时间: 2015-6-27 07:17
顶,支持一下
作者: 爱李萝卜    时间: 2015-6-27 08:00
感谢分享,每看一次都有不同的收获
作者: 雏鹰起飞    时间: 2015-6-27 09:24
感谢分享
作者: zuopiezi    时间: 2015-6-27 10:03
好吧。。。。。。。。。。
作者: 风随心动    时间: 2015-6-27 10:17
大顶,楼主很仔细
作者: 曹操001    时间: 2015-6-28 00:46
蓦然回首3Y 发表于 2015-6-27 07:01
很详细啊,楼主是个有心人

希望可以帮助更多的基础班的师兄师弟
作者: 曹操001    时间: 2015-6-28 00:49
爱李萝卜 发表于 2015-6-27 08:00
感谢分享,每看一次都有不同的收获

恩恩,温故而知新!天才就是重复次数最多的人!
作者: 曹操001    时间: 2015-6-28 00:51
风随心动 发表于 2015-6-27 10:17
大顶,楼主很仔细

恩恩,这些都是我们老师上课总结的,希望可以帮助更多的同学
作者: 为了理想而奋斗    时间: 2015-6-28 06:28
谢谢分享。
作者: 曹操001    时间: 2015-6-29 01:03
为了理想而奋斗 发表于 2015-6-28 06:28
谢谢分享。

希望可以帮助大家
作者: asinzuo    时间: 2015-6-29 09:49
真的很不错
作者: 曹操001    时间: 2015-6-30 00:27
asinzuo 发表于 2015-6-29 09:49
真的很不错

恩恩,这些都是我们老师总结的!
作者: 一口老郭    时间: 2015-6-30 14:04
楼主辛苦了!
作者: 杰可可    时间: 2015-6-30 14:09
复习了,谢楼主!
作者: 汪磊の    时间: 2015-6-30 15:08
整理的很详细,赞一个
作者: qingger    时间: 2015-6-30 15:20
很详细,认真,谢谢
作者: hoop.zeng    时间: 2015-6-30 17:54
谢谢分享
作者: 曹操001    时间: 2015-7-1 00:22
一口老郭 发表于 2015-6-30 14:04
楼主辛苦了!

不用客气,希望可以帮到大家
作者: 曹操001    时间: 2015-7-1 00:23
杰可可 发表于 2015-6-30 14:09
复习了,谢楼主!

呵呵,不用客气
作者: 曹操001    时间: 2015-7-1 00:25
qingger 发表于 2015-6-30 15:20
很详细,认真,谢谢

基础班的都可以用的到的
作者: 冷雨敲窗被未温    时间: 2015-7-1 00:36
这个真心长啊
作者: 曹操001    时间: 2015-7-2 01:37
冷雨敲窗被未温 发表于 2015-7-1 00:36
这个真心长啊

恩恩,下次弄个压缩包的形式
作者: 曹操001    时间: 2015-7-2 01:41
zhangkai986745 发表于 2015-7-1 08:00
应该上传一个压缩包这样容易下载

恩恩,好,不过这样也好,这样方便阅读




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2