黑马程序员技术交流社区

标题: 个人总结帖。只开一贴。每日更新。求勿删。 [打印本页]

作者: Alexrl    时间: 2014-12-17 23:53
标题: 个人总结帖。只开一贴。每日更新。求勿删。
本来直接水经验的,但是觉得这样不好。
大神们勿喷,年少不懂事,整日LOL。所以大学学的东西基本=0。所以请体谅,就当我是把我理解的再默写一次吧。顺便水点黑马币。谢谢
总结:
2014.12.16日
今天是我来到黑马深圳基础班的第二天。和宿舍,班里的人相处融洽,班上的人都不认识。
因为今天是自习,所以将前两天的课都复习了一次。听了毕老师的for,while,do while,break,continue,嵌套循环。和一点函数。
A.for(表达式1;条件;表达式2){执行语句}
顺序:表达式1-条件-执行语句-表达式2。
B.while(条件){执行语句}    do{执行语句} while(条件)。
区别:后者无论条件是否满足,至少执行一次。
C.break, continue   
相同点:1后面的语句不会执行。2必须用在一个应有范围内。3.都能跳到指定应用范围。
不同:1.前者是直接跳出应用范围终止循环。1后者则是终止当前循环进入下一循环。
D.函数只听了1节课。修饰+返回类型(参数列表){执行语句;return;}碰到点小问题。都已解决。
作者: Alexrl    时间: 2014-12-17 23:55
手贱,日期写错。勿喷。
作者: Alexrl    时间: 2014-12-18 23:15
本帖最后由 Alexrl 于 2014-12-18 23:17 编辑

2014.12.18
昨天有两个BUG:for执行顺序。  初始化值-判断条件:1.为true -执行语句-控制语句。| 2.为false-中断。
                           函数结构:  修饰语句+返回类型+方法名(形式参数){执行语句;return;}
总结:
函数:Function 定义具有一定功能的小程序。也叫方法。
        1.参数:a.参数类型:数据类型。
                     b.形式参数:接受实际参数的变量。
                     c.实际参数:实际参与运算的变量。
        2.递归:我理解的是像一个顺序结构一直执行:写一个方法,方法里面判断先给一个条件。条件满足就终止。然后else算法。得出结果判断是否符合条件,              没符合继续执行else,每次的结果先存在一个内存,待满足if里面的条件就结束,结束之后再将之前内存里的东西想加。 好了,暂时就这么多了。说下水贴的事情吧。我觉得这个就算每天只回复帖子 一个月也能够25技术分的,所以我并不着急,昨天是刚注册,顺着水贴的心思,发的这个贴,现在我把这帖子当我的监督贴吧。
     欢迎各位吐槽,修改BUG。

作者: 曹震国    时间: 2014-12-18 23:22
楼主理解得好深刻。一起学习。
作者: wez924612    时间: 2014-12-18 23:53
楼主是谁?
作者: a371166028    时间: 2014-12-19 07:25
喷饭了,“与同学相处融洽,班上的同学都不认识。。”
作者: 孟子飞宏    时间: 2014-12-19 12:23
楼主,坚持不懈加油{:2_31:}
作者: 陈思伟    时间: 2014-12-19 17:34
不错哦,这样就动力多多了
作者: woaixuexi    时间: 2014-12-19 18:11
学习 了
作者: Alexrl    时间: 2014-12-19 23:11
2014.12.19
今天测试,想了下,很多知识都掌握不牢固,我想到的办法是多敲代码了
总结:
        重载:同名不同类型和个数。
        数组:存放同种类型数据的容器。
                A.方式:有4种: a.int[] arr=new int[长度];     b. int arr[]=new int[长度];    c. int[] arr={1,2,3,4,5};    d. int[] arr=new int[]{1,2,3,4,5};
        求最大值:
        public static int getMax(int[] arr)
        {
                //这是初始化索引;
                int max = 0;
                //int max = arr[0] 初始化值;
                for(int x=0;x<arr.length;x++)
                {
                        if (arr[x]>arr[max])
                                arr[max] = arr[x];
                }
                return arr[max];
        }         
          二维素组:存放的一维素组。
                格式:int [][] arr= new int[][];
                             
作者: Alexrl    时间: 2014-12-19 23:12
a371166028 发表于 2014-12-19 07:25
喷饭了,“与同学相处融洽,班上的同学都不认识。。”

前面是舍友。哈哈
作者: Alexrl    时间: 2014-12-20 23:40
/*
面向对象:
        基于面向过程。
        优点:能将复杂的事情简单化,更符合人的思维,将执行者变为指挥者。
        比如我开车与我请人帮我开车一样。
        类:
                A.成员变量:事物的属性。比如人类:特征之类。   
                    a.在类内方法外定义,不同于局部变量。
                        b.注意:当要定义的是属性时(全局使用),最好是用成员变量。
                A.成员方法:事物的行为。人类的行为(吃喝拉撒什么的)。
               
        对象:
                具体的某一事物(按上面的例子:某个人)。
        内存中:
                Car a = new car();
                先将car中的方法读取到方法区再在栈中读取main方法,堆中生成new,地址传给main方法。
                当main方法调用new中的方法时,main引用New(方法区关联的new),所以main能通过
                引用new关联到方法区的方法。

*/
class Rectangle1
{
        int length;
        int width;
        rectangle1(int length,int x){
         this.length=length;
         width=x;
        }
        public int mianJi()
        {
                return length*width;
        }
        public void zhouChang()
        {
                System.out.println("周长:"+(length+width)*2);
        }
}

//--------------------------------------
class Men
{
        String name;//姓名
        String country;//国家\
        String sex;//性别

        public void work()
        {
        System.out.println("工作");
        }
        public void niMing(rectangle a)
        {
                 a.zhouChang();
        }
}
class Test  //java文件名与main方法所在类同名就能执行
{
       
        public static void main(String[] arg)
{
                //调用
        Men s = new Men();
        s.name="James";//姓名
        s.sex="girl";//性别
        s.country="USA";//国家
        System.out.println("姓名:"+s.name+"国家:"+s.country+"性别:"+s.sex);
        s.work();//调用方法
//------------------------------------
        //计算面积
        //rectangle r = new rectangle();
        //r.length = 10;
        //r.width = 5;
        //System.out.println("面积为:"+r.mianJi());
        //匿名对象,计算周长。
        s.niMing(new Rectangle1(4,8));
}
}
作者: 一个小菜    时间: 2014-12-21 14:50
不错不错,学习学习
作者: woaixuexi    时间: 2014-12-21 15:36
写到博客里最好了
作者: Alexrl    时间: 2014-12-22 22:50
存手打好吧。打在EditPlus的。:@
作者: xinjian00    时间: 2014-12-23 09:38
a371166028 发表于 2014-12-19 07:25
喷饭了,“与同学相处融洽,班上的同学都不认识。。”

看到这句我也是醉了。

作者: a371166028    时间: 2014-12-23 15:17
xinjian00 发表于 2014-12-23 09:38
看到这句我也是醉了。

同醉....哈哈哈~~ 语文学不好,体育老师也笑死!
作者: 李家汉子初养成    时间: 2014-12-23 22:18
说好的每日一更呢!
作者: 低调的我    时间: 2014-12-23 22:39
感谢楼主的分享
作者: beyondskyqiu    时间: 2014-12-23 22:43
楼主加油吧。共同为了55期奋斗。
作者: Alexrl    时间: 2014-12-23 22:56
a371166028 发表于 2014-12-23 15:17
同醉....哈哈哈~~ 语文学不好,体育老师也笑死!

{:2_31:} 语文老师是体育老师教的,笑不出来。
作者: Alexrl    时间: 2014-12-24 01:59
2014.12.22-2014.12.23前两天偷懒了。
总结:
什么是面向对象
        是基于面向过程的。面向过程是基于函数的,强调的是实现对象的过程。而面向对象则基于对象,注重的是结果
        比如说,我面前有瓶饮料,我需要知道他的味道。
                        从过程来说,我需要打开,喝一下才知道味道。
                        而面向对象,看封面的说明就能知道味道了。
                        ---好吧,我也不知道我这样理解算不算对。就相当于消费者与商家。
        特点:更符合人的思维方式,将复杂的事情简单化,将人从执行者变为指挥者。
        类:成员变量(事物属性) 成员方法(事物的行为)
        对象:实例化的事物。
封装
        private 是封装的一种。提高代码的安全性。需要提供特定的方式才能调用。set和get,super-this
        (加载在栈内存)this:  this.成员变量 this.成员方法 this构造函数。
构造方法
        作用:给对象初始化。特点:没有具体的返回类型,没有具体的返回值,方法名必须与类名一致。
        注意:系统一般会默认给出一个无参的构造函数。如果你写了一个带参构造函数,那么请在前面手动添加一个无参的。
        构造方法重载:构造方法接受不同参数列表。 同方法重载。
继承
        当类a与类b有许多相互能通用的成员变量与方法时,那么就用继承。继承只能单继承而不能多继承,有多层继承。
        继承中构造方法的权限:子类大于或者等于父类。
        通过继承我们可以使用父类非私有的成员变量与方法。
        优点:提高了代码的复用性。让类与类有了关系。
        子类调用父类成员时用(加载在堆内存)super:  super.成员变量  super.成员方法  super构造函数。
static(静态):
        当被static定义时,只能被static方法调用。静态方法块随类加载而加载。生命周期最长。只加载一次。
重写
        子类与父类出现相同成员方法时(方法名 返回类型 参数都相同)。

内存图
          先将class Person加载到方法区的代码区,加载main()到栈。
          然后Static s,加载到main内存下。Son类发现extends加载Person1。
          加载Person1类Static到静态区再加载Son中Static。(加载时会先加载成员变量。)
          new 在堆开辟内存空间。Son 然后加载Son。默认super到父类。
          在Son中开辟小块内存给Person1。
          加载父类中的成员,完成后回到Student加载Student成员。

          顺序:加载成员变量父类中Static方法-子类中Static方法-父类中代码块-父类构造函数
                        -父类成员方法-子类代码块-子类构造函数-子类方法。

                今天实在是学晕了。先写这么多了。后面记不大清楚了。第二天补上了。
                有BUG希望各位补充。          


作者: Alexrl    时间: 2014-12-24 22:27
2012.12.24
static(补充)
                (静态代码块)只加载一次。
                被所有对象共享。
                可以通过类名.调用
重载(overload)
        在同类中,方法名相同,参数列表不同。
重写(override)
        只存在于继承关系中。
        子类与父类中,方法名,参数列表相同。无具体返回值,返回类型。
        重写时在子类中添加新执行体+super.方法名。就能同时保留子父类的执行体。
final
        相当于被定死刑一样。
        被final定义的变量:变为常量,不能被修改。
        被final定义的方法:不能被重写。
        被final定义的类:不能被继承。
单例模式
        私有化构造函数(private 构造函数)
        在类中创建一个本类对象
        提供一个方法能够访问。
        理解:
        设置一个static的构造函数,在加载时就存在于方法区,加载时创建一个静态对象(不会再次创建)
        当再创建新对象时直接使用这个静态对象,而不用重新再堆内存中重新创建一个对象
       
        今天主要还是复习。


作者: Alexrl    时间: 2014-12-25 22:50
我是按着课件那个来写的,各位圣诞节快乐!

总结:
1.多态的概念和前提
        概念:对象在不同时刻表现出不同的形态。
        前提:要有继承关系,要有重写,父类引用子类对象。
2.多态的成员特点
        成员变量没有重写,成员方法有重写。
3.多态的弊端和好处
        弊端:父类不能引用子类特有的方法,需要先将父类转型为子类。
        好处:可扩展性和可维护性。
                类型转换:向上转型(小转大),向下转型(大转小)。
4.抽象类,抽象方法和接口的由来
        抽象方法:只抽取方法名,而不确定方法体。
        抽象类:因为有了抽象方法,所以必须用absract修饰。
        接口:一个类中全是抽象方法时,就没必要定义成一个类。将其定义为一个接口。
5.抽象类的基本特点和成员特点(关键字:abstract)
        基本特点:
                        抽象类不能被实例化。
                        有抽象方法的类一定要用abstract修饰。
                        继承抽象类时,子类必须将父类中的抽象方法复写,或者子类也用abstract修饰。
        成员特点;
                        成员变量:
                                成员变量可以直接被子类继承使用。
                        成员方法:
                                抽象类中有抽象方法,也可以有非抽象方法。
                        构造方法:
                                抽象类构造方法是不能被实例化的,所以抽象类构造方法的存在只为让子类创建对象时初始化父类。
6.接口的基本特点和成员特点(关键字 interface  implements)
        基本特点:
        成员特点:
                        只有成员变量与成员方法(因为成员变量被final修饰所以不能被改变也可以说是常量)
                        成员变量默认被pulbic static final修饰。
                        成员方法默认被pulbic abstract 修饰。
7.类与接口的关系
                        接口通过类来实现(格式;class 方法名 implements 接口名)
                        当类实现接口时,必须重写接口中的方法。
8.接口与抽象类的区别
        区别:
                接口:能被多继承,也能被单继承。
                          成员变量:可以是变量,也可以是常量。有构造方法。成员方法可以使抽象的也可以是非抽象的。
                抽象类:只能被单继承或者多层继承。
                          成员变量只能是常量,没有构造方法,成员方法只能是抽象类。
        抽象类中定义的是共性的内容(必须让子类跟从父类),而接口则相当于对象的扩张(想用就用)

作者: Alexrl    时间: 2014-12-27 01:20
1.Java中包的概念
其实就是文件夹。区分相同名的类名。
2.带包的类的编译和运行
编译:javac -d . 类名.java  .表示当前路径
运行:java 带包路径.类名
3.不同包下类的使用和导包
使用:package 包名1.包名2.. 注意权限。建议都用public
导包:需要用import 包名1.包名2...类名
4.权限修饰符作用汇总
private   只能在当前类被访问
默认    当前类和同包下(没有关系的类或者子类)
protected  当前类,同包(没有关系的类或者子类),不同包(子类)
public  在当前类,同包,不同包情况下都能被访问
5.修饰符使用位置汇总
static  能够修饰   成员变量和方法,成员内种类。
private 能够修饰   成员变量和方法,成员内中类,构造方法。
final   能够修饰   成员变量,类,成员方。
public  能顾修饰   所有。
abstract 修饰    成员方法,类。
6.内部类的定义和分类
定义:存在于类中的类。
成员内部类:想要访问局部内部类需要先创建对象。
局部内部类:能访问外部类的所有成员。访问局部变量不许用final修饰
7.内部类的特点和使用
成员内部类:想要访问局部内部类需要先创建对象。
局部内部类:能访问外部类的所有成员。访问局部变量不许用final修饰

8.匿名内部类的用法和使用场景
没有名字的局部内部类。需要存在一个类或者接口。  方法中没有名,有继承或者实现接口的子类。
使用: 遇到方法的形式参数是接口或者抽象类时



作者: 找寻小龙猫    时间: 2014-12-27 02:27
加油 加油
作者: 菜鸟一号    时间: 2014-12-27 10:07
和宿舍,班里的人相处融洽,班上的人都不认识?这是什么情况?
作者: Alexrl    时间: 2014-12-28 02:07
2014.12.27
多线程笔记:
        要创建线程对象时先要明确要运行什么代码。
1.一个进程至少有一个线程,主线程从main方法开始执行。
2.继承thread类,
  复写run()方法:
  类型.start()开始执行。开启线程,调用Thread类中run()方法。
  class A extends Thread{
        public void run()
        {
        s.o.p();
        }
  }
  class C
  {
        public static void main(String[] args)
        {
        Thread t = new A();
        t.run();
        t.start();
        }
  }

3.多线程特性之一:随机性 谁抢到谁就执行,至于执行多长,看cpu咯。
4.Thread类用于描述线程 创建Thread对象==创建线程。
5.线程都有自己的名称:Thread-0 0开始,通过super自定义线程名称。
6.statuc thread currentThread():获取当前线程对象.
  getName():获取线程名称。 setName()或者构造函数:设置线程名称(意义:获取名称用于判断)
  局部变量在栈内存中都有自己独立的一份。

第二种创建线程方法:
        Runnable接口。
        步骤:
        1.定义类实现Runnable接口。
        2.覆盖Runnable接口中的run方法。
                将线程要运行的代码传入run()方法中。
        3.通过Thread类建立线程对象。
        4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
               
        5.调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。

实现方式和继承方式区别
        实现方式可以继承。定义线程时最好用实现。

两种方式区别:
        继承Thread:线程代码存放在Thread子类的run方法中。
        实现Runnable:代码存放在接口子类run中
       
class A implements Runnable{
        public void run()
        {
        s.o.p("");
        }
  }
  class C
  {
        public static void main(String[] args)
        {
        Thread t = new Thread(a);
        A a=new A();
        a.run();
        a.start();
        }
  }

.Object:一切类直接或间接的继承了Object类(顶层)。
        toString():返回对象的字符串表示形式。
        equals() :默认比较对象的内存地址
==:
        引用类型:比较对象的内存地址。
        基本类型:比较基本类型的值。
equals:
        引用类型:默认比较对象的内存地址。可以通过重写比较对象的规则

第二天将多线程看完,熟悉多线程并多敲毕老师给的的代码,尝试做几道面试题(做不来百度)

作者: 610757257    时间: 2014-12-28 23:03
我也想去基础班,但是深圳3月份才开~
作者: Alexrl    时间: 2014-12-28 23:42
2014.12.28今天出了点小状况,就没把视频看完,觉得自己面向对象的三大特性理解运用不熟,又去看前面的了。
只看了同步代码块。今天就不发笔记什么的了。



作者: Alexrl    时间: 2014-12-30 02:13
理解Scanner录入数据出现的问题及解决方法
        当只创建一个Scanner对象的时候,nextInt()方法录入过后如果录String类型会出现录入为空的现象(不是null)
        解决办法:新建一个Scanner对象。  或者在String类型录入后面再加一条String类型录入
掌握String类常见构造方法
理解String常量池
        当使用String a ="abc"时  他会先去String常量池找abc 没有会在常量池建立一个abc。
        如果存在abc会直接引用这个abc的地址
掌握String类的常见判断方法
掌握String类的常见获取方法
部分掌握String类的常见转换方法
部分掌握String类的其他常用方法
练习使用断点调试

今天因为开晚会要表演节目 表示String掌握的不是很牢固 代码只敲了一次 睡觉了。


作者: Alexrl    时间: 2014-12-31 01:48
好吧 今天晚上做作业突发奇想 ,然后就不能自己的写了个增查的名单录入DOS版。集合刚开始学,代码比较繁琐基础 勿喷- -。import java.util.Scanner;

  1. import java.util.Scanner;

  2. public class Students {
  3.         private static Scanner sc;
  4.         public static void main(String[] args) {
  5.                 //提示
  6.                 System.out.println("提示:输入read可以查看录入人数\n输入stop可以停止输入");
  7.                 int stemp = 0;
  8.                 //建立一个长度为5 的学生类数组 StringBuffer类型的。
  9.                 String[] student =new String[500];
  10.                 for (int i = 0;i<500;i++)
  11.                 {
  12.                         System.out.println("请输入(先名字再年龄): ");
  13.                         sc = new Scanner(System.in);
  14.                         //输入名字
  15.                         String name = sc.nextLine();
  16.                         //输入年龄.
  17.                         String age = sc.nextLine();
  18.                         if(name.equals("read"))
  19.                         {
  20.                                 bianLi(student,stemp);
  21.                         continue;
  22. /*                        else if(age.toString()=="stop")
  23.                                 bianLi(student);*/
  24.                         }
  25.                         else if(name.equals("stop"))
  26.                         {
  27.                                 bianLi(student,stemp);
  28.                                 System.out.println("感谢使用");
  29.                                 break;
  30.                         }
  31.                         else
  32.                         {
  33.                                 // 建立一个String类型存储变量,将名字和年龄存储进去。
  34.                                 String st =name+" "+age;
  35.                                 student[stemp] = st;
  36.                                 stemp++;
  37.                         }
  38.                 }

  39.         }
  40.         public static void bianLi(String[] arr,int stemp)
  41.         {
  42.                 for (int i = 0; i <stemp; i++) {
  43.        
  44.                                 System.out.println("学生名单:"+arr[i]);
  45.                 }
  46.         }
  47. }
复制代码

作者: Alexrl    时间: 2014-12-31 01:52
最重要的是我今晚我什么都没干 就弄这个弄了半天:@ 太浪费时间了
作者: l763631191    时间: 2014-12-31 03:38
呵呵 我就到此一游
作者: yedaiwang    时间: 2014-12-31 08:52
jiayou ba ha a
作者: zhiyi    时间: 2014-12-31 09:01
加油!我们在同一路上,我在努力自学
作者: 阿丹435    时间: 2014-12-31 11:00
真是个记笔记的好方式,楼主聪明哦
作者: 李增宽    时间: 2014-12-31 18:19
厉害
作者: 疯狂的学渣    时间: 2014-12-31 18:52
给力啊,大家一起努力吧。
作者: Bali    时间: 2014-12-31 20:03
继续加油!
作者: 我与Faker55开    时间: 2015-1-4 15:26
一分努力 一分收获 加油!
作者: 淡调调/ka    时间: 2015-1-4 15:27
每日来签到!共勉!
作者: dede风    时间: 2015-1-4 15:35
呵呵呵,楼主楼主啊
作者: Alexrl    时间: 2015-1-4 23:08
暂时不更新了。大家还是多敲代码好啊。前段时间一只记概念,概念也没记好,代码也么敲熟。
作者: 些许    时间: 2015-1-4 23:17
路过  加油




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