黑马程序员技术交流社区

标题: 缺分的用心跟个贴,送福利中 [打印本页]

作者: 郑飞    时间: 2014-11-22 23:08
标题: 缺分的用心跟个贴,送福利中
本帖最后由 郑飞 于 2014-11-25 15:10 编辑

截止 11月24号23:59  送黑马币5-10分
很想送大家分 看了论坛的贴子实在送不出去多少 所以发帖送福利 希望能帮到大家 跟帖很简单
1.毕老师基础视频和张老师高薪视频中 自己选一天的视频 把重点或者难点或者有疑惑的地方 写到帖子上 就行 记得注明哪个视频 和第几天
2.把自己以往被加分的 帖子名称+":"+地址 作为跟帖内容
其实目的还有一个 希望跟帖的朋友用点心 让看贴的朋友不说学到多少东西 至少也能复习到一些知识点吧
符合以上任一点 就送分 每人限制2贴
别一大篇搬过来了 没多大意义 大篇笔记到处都是 你发一个知识点或者遇到的一个小问题我给你加点分 挺好


很感谢下面赞助的朋友 其实不用那么多 我怕送完福利 我的分倒涨上去了:L

注:就算打上"顶一个" "赞一个" 都比100%的 Ctrl+C Ctrl+V来的强  这个太不合适吧





作者: inception    时间: 2014-11-23 00:25
点个赞,,
作者: cbb    时间: 2014-11-23 01:21
15-16天,看到一段代码 忽然就晕那里了!然后自己琢磨~~不知道对不对~
Comparable 和Comparator的区别

它们都是用来给集合中的元素进行排序的。
它们都是接口,需要子类去实现。复写其方法。
Comparable是集合内部定义的方法实现排序的。复写的方法是compareTo()方法。

Comparator是一个专用比较器,是要定义在外部的排序接口。
当对象不支持比较或者可以比较但是不满足你的要求时,就可以用子类实现Comparator接口,复写compare()方法!

当Comparator复写了 compare()方法后,里面比较还是compareTo()。
我查了一下API也没看明白~~
实在是不明白既然这两个方法都是比较的,为什么自定义compare()方法了 还为什么在这个方法里面使用compareTo()方法呢? 这不是多余吗?

是因为数据类型的原因吗?还是啥



作者: 郑飞    时间: 2014-11-23 01:29
本帖最后由 郑飞 于 2014-11-23 09:21 编辑
cbb 发表于 2014-11-23 01:21
15-16天,看到一段代码 忽然就晕那里了!然后自己琢磨~~不知道对不对~
Comparable 和Comparator的区别

好样的兄弟 从你的回帖看到这个帖子还是有点意义的 太晚了明天来回复你;P
实现Comparator 中的compare方法 实际上和里面用不用compareTo方法没什么联系 String和Integer已经复写了这个方法直接拿来用仅此而已
这就有点像你给Student复写equals方法 里面可能用到name.equals(p.name)一样 只要功能能实现 甚至也可以用compare或者compareTo来做



作者: cbb    时间: 2014-11-23 01:30
郑飞 发表于 2014-11-23 01:29
好样的兄弟 从你的回帖看到这个帖子还是有点意义的 太晚了明天来回复你 ...

嗯,行!飞哥早点休息吧:lol
作者: 冥夜    时间: 2014-11-23 01:38
cbb 发表于 2014-11-23 01:21
15-16天,看到一段代码 忽然就晕那里了!然后自己琢磨~~不知道对不对~
Comparable 和Comparator的区别

你没有发现么?compare方法是传进两个变量,是用比较器来比较两个对象s1与s2。而compareTo是对象自身去和其他对象比较,只需要传入一个对象。
作者: 海阔天空ZJ    时间: 2014-11-23 08:15
有积分的必须顶,等遇到特别难理解的就来顶
作者: 记忆深处里    时间: 2014-11-23 08:19
急缺技术分 快面试了  不够
作者: Eagle    时间: 2014-11-23 08:19
可以作为收集问题的帖子,哈哈
作者: DamonZh    时间: 2014-11-23 08:45
cbb 发表于 2014-11-23 01:21
15-16天,看到一段代码 忽然就晕那里了!然后自己琢磨~~不知道对不对~
Comparable 和Comparator的区别

这里仍然使用compareTo就是举个例子而已,因为字符串已经实现了它,就没必要自定义怎么比较字符串啦,使用它比较方便,你也可以自定义自己的比较方式。如果compareTo和compare两个方法都复写了,compareTo方法的比较就不会被调用,优先调用compare方法
作者: Eagle    时间: 2014-11-23 09:00
正则表达式中的一个小问题:
                String regex = "[.]";
                和
                String regex = "\\.";

两种方式有什么区别?会造成使用上的不便吗?
两种方式都是将点作为正则,有什么异同呢?


作者: 菜鸟一号    时间: 2014-11-23 09:23
高薪最后面的代理全部搞不懂的说;P
作者: Eagle    时间: 2014-11-23 11:02
飞哥昨天遇到的问题??。飞哥,你不能坑啊,[.]和\\.有什么不同啊??飞哥大神给俺解释解释呗。呵呵
作者: 郑飞    时间: 2014-11-23 11:22
本帖最后由 郑飞 于 2014-11-23 12:50 编辑
Eagle 发表于 2014-11-23 11:02
飞哥昨天遇到的问题??。飞哥,你不能坑啊,[.]和\\.有什么不同啊??飞哥大神给俺解释解释呗。呵呵 ...

........ 我以为你知道解决了 只是来发题目的
\\.是匹配"."这个字符 [.]应该是代表任意字符
做小数保留或者去小数部分的时候可能会用到
//以上解释是错的,请看楼下下...解释;

作者: 夜海    时间: 2014-11-23 11:26
还没学到。
作者: cbb    时间: 2014-11-23 12:00
飞哥遇到一个很郁闷的事儿,又来麻烦你了。
  1. import java.util.*;
  2. class CollectionsDemo
  3. {
  4. public static void main(String[] args)
  5. {
  6. sortDemo();
  7. }
  8. public static void sortDemo()
  9. {
  10. List<String> list=new ArrayList<String>();
  11. list.add("abcd");
  12. list.add("aaa");
  13. list.add("z");
  14. list.add("kkkkk");
  15. list.add("qq");

  16. sop(list);
  17. Collections.sort(list);
  18. sop(list);
  19. }
  20. public static void sop(Object obj)
  21. {
  22. System.out.println(obj);
  23. }
  24. }
复制代码


使用Eclipse完美运行。但是用控制台CMD就会报错,编译能通过,但是运行会异常Error
如果类名CollectionsDemo 不加Collections 的s的话 就可以编译通过运行也通过~~~~

这是咋回事儿啊

作者: Eagle    时间: 2014-11-23 12:10
郑飞 发表于 2014-11-23 11:22
........ 我以为你知道解决了 只是来发题目的
\\.是匹配"."这个字符 [.]应该是代表任意字符
做小数保留 ...

飞哥,这个不对啊,
                String mail = "abd123@s-ina.com.cn";

                String regex = "\\w+@[a-zA-Z0-9-]+([.][a-zA-Z-]+){1,3}";//较为精确的匹配。
上面能通过。下面这个不能。。。飞哥试试?
                String mail = "abd123@s-ina com.cn";

我的理解是[.]和\\.功能一样,但是表现形式不一样,
作者: 西同学    时间: 2014-11-23 12:13
        (1)字符串:多个字符组成的一串数据。
        (2)构造方法:
                A:String s = new String();
                B:String s = new String(byte[] bys);
                C:String s = new String(byte[] bys,int index,int length);
                D:String s = new String(char[] chs);
                E:String s = new String(char[] chs,int index,int length);
                F:String s = new String(String str);
                G:String s = "hello";

                A:字符串一旦被赋值,就不能改变。
                        注意:字符串的值不能改变,没有说引用变量不能改变。
                B:面试题:
                        a:String s = new String("hello")和String s = "hello"的区别。
                        b:请写出结果:
                                String s1 = new String("hello");
                                String s2 = new String("hello");
                                System.out.println(s1==s2);
                                System.out.println(s1.equals(s2));

                                String s3 = new String("hello");
                                String s4 = "hello";
                                System.out.println(s3==s4);
                                System.out.println(s3.equals(s4));

                                String s5 = "hello";
                                String s6 = "hello";
                                System.out.println(s5==s6);
                                System.out.println(s5.equals(s6));


                A:判断功能
                        boolean equals(Object obj)

                        boolean equalsIgnoreCase(String str)
                        boolean contains(String str)
                        boolean startsWith(String str)
                        boolean endsWith(String str)
                        boolean isEmpty()
                B:获取功能
                        int length()
                        char charAt(int index)
                        int indexOf(int ch)
                        int indexOf(String str)
                        int indexOf(int ch,int fromIndex)
                        int indexOf(String str,int fromIndex)
                        String substring(int start)
                        String substring(int start,int end)
                C:转换功能
                        byte[] getBytes()
                        char[] toCharArray()
                        static String copyValueOf(char[] chs)
                        static String valueOf(char[] chs)
                        static String valueOf(int i)
                        String toLowerCase()
                        String toUpperCase()
                        String concat(String str)

                D:其他功能
                        a:替换功能
                                String replace(char oldChar,char newChar)
                                String replace(String oldString,String newString)

                        b:切割功能
                                String[] split(String regex)
                       
                        c:去除两端空格功能
                                String trim()
                       
                        d:字典顺序比较功能
                                int compareTo(String str)
                                int compareToIgnoreCase(String str)
作者: 西同学    时间: 2014-11-23 12:14
飞哥 顶你
作者: 地瓜君    时间: 2014-11-23 12:16
分享一个关于StringBuilder的错误代码:http://bbs.itheima.com/thread-153475-1-1.html
最近在努力凑技术分,这里先谢飞哥啦。
作者: Eagle    时间: 2014-11-23 12:18
cbb 发表于 2014-11-23 12:00
飞哥遇到一个很郁闷的事儿,又来麻烦你了。

??表示运行无异常。。。
。。。哥们你代码我复制粘贴运行的。完全没有问题的说额。。

CollectionsDemo.JPG (97.78 KB, 下载次数: 0)

CollectionsDemo.JPG

作者: cbb    时间: 2014-11-23 12:24
Eagle 发表于 2014-11-23 12:18
??表示运行无异常。。。
。。。哥们你代码我复制粘贴运行的。完全没有问题的说额。。
...

我也赶脚挺蛋疼的 就出了个Error,
作者: Eagle    时间: 2014-11-23 12:25
cbb 发表于 2014-11-23 12:24
我也赶脚挺蛋疼的 就出了个Error,

哥们代码和界面一起截个图过来俺帮你看看。;P
作者: 郑飞    时间: 2014-11-23 12:48
Eagle 发表于 2014-11-23 12:10
飞哥,这个不对啊,
                String mail = "abd123@s-ina.com.cn";

果不其然:L 是我记错了 毕老师视频中用到一次(.)这个才是任意字符 刚刚我把原来代码中的\\.改成[.]确实没错 :victory:
作者: Eagle    时间: 2014-11-23 12:49
郑飞 发表于 2014-11-23 12:48
果不其然 是我记错了 毕老师视频中用到一次(.)这个才是任意字符 刚刚我把原来代码中的\\.改成[.]确实没 ...

0.0:L飞哥你坑我:curse:
作者: Eagle    时间: 2014-11-23 12:51
郑飞 发表于 2014-11-23 12:48
果不其然 是我记错了 毕老师视频中用到一次(.)这个才是任意字符 刚刚我把原来代码中的\\.改成[.]确实没 ...

飞哥,咱的帖子你就不用给分了, 分就给那些需要的人吧。嘿嘿,咱分够了,只为技术交流而来
作者: cbb    时间: 2014-11-23 12:53
Eagle 发表于 2014-11-23 12:25
哥们代码和界面一起截个图过来俺帮你看看。

:funk:我去 有好了~~~~无奈 我还以为我配置环境出错了~~
作者: 244611    时间: 2014-11-23 12:59
String:static final,""编译时创建存储常量池,""+""常量池(常量已存在则不创建)
        new运行时创建存储堆内存,""+ss堆内存(new string("abc")创建2个对象)
        private final char value[]实现字符串存储(不可变类,内容改变对象改变)
  方法:String();空字符串(不等于null,null不占内存)
        equals,length,indexOf,replace,substring,toCharArray
  StringBuffer,StringBuilder:对象是可变的,效率高
        与字符串转换StringtoString(),StringBuffer(str)
        方法:对象创建,append,insert,delete,deleteChar

作者: sin    时间: 2014-11-23 13:14
求给我留个52期的名额》》 同学们!
作者: lijingbo    时间: 2014-11-23 13:48
好多啊,凑凑热闹~

作者: 天天小志    时间: 2014-11-23 14:09
  1. interface Inter
  2. {
  3.         public abstract void show();
  4.         public abstract void show2();
  5. }

  6. class Outer
  7. {
  8.         public void method()
  9.         {

  10.                 new Inter()
  11.                 {
  12.                         public void show()
  13.                         {
  14.                                 System.out.println("show");
  15.                         }
  16.                 };
  17.                 new Inter()
  18.                 {
  19.                         public void show()
  20.                         {
  21.                                 System.out.println("show");
  22.                         }

  23.                         public void show2()
  24.                         {
  25.                                 System.out.println("show2");
  26.                         }
  27.                 }.show();

  28.                 new Inter()
  29.                 {
  30.                         public void show()
  31.                         {
  32.                                 System.out.println("show");
  33.                         }

  34.                         public void show2()
  35.                         {
  36.                                 System.out.println("show2");
  37.                         }
  38.                 }.show2();
复制代码

这个匿名内部类格式总是看不懂,什么时候才用的到呢?怎么用啊?
在第9天视频中
作者: 244611    时间: 2014-11-23 14:12
244611 发表于 2014-11-23 12:59
String:static final,""编译时创建存储常量池,""+""常量池(常量已存在则不创建)
        new运行时创建存储堆内 ...

恩恩,楼主好聪明,这就是我的笔记,,,主要是为了简洁
作者: william_J    时间: 2014-11-23 14:15
本帖最后由 william_J 于 2014-11-23 14:17 编辑

毕老师的
谢谢飞哥一直对我们这些新人的支持
学弟们心里一直会记着你的好的!:lol
第八天 多态
2014.10.24 java_study 晴

100_多态-转型

1.解决子类自己方法的调用。

animal a = new Cat();
类型提升,向上转型。

向下转型:
如果想使用子类特有的方法,比如猫抓老鼠
可以强制将父类的引用转成子类类型。

Cat c = (Cat)a;
c.catchMouse();

2.解决如果传进的是一个狗的对象,需要看家,但是里面还是做的是强制转换为猫的代码
怎么办。
function(new Dog);

public static void function(Animal a)
{
        a.eat();
        Cat c = (Cat)a;
        c.catchMouse();
}

可以进行if判断。

关键字:instanceof 判断a是不是Cat的类型。

if(a instanceof Cat)

问题:如果后期再加一个子类的话,比如猪,那么还要进行判断。扩展性比较差了,待解决。

101_多态-示例

也是多态的一个扩展应用。

1.类:基础班
学习,睡觉。

类:高级班
学习,睡觉。

将俩个类得共性进行抽取。

主函数调用其方法,应用多态。

102_多态中成员的特点

使用多态需要注意:
1.在编译时期,看引用型变量所属的类中是否有调用的方法。
2.在运行时期,看对象所属的类中是否有调用的方法。
总结:成员函数在多态调用的时候,编译看左边,运行看右边。

面试问题:1.在多态中,成员变量的特点:无论是编译还是运行的时候,都看左边。
           2.在多态中,静态成员的特性,无论编译还是运行都参考左边。

103_多态的主板示例

1.示例:需求:
电脑运行基于主板
类:主板
方法:运行方法。
后加:使用网卡的方法
主函数调用主板方法

问题来了:太死板,毫无扩展性。

类:网卡
方法:开启,关闭。

主要思想:接口的出现增加了功能扩展
          多态的应用提高了程序的扩展性:声卡,网卡,后期要添加dug卡都可以。

接口的实现和多态的应用完美结合。

104_多态的扩展示例

1.示例:需求:数据库的操作
数据是:用户信息。
(1).连接数据库 JDBC Hibernate:框架连接,封装了。
(2).操作数据库
crud:create read update delete
(3).关闭数据库连接

和上一个例子思想相同。

105_Object类-equals()

比较方法,比较子类特有的属性:用到复写,instanceof关键字,向下转型。当然有多态!

106_Object类-ToString方法 返回字符串。复写才有意义。


















作者: william_J    时间: 2014-11-23 14:19
毕老师
补发一贴
第七天 继承
NUM 10.11study first:

1.继承:(1).几个类中有共同的属性,可以提取这些属性到一个类中,然后其他类继承即可             。可以提高复用性。
        (2).让类与类之间产生了关系,有了这个关系,才有了多肽的特征。
注意:千万不要为了简化代码,任意继承,必须有所属关系和联系的时候,才会发生继承。

2.java只支持单继承,从严格意义上讲不允许多继承,如果多继承,因为会有安全隐患。但是java对于多继承这种机制用了多实现的机制实现。另外java接受多层继承,祖孙三代。

3.super关键字的使用。

4.问题:既然可以理解为super和this指向同一个对象,那么用super.name可以获得子类的成员变量吗?

5.函数的另一个特点:覆盖。称为重写。但是子类权限必须大于父类。

6.构造函数的复写,如果不给父类添加空参数的构造函数的时候,系统会默认的给父类添加一个,所以不会影响子类构造函数的加载。如果父类的构造函数一定是带参数的,那么需要给子类手动添加super(x);问:为什么子类一定要访问父类的构造函数。

7.final的关键字 1.作为一个修饰符,可以修饰类,函数,变量。
                2.被final修饰的类不可以被继承。

8.abstract的关键字 当多个类中出现相同功能,但主体不同,这是可以向上抽取,这时,只抽取功能定义,不抽取主体。
作用:强迫子类去做一些功能。
注意:抽象类和一般类没有太大的不同,该怎么样描述事物,就怎么描述事物,只不过该事物出现了一些需要子类必须做的东西,而且主体不同,需要建立抽象类而已,表现形式就是一个看不懂的方法,只有名字,没有主体。要是子类共有的,想往常一样正常编写函数,有子类继承即可。
<1>抽象类不可以实例化。
<2>抽象类比一般只多了几个抽象函数。
<3>抽象类中也可以不定意抽象方法,这样做仅仅是不让该类建立对象。另外直接私有构造函数的话也是可以的。问:二者的区别。有时候就需要这个功能。

9.模板方法设计模式。

10.接口:初期理解,可以认为是一个特殊的抽象类。

11.可以实现多实现,implements。

NUM 10.11study second:

1.对象的多态:事物存在的多种体现形态。例如:人:男人,女人。

<1>多态的体现
父类的引用指向了自己的子类对象
解释:创建一个动物的父类,其中包括吃饭,运动的方法和自身有眼睛的属性。
      创建一个猫的类继承动物,有自己的抓老鼠的方法。
      Anmao p=new Cat;
父类的引用接受了自己的子类对象

<2>多态的前提
必须是类与类之间有关系,要不继承,要不实现,通常存在覆盖
缺点:只能引用父类的方法等待子类补充内容。但是要侧重扩展性。


<3>多态的好处
大大的提高了程序的扩展性

<4>多态的应用

<5>多态的出现在代码中的特点。(多态使用的注意事项)
在多态中成员函数的特点
在编译时期:
在运行时期:
在成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:无论什么编译还是运行,都参考的是左边。
在静态成员调用多态时,无论什么编译还是运行,都参考的是左边。

2.向上转型,向下转型。

3.主板的应用

4.object类
作者: william_J    时间: 2014-11-23 14:30
william_J 发表于 2014-11-23 14:19
毕老师
补发一贴
第七天 继承

以后知道了,哦了,谢谢飞哥了!!!
作者: superjiejie    时间: 2014-11-23 14:35
飞哥 在web基础中 我看的是崔希凡老师的《JavaWeb视频》 但是在day10那里 崔老师
说在request的请求包含 还有请求转发的通过域对象 的setAttribute  getAttribute 可以实现属性的传递  ,
但是在重定向中 不可以实现属性的传递。。
但是通过SerlvetContext的setAttribute   getAttribute  能实现哇 。。。有点蒙圈了
作者: superjiejie    时间: 2014-11-23 15:11
superjiejie 发表于 2014-11-23 14:35
飞哥 在web基础中 我看的是崔希凡老师的《JavaWeb视频》 但是在day10那里 崔老师
说在request的请求包含 还 ...

恩 谢谢飞哥  
作者: 阿萨德大圣    时间: 2014-11-23 15:40
送您6杀
作者: 桃华月禅    时间: 2014-11-23 15:40
对象的创建到消亡的全部过程(Person p = new Person();)
<1>.编译java文档,把class文件加载进内存
<2>.方法和静态成员存放在方法区中
<3>.静态代码块初始化(如果有的话)
<4>.在堆内存开辟空间,分配地址值
<5>.在堆内存中建立对象,并且对其属性进行默认初始化
<6>.对属性进行显示初始化
<7>.构造代码块初始化
<8>.特定构造函数初始化
<9>.内存地址值分配给类类型变量
<10>.对象被垃圾回收掉
<11>.方法和静态成员从方法区中随着类的消亡而消亡

正好默写一下这个...视频貌似在毕老师面向对象中的第一天内容中

作者: 阿萨德大圣    时间: 2014-11-23 15:45
黑马毕老师视频16-18api部分什么时候重写equals,toString,什么时候可以直接使用呢。没弄清楚
作者: 逗比程序员    时间: 2014-11-23 16:10
.比较两个对象是否相等
“==”:比较的是引用值是否相等(堆当中的对象的地址是否相同)
“equals()”:Object根上的类,equals比较就是“==”,但是
我们认为的相等,一般指的属性,所以equals跟比较有关的时候,必须重写-               问题一:“==”和“equals()”的具体区别还是没有具体弄明白,还有重写“equals”的为什么不是很清楚,哪些情况下用重写???希望解答
作者: 逗比程序员    时间: 2014-11-23 16:12
飞哥,严重缺分中,,,,,,:'(
作者: 郑飞    时间: 2014-11-23 16:26
阿萨德大圣 发表于 2014-11-23 15:45
黑马毕老师视频16-18api部分什么时候重写equals,toString,什么时候可以直接使用呢。没弄清楚 ...

个人的理解 拿toString举例
这就看你想要通过这两个方法获得什么样的功能了 之所以复写 是因为我们不满意当前的实现
例如:System.out.println(new Student().toString());打印的是:Student@18a992f
而我们要获得其中属性(名字或者ID等等) 那就要复写了
所以判断是否复写 或者什么时候复写 前提1:知道当前的实现方式并不满意 2:有自己想要的实现方式 那就复写吧
equals道理也一样 明确当前对象或类equals的比较方式 不满意就重写
作者: 阿萨德大圣    时间: 2014-11-23 16:35
郑飞 发表于 2014-11-23 16:26
个人的理解 拿toString举例
这就看你想要通过这两个方法获得什么样的功能了 之所以复写 是因为我们不满 ...

谢谢飞哥,讲的太好了
作者: staycolorful    时间: 2014-11-23 16:47
java 基础第二十三天,Tcp与Udp区别:
UDP
1面向无连接,对方不在包就丢掉。
2不可靠协议
3速度快
4数据和源,目的封装成数据包,且限制在64k
TCP
1面向连接,形成网络传输通道
2可靠协议,通过三次握手完成连接
3速度慢,效率低
4不封包 在连接中进行大量数据传输
作者: staycolorful    时间: 2014-11-23 17:03
java基础 正则表达式应用
1 去掉重复的字符
  1.       String str="sssddd";
  2.                 str=str.replaceAll("(.)\\1+", "$1");
  3.                 System.out.println(str);
复制代码

2 校验邮箱地址
  1.      String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";//较为精确的匹配。
  2.                reg = "\\w+@\\w+(\\.\\w+)+";//相对不太精确的匹配。
复制代码

3 IP 地址排序

  1.                String ip = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";
  2.                 ip = ip.replaceAll("(\\d+)","00$1");
  3.                 System.out.println(ip);
  4.                 ip = ip.replaceAll("0*(\\d{3})","$1");
  5.                 System.out.println(ip);
  6.                 String[] arr = ip.split(" ");
  7.                 TreeSet<String> ts = new TreeSet<String>();
  8.                 for(String s : arr)
  9.                 {
  10.                         ts.add(s);
  11.                 }
  12.                 for(String s : ts)
  13.                 {
  14.                         System.out.println(s.replaceAll("0*(\\d+)","$1"));
  15.                 }
复制代码


作者: Evred    时间: 2014-11-23 17:06
来学习了!
作者: 丑小子799    时间: 2014-11-23 18:37
本帖最后由 丑小子799 于 2014-11-23 18:39 编辑

public class TestTcp {
        
        @Test
        public void client(){
                Socket socket=null;
                OutputStream os=null;
                try {
                        socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
                        os = socket.getOutputStream();
                        os.write("我是客户端".getBytes());
//                        socket.shutdownOutput();
//                        socket.shutdownInput();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }finally{
                        if(os!=null){
                                try {
                                        os.close();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                        if(socket!=null){
                                try {
                                        socket.close();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                }
//                os.close();
//                socket.close();
        }
        @Test
        public void server() throws Exception{
                //定义一个serversocket对象,指明接收的端口号
                ServerSocket ss=new ServerSocket(9090);
                //通过accep()方法获得一个socket对象
                Socket socket=ss.accept();
                //获取输入流
                InputStream is=socket.getInputStream();
                byte[] bytes=new byte[4];
                int len;
                while((len=is.read(bytes))!=-1){
                        String str=new String(bytes, 0, len);
                        System.out.print(str);
                }
                is.close();
                socket.close();
                ss.close();
        }
}
想问问大家,socket.shutdownOutput();
        socket.shutdownInput();
这两句话什么时候用,我有的时候用还会报错。我技术分还差一分就入学考试了,给6个黑马币吧

作者: NCry    时间: 2014-11-23 19:20
cbb 发表于 2014-11-23 12:00
飞哥遇到一个很郁闷的事儿,又来麻烦你了。

你的代码完美运行,每一点错误。
作者: Rain2692    时间: 2014-11-23 20:00
顶一个!!!
作者: chen_32768    时间: 2014-11-23 21:22
求一个可以在条件执行语句里跳到制定位置的方法
作者: 聪明叉    时间: 2014-11-23 21:30
不缺分,为楼主的行为赞一个:handshake
作者: 郑飞    时间: 2014-11-23 21:39
chen_32768 发表于 2014-11-23 21:22
求一个可以在条件执行语句里跳到制定位置的方法

在网上简单搜索了下得到的:(没找到有类似goto功能的)
Java允许在语句前加上标签前缀,构成标签(label)语句。其一般格式为:
标识符:语句
其中标识符应是Java语言中合法的标识符;语句可以是任意Java语句,包括简单语句、复合语句(语句块)、控制转移语句、空语句。但由于在Java中,标签语句仅能与break和continue语句配合使用,所以给简单语句或空语句加标签没有意义。
作者: 郑泽霖    时间: 2014-11-23 21:46
java初学者笔记4——Java静态成员:http://bbs.itheima.com/thread-152952-1-1.html

作者: 郑泽霖    时间: 2014-11-23 21:48
java初学者学习笔记3——运算符:http://bbs.itheima.com/thread-152777-1-1.html

作者: 郑泽霖    时间: 2014-11-23 21:50
飞哥顶你!飞哥万岁万岁万万岁!
作者: 专职黑马100年    时间: 2014-11-23 23:01
多态的具体应用,感觉很模糊,除了大型程序里面需要,感觉多态在基础上暂时没太大用处。平时练习都用不上
作者: 专职黑马100年    时间: 2014-11-23 23:03
多态的具体应用,感觉很模糊,除了大型程序里面需要,感觉多态在基础上暂时没太大用处。平时练习都用不上
作者: 下一站    时间: 2014-11-23 23:04
学习到视频第九天的匿名内类时,大致都能懂,视频中介绍内部类的必要条件中有一条:
     内部类必须是继承一个类或者实现接口
interface Inter
{
        void method();
}
class InnerClassTest
{
        public static void main(String[] args)
        {
                show(new Inter()
                {
                        public void method()
                        {
                                System.out.println("method show run");
                        }
                });
        }

        public static void show(Inter in)
        {
                in.method();
        }
}

但在上面这个匿名内部类种并没有看到 ” extends“或者” implements “,
能帮忙解释一下吗?
作者: 专职黑马100年    时间: 2014-11-23 23:05
String 类初始化就不能改变,求其原因
作者: 下一站    时间: 2014-11-23 23:05
是匿名内部类。。
作者: 詹岳伟    时间: 2014-11-23 23:30
匿名内部类
作者: 郑飞    时间: 2014-11-23 23:37
专职黑马100年 发表于 2014-11-23 23:03
多态的具体应用,感觉很模糊,除了大型程序里面需要,感觉多态在基础上暂时没太大用处。平时练习都用不上 ...

至少要能看懂吧 代码看多了敲多了会好些 基础部分都是学些原理 工具类 一些简单的东西 用的少很正常 基础看完后 看些简单项目 设计模式什么的 就没什么问题了 可以做些扩展
作者: 王小忠    时间: 2014-11-23 23:48
张老师高薪视频里面讲到的枚举,其中枚举中可以有抽象方法, 而且枚举中的构造器是私有的,那我为什么不可以通过暴力反射的方式拿到枚举的构造器呢?
作者: 郑飞    时间: 2014-11-23 23:59
王小忠 发表于 2014-11-23 23:48
张老师高薪视频里面讲到的枚举,其中枚举中可以有抽象方法, 而且枚举中的构造器是私有的,那我为什么不可以通 ...

我也尝试做过 实现不了 后来我动手上网搜了 由于是概念的东西 而且用的少 没记住原理 只记住结果 类似问题完全可以上网搜 应该属于经典问题了 很容易有结果
作者: 王小忠    时间: 2014-11-24 00:03
嗯嗯~~好的
作者: yfdsn    时间: 2014-11-24 09:26
Comparable是一个对象本身就支持自比较所需要实现的接口(如String,Integer),而Comparator是一个专用比较器,当对象不支持自我比较时(如自定义的对象),这时就可以写一个比较器来完成两个对象之间的比较
作者: chudaming213    时间: 2014-11-24 09:39
浮点数是怎么存储的?第二天常量与变量

作者: wljusa    时间: 2014-11-24 10:21
毕老师day12,多线程操作看的很不明白
作者: 雨过山更翠    时间: 2014-11-24 10:40
我来看看
作者: yfdsn    时间: 2014-11-24 11:30
确实有点复杂,多看看就好了
作者: mmppp    时间: 2014-11-24 12:00
天天小志 发表于 2014-11-23 14:09
这个匿名内部类格式总是看不懂,什么时候才用的到呢?怎么用啊?
在第9天视频中 ...

说一下自己的看法,也是新手,一起交流下。

你的一个类里面的方法,想要调用抽象类或者接口里面的方法,但是无法建立对他们的引用,这时就要使用匿名内部类,先new一个他们的对象,但是他们有抽象方法,你就把抽象方法重写,把里面的内容补充完整就可以了,这就是格式,我觉得是这样的。
我自己觉得的过程       new Inter();   先new一个对象
                               new Inter(      吧里面的抽象函数内容补充上
                                                public void show()
                                                                   {
                                                                      函数内容
                                                                    }
                                             );                   所以后面有个分号。
作者: 天天小志    时间: 2014-11-24 22:39
mmppp 发表于 2014-11-24 12:00
说一下自己的看法,也是新手,一起交流下。

你的一个类里面的方法,想要调用抽象类或者接口里面的方法, ...

好,多谢你的回答,我在看看




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