黑马程序员_基础学习笔记(16)

来源:互联网 发布:java 并发 视频 编辑:程序博客网 时间:2024/05/16 14:31

黑马程序员---毕向东---第二十三天



  网络通讯要素:IP地址,端口号,传输协议。

  端口号:数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识。而这些数字----叫做端口。即逻辑端口

  TCP/IP: 定义通信规则,这个通讯规则称为协议,国际组织定义了通信协议TCP/IP

   UDP

    将数据及源和目的封装成数据包中,不需要建立连接

    每个数据包的大小限制在64k内

    因为无线连接,是不可靠协议

    不需要建立连接,速度快

 TCP

    建立连接,形成传输数据的通道

    在连接中进行大数据量传输

    通过三次握手完成连接,是可靠协议

    必须建立连接,效率会稍低

Socket 插槽

    Socket就是为网络服务提供的一种机制

    通信两端都是Socket

    网络通信其实就是Socket间的通信

    数据在两个Socket间通过IO传输

 

   UDP传输

    1 DatagramSocket与DatagramPacket

    2 建立发送端,接受端

    3 建立数据包

    4 调用Socket的发送接受方法

    5 关闭Socket

发送端与接受端是两个独立的运行程序

DatagramSocket 把DatagramPacket对象发送出去或者接收进来

DatagramPacket  把数据信息(IP,端口,数据等)封装成对象,

TCP传输

客户端Socket      服务端ServerSocket

建立客户端  和服务端

建立连接后,通过Socket中的IO流进行数据传输

关闭Socket 同样,客户端与服务端是两个独立的应用程序


黑马程序员---比向东---第二十五天

正则表达式:符合一定规则的表达式

    作用:用于专门操作字符串

    特点:用于一些特定的符号来表示一些代码操作,这样就简化书写。

          所以学习正则表达式,就是在学习一些特殊符号的使用。

    好处:可以简化对字符串的复杂操作

    弊端:符号定义越多,正则越长,阅读性越差。

具体操作功能

1 匹配:booleanmatches(regex);用规则蒲培整个字符串,只要有一处不符合规则,就匹配结束。

public static void checkQQ2()

        {

            String qq ="21312321123";

            String regex ="[1-9][0-9]{4,14}"; 5-15位的

           5-15位的第一个数1-9 剩余13个数0-9之间

            boolean flag =qq.matches(regex);

            if(flag)

                System.out.println(qq+"....isok");

            else

                System.out.println(qq+".....isfailed");

        }

 

2 切割:String split();  得到符合规则以外的字符

    //splitDemo("erkktykkuiiiiiiqqafzzzzzeo","(.)\\1+");

        //叠词切割 后一个和前一个一样的

        //为了将规则封装成一个组,用()完成,组的出现都有编号

        //从1开始,想要使用已有的组可以通过 \n(n就是组的编号)的形式出现

    public static void splitDemo(String str,String reg)

    {

//  String str = "zhangsan.lisi.wangwu";

//  String reg = " +";//按照多个空格来进行切割

//  String reg = "\\.";正则中 "\." 表示按"."切割  在正则中"."表示任意字符

 

        String[] arr = str.split(reg);

        for(String s : arr)

        {

            System.out.println(s);

        }

3 替换:String replaceAll(); 返回替换后的字符串

String str ="asdasd322334adasd1233223fasd";//将字符串中的数字替换成#号

replaceAllDemo(str,"\\d{5,}","#");        数字连续超过5个以上的替换

String str1 ="erkktykkuiiiiiiqqafzzzzzeo";

replaceAllDemo(str1,"(.)\\1+","$1");//将多个相同字符替换成1个该字符

public static voidreplaceAllDemo(String str,String reg,String newStr)

    {

        str = str.replaceAll(reg,newStr);

        System.out.println(str);

    }

 4 获取: 将字符串中的符合规则的字符串取出

操作步骤

1 将正则表达式封装成对象

2 让正则对象和要操作的字符串相关联

3 关联后,获取正则匹配引擎

4 通过引擎对符合规则的子串进行操作,比如取出

如果只想知道字符串是否对错,使用匹配

想要将已有的字符串变成另外一个字符串,替换

想要按照自定的方式将字符串变成多个字符串,切割。获取规则以外的子串

想要拿到符合需求的字符串子串,获取。获取符合规则的子串



原创粉丝点击