黑马程序员——网路编程、正则表达式
2013-06-13 21:44
375 查看
------- android培训、java培训、期待与您交流! ----------
———————————————————————————————————————————————————
29、GUI
Graphical User Interface
awt: Abstract Window ToolKit
布局管理器:
flow
|——Component 体系结构
|--Container
|---Panel
|---Window
|----Frame
|----Dialog
|-----FileDialog
30、网络编程
网络编程也叫Socket编程
|——UDP传输
DatagramSocket
此类表示用来发送和接收数据报包的套接字。
DatagramPacket
此类表示数据报包。
数据报包用来实现无连接包投递服务
|——TCP
ServerSocket 服务端套接字
Socket 客户端套接字
服务器端想要和客户端通信,就需要得到当前客户端的套接字
|——最常见的客户端:
浏览器:IE ,现在很多浏览器使用webkit内核
最常见的服务端:
服务器:Tomcat
|——模拟web服务器:
GET / HTTP/1.1
//请求行 。目前http协议有两个 1.0 和1.1
//请求消息头 属性名:属性值 其实就是键值对
Host: localhost:9090
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko)
Chrome/23.0.1271.64 Safari/537.11 AirView3.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ *;q=0.8
Accept-Encoding: gzip,deflate,sdch //支持的压缩方式
Accept-Language: zh-CN,zh;q=0.8
//支持的语言
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
//支持的编码方式
//请求体 请求体和请求头有一个空行
自定义信息
|——模拟浏览器
HTTP/1.1 505 HTTP Version Not Supported //应答行 ,协议版本,应答状态码,应答状态描述协议
Server: Apache-Coyote/1.1
Date: Tue, 11 Jun 2013 12:42:50 GMT
Connection: close
//空行
应答体
|——URL
String url_str = "http://www.baidu.com/index.html?name=zhangsan";
URL url = new URL(url_str);
System.out.println("getProtocol:"+url.getProtocol());
System.out.println("getHost:"+url.getHost());
System.out.println("getPort:"+url.getPort());
System.out.println("getFile:"+url.getFile());
System.out.println("getPath:"+url.getPath());
System.out.println("getQuery:"+url.getQuery());
URL openStream()方法 返回值是InputStream
打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
它其实是URL中openConnection().getInputStream()
|——获取URL的连接器对象。将连接封装成了对象:java中内置的可以解析的具体协议的对象//是一种底层实现
URLConnection con = url.openConnection(); //这个叫做URL连接器对象
//直接打印连接器对象
sun.net.www.protocol.http.HttpURLConnection:http://www.baidu.com/index.html?name
=zhangsan
|——为了解析服务器发回的web信息。就要使用URL对象
URL url = new URL(url_str);
URLConnection con = url.openConnection();
使用URL或者连接器的方法
31、 反射 提高了扩展性
java反射机制就是运行在运行状态中,对于任意一个类(class文件)都能够知道这个类的所有属性和方法
动态获取的信息以及动态调用对象的方法的功能称为反射机制
动态类获取类中信息就是java反射
反射一般有:接口、配置文件
想要对一个类文件进行解剖,只要拿到这个类的class文件就可以了
|——获取字节码的三种方式:
Class clazz = 类.class;
Class clazz = 对象.getClass();
Class clazz = Class.forName("完整类名");
|—— 基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)
和关键字 void 也表示为 Class 对象。
32、 正则表达式
正则表达式是用于操作字符串数据的
通过一定的符号来体现的
|——一些常用的表达式:
字符类
[abc] a、b 或 c(简单类)
[^abc]
任何字符,除了 a、b 或 c(否定)
[a-zA-Z]
a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]
d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]
a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:
[0-9]
\D 非数字: [^0-9]
\s 空白字符:
[ \t\n\x0B\f\r]
\S 非空白字符:
[^\s]
\w 单词字符:
[a-zA-Z_0-9]
\W 非单词字符:
[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
组和捕获
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C)
组零始终代表整个表达式。
|——正则表达式对字符串的常见操作:
1、 匹配:
其实使用的就是String类中的matches方法
2、 切割:
其实就是使用String类的split方法
String str = "zhangsantttlisimmmmwangwu";
String []names = str.split("(.)\\1+");
3、 替换:
其实使用的就是String类中replaceAll方法
String tel = "15000002222";
tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
4、 获取:
String str = "ni men hao.hello world";
Pattern p = Pattern.compile("\\b[a-z]{3}\\b"); // \b表示单词边界
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
|——建立表达式的方法:
String reg = "[1-9][0-9]{4,14}"; //直接使用string
//将正则表达式封装成对象
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
———————————————————————————————————————————————————
29、GUI
Graphical User Interface
awt: Abstract Window ToolKit
布局管理器:
flow
|——Component 体系结构
|--Container
|---Panel
|---Window
|----Frame
|----Dialog
|-----FileDialog
30、网络编程
网络编程也叫Socket编程
|——UDP传输
DatagramSocket
此类表示用来发送和接收数据报包的套接字。
DatagramPacket
此类表示数据报包。
数据报包用来实现无连接包投递服务
|——TCP
ServerSocket 服务端套接字
Socket 客户端套接字
服务器端想要和客户端通信,就需要得到当前客户端的套接字
|——最常见的客户端:
浏览器:IE ,现在很多浏览器使用webkit内核
最常见的服务端:
服务器:Tomcat
|——模拟web服务器:
GET / HTTP/1.1
//请求行 。目前http协议有两个 1.0 和1.1
//请求消息头 属性名:属性值 其实就是键值对
Host: localhost:9090
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko)
Chrome/23.0.1271.64 Safari/537.11 AirView3.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ *;q=0.8
Accept-Encoding: gzip,deflate,sdch //支持的压缩方式
Accept-Language: zh-CN,zh;q=0.8
//支持的语言
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
//支持的编码方式
//请求体 请求体和请求头有一个空行
自定义信息
|——模拟浏览器
HTTP/1.1 505 HTTP Version Not Supported //应答行 ,协议版本,应答状态码,应答状态描述协议
Server: Apache-Coyote/1.1
Date: Tue, 11 Jun 2013 12:42:50 GMT
Connection: close
//空行
应答体
|——URL
String url_str = "http://www.baidu.com/index.html?name=zhangsan";
URL url = new URL(url_str);
System.out.println("getProtocol:"+url.getProtocol());
System.out.println("getHost:"+url.getHost());
System.out.println("getPort:"+url.getPort());
System.out.println("getFile:"+url.getFile());
System.out.println("getPath:"+url.getPath());
System.out.println("getQuery:"+url.getQuery());
URL openStream()方法 返回值是InputStream
打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
它其实是URL中openConnection().getInputStream()
|——获取URL的连接器对象。将连接封装成了对象:java中内置的可以解析的具体协议的对象//是一种底层实现
URLConnection con = url.openConnection(); //这个叫做URL连接器对象
//直接打印连接器对象
sun.net.www.protocol.http.HttpURLConnection:http://www.baidu.com/index.html?name
=zhangsan
|——为了解析服务器发回的web信息。就要使用URL对象
URL url = new URL(url_str);
URLConnection con = url.openConnection();
使用URL或者连接器的方法
31、 反射 提高了扩展性
java反射机制就是运行在运行状态中,对于任意一个类(class文件)都能够知道这个类的所有属性和方法
动态获取的信息以及动态调用对象的方法的功能称为反射机制
动态类获取类中信息就是java反射
反射一般有:接口、配置文件
想要对一个类文件进行解剖,只要拿到这个类的class文件就可以了
|——获取字节码的三种方式:
Class clazz = 类.class;
Class clazz = 对象.getClass();
Class clazz = Class.forName("完整类名");
|—— 基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)
和关键字 void 也表示为 Class 对象。
32、 正则表达式
正则表达式是用于操作字符串数据的
通过一定的符号来体现的
|——一些常用的表达式:
字符类
[abc] a、b 或 c(简单类)
[^abc]
任何字符,除了 a、b 或 c(否定)
[a-zA-Z]
a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]
d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]
a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:
[0-9]
\D 非数字: [^0-9]
\s 空白字符:
[ \t\n\x0B\f\r]
\S 非空白字符:
[^\s]
\w 单词字符:
[a-zA-Z_0-9]
\W 非单词字符:
[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
组和捕获
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C)
组零始终代表整个表达式。
|——正则表达式对字符串的常见操作:
1、 匹配:
其实使用的就是String类中的matches方法
2、 切割:
其实就是使用String类的split方法
String str = "zhangsantttlisimmmmwangwu";
String []names = str.split("(.)\\1+");
3、 替换:
其实使用的就是String类中replaceAll方法
String tel = "15000002222";
tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
4、 获取:
String str = "ni men hao.hello world";
Pattern p = Pattern.compile("\\b[a-z]{3}\\b"); // \b表示单词边界
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
|——建立表达式的方法:
String reg = "[1-9][0-9]{4,14}"; //直接使用string
//将正则表达式封装成对象
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
相关文章推荐
- 黑马程序员——网络编程及正则表达式
- 黑马程序员:Java编程_正则表达式
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- 用正则表达式看.NET编程--.NET核心正则类详解
- 黑马程序员:正则表达式
- C#正则表达式编程(二):Regex类用法
- 黑马程序员-正则表达式
- 黑马程序员——Java 网络通信 正则表达式
- 黑马程序员——Java基础—正则表达式
- python核心编程-正则表达式-产生测试数据
- 黑马程序员_正则表达式(正则匹配,替换,切割,获取,正则练习)
- 黑马程序员--常用正则表达式
- 黑马程序员——java基础之正则表达式
- 黑马程序员——javaSE_正则表达式
- 黑马程序员_JAVA:正则表达式
- [黑马程序员](第25天)高新技术之正则表达式
- 黑马程序员_正则表达式
- 黑马程序员java笔记之七-----正则表达式