今天老师在介绍正则表达式之前给我们稍微介绍了一点网络编程的小知识。
1.常见的客户端:浏览器,常见的服务器:Tomcat。
2.浏览器中获取主机以及端口是需要解析的,解析的具体对象就是URL。
//Demo实例
//URL对象的使用。
String str_url = "http://192.168.1.252:8080/myweb/1.html?name=lisi";
URL url = new URL(str_url);
//连接指定的url地址。
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String str = new String(buf,0,len);
System.out.println(str);
3.CS和BS
CS:client server 客户端服务端
特点:1.程序员需要客户端服务端都进行开发
2.早期维护起来很麻烦
3.可以将一部分运算转移到客户端运行
BS: Browser Server 浏览器服务端
特点:1.程序员只要编写服务端,客户端直接就是已有的浏览器
2.只要维护服务器端就可以了
3.所有运算都在服务器端就可以完成
4.正则表达式:专门用于对字符串进行操作的规则
好处:简化了对字符串操作的书写
弊端:降低了阅读性
Demo:[abc] a b c中的一个 [a-zA-Z] 所有的大小写字母
[^abc] 除了abc的任何字符 [a-d[m-p]] a到d或m到p
\w 单词字符[a-zA-Z0-9] \d数字[0-9]
\D 非数字[^0-9] . 任何字符
正则表达式对字符串的功能:
1、匹配:使用的就是String类的matches()方法
2、切割:使用的是String的split方法
3、替换:使用的是String的replaceAll方法
4、获取:String类并未直接提供这样的方法,这里需要使用正则表达式对象, 使用的是Parrtern对象,并获取匹配器对象matcher。
//Demo
Pattern p=Pattern.complie("a*b");
Machter m=p.matcher("aaaab");
Boolean b=m.matches();
5.反射:动态获取一个类以及该类中的成员,并可以运行该类或者该类的成员
//反射技术的出现大大提高了程序的扩展性
如何获取一个字节码文件的class对象呢?
有三种方式。
1.Person p=new Person();
Class.clazz=p.getClass();
2.Class clazz=Person.Class();
3.Class clazz=class.forName("cn.itcast.bean.Person");