JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
1.IP简述使用
//获取本地主机ip地址对象。
InetAddress ip = InetAddress.getLocalHost();
//获取其他主机的ip地址对象。
ip = InetAddress.getByName("192.168.1.108");
//InetAddress.getByName("my_think");
System.out.println(ip.getHostAddress());
System.out.println(ip.getHostName());
2.反射
String className = "com.test.demo1.Person";
//找寻该名称类文件,并加载进内存,并产生Class对象。
Class clazz = Class.forName(className);
//获取到了指定的构造函数对 象。
Constructor constructor = clazz.getConstructor(String.class,int.class);
Field field = null;//clazz.getField("age");//只能获取公有的,
field = clazz.getDeclaredField("age");//只获取本类,但包含私有。
//对私有字段的访问取消权限检查。暴力访问。
field.setAccessible(true);
Method method = clazz.getMethod("paramMethod", String.class,int.class);
//通过该构造器对象的newInstance方法进行对象的初始化。
Object obj = constructor.newInstance("小明",38);
field.set(obj, 89);
method.invoke(obj, "小强",80);
Person person = (Person)obj;
System.out.println(person.getName()+" "+person.getAge());
3.正则表达式操作
/*
* 正则表达式对字符串的常见操作:
* 1, 匹配。
*
其实使用的就是String类中的matches方法。
*
* 2,切割。
*
其实使用的就是String类中的split方法。
*
* 3,替换。
*
其实使用的就是String类中的replaceAll()方法。
*
* 4,获取。
*
*/
//1, 匹配。
//匹配手机号码是否正确。
String tel = "15800001111";
String regex = "1[358]\\d{9}";
boolean b = tel.matches(regex);
System.out.println(tel+":"+b);
//2,切割。
String str = "zhangsanttttxiaoqiangmmmmmmzhaoliu";
String[] names = str.split("(.)\\1+");//str.split("\\.");
for(String name : names){
System.out.println(name);
//zhangsan
//xiaoqiang
//zhaoliu
}
//3替换
str = str.replaceAll("(.)\\1+", "$1");
System.out.println(str);//zhangsantxiaoqiangmzhaoliu
//4.获取
str = "da jia hao,ming tian bu fang jia!";
regex = "\\b[a-z]{3}\\b";
//1,将正则封装成对象。
Pattern p = Pattern.compile(regex);
//2, 通过正则对象获取匹配器对象。
Matcher m = p.matcher(str);
//使用Matcher对象的方法对字符串进行操作。
//既然要获取三个字母组成的单词
//查找。 find();
System.out.println(str);
while(m.find()){
System.out.println(m.group());//获取匹配的子序列
System.out.println(m.start()+":"+m.end());
}
4.网络爬虫
/*
* 网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据。 爬取邮箱地址。
*/
// 1,读取源文件。
//
//BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));//从本地
URL url = new URL("http://192.168.1.100:8080/myweb/mail.html");
BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream()));
// 2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
String mail_regex = "\\w+@\\w+(\\.\\w+)+";
List<String> list = new ArrayList<String>();
Pattern p = Pattern.compile(mail_regex);
String line = null;
while ((line = bufIn.readLine()) != null) {
Matcher m = p.matcher(line);
while (m.find()) {
// 3,将符合规则的数据存储到集合中。
list.add(m.group());
}
}
5.可变参数
public static int add(int x,int ... args){
int sum = x; //如果参数列表没有int x则int sum=0;
for(int arg : args){
sum += arg;
}
return sum;
}
System.out.println(add(2,3));
System.out.println(add(5,6,5));
6.了解和入门注解的应用
@SuppressWarnings("deprecation")//压缩警告,告诉程序说,我知道已经过时了,不提示
@Deprecated//表明该方法已过时
@Override//表明是覆盖方法,如果写错会提示
@SuppressWarnings("deprecation")//压缩警告,告诉程序说,我知道已经过时了,不提示
public static void main(String[] args) throws IOException {
System.out.println(add(2,3));
System.out.println(add(5,6,5));
}
@Deprecated//表明该方法已过时
public static int add(int x,int ... args){
int sum = x; //如果参数列表没有int x则int sum=0;
for(int arg : args){
sum += arg;
}
return sum;
}
@Override//表明是覆盖方法,如果写错会提示
public String toString() {
return super.toString();
}
7.使用Eclipse的Debug功能
Step Over(F6):跳过,执行下一步
Step Into(F5): 跳入,进入执行的方法内部
Step Return(F7):跳出,跳出当前执行的方法
Resume(F8):跳入到下一个断点,如果没有直接结束
JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)的更多相关文章
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- Java基础知识强化之集合框架笔记32:集合之可变参数的概述和使用
1. 可变参数的概述和使用: (1)可变参数:定义方法的时候不知道该定义多少个参数(2)格式: 修饰符 返回值类型 方法名(数据类型… 变量名){ } 注意: 这里的变量其实是一个数 ...
- Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar
正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex).正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在 ...
- Java基础学习总结(21)——常用正则表达式列表
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求.所以我最近把开发中常用的一些正则表达式整理了一下,包括校验数字.字符.一些特殊的需求等等.给自己留个 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
随机推荐
- Python学习笔记一
原来Python的文件配置好环境变量直接双击就可以运行,当然也可以控制台+编辑器 first try: import turtle window=turtle.Screen() babbage=tur ...
- time()函数,dirname(__FILE__) 的使用总结
time()函数将返回从1970-1-1 0:0:0到当前时间的秒数.(整型) dirname(__FILE__) php中定义了一个很有用的常数,即 __file__ 这个内定常数是当前php程序的 ...
- Apache和PHP的安装
最近看了一些教科书,可能是印刷的缘故,只是一个空格没有打印,再加上网上的很多博客文章只是顺手转载,并没有仔细的检查,还有php和apache之间的版本问题,害得我花了4,5小时的时间才搞定环境的搭配. ...
- 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是 ...
- springboot 连接池wait_timeout超时设置
使用springboot 线程池连接MySQL时,mysql数据库wait_timeout 为8个小时,所以程序第二天发现报错,在url配置了 autoReconnect=true 也不行,查询配置以 ...
- Response.Redirect()、Server.Execute和Server.Transfer的区别
1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL. 当Response.Redirect()方法被调用时,它会创建一个应答,应答头中 ...
- Android Studio (Gradle)编译错误
Error:Execution failed for task ':app:processDebugResources' .com.android.ide.common.process.Process ...
- Longest Increasing Path in a Matrix
Given an integer matrix, find the length of the longest increasing path. From each cell, you can eit ...
- C#之常见数组编码错误
摘抄自C#本质论(第四版,P55) 常见错误 错误描述 改正后的代码 int numbers[] 用于声明数组的方括号放在数据类型之后,而不是在变量标识符之后 int[] numbers; int[] ...
- appium + python 环境搭建
所需:JDK.Android SDK.Appium服务程序.Appium客户端程序 1. 安装最新的JDK,并配置环境变量. JAVA_HOME=C:\Program Files (x86)\Java ...