正则表达式
正则表达式是一种最早起源于Perl语言的特殊字符串技术,可以通过一些固定的模式编写一些特殊的字符串,通过对这些特殊字符串使用,可以有效的进行表单验证(手机,邮箱,网址等输入格式的检查),以及一些数据的爬取,包括字符替换等功能;因此,正则表达式是一项非常强大的表达式语言。
相关类java基础架包中java.util.regex提供正则表达式相关的类:
Pattern 表示正则表达式编译器对象。Pattern 类没有提供公共的构造方法。 必须调用公共的静态 compile 方法,它将返回一个 Pattern 对象。
Matcher 正则表达式的匹配器。 Matcher 没有定义公共的构造方法,需要通过调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
简单的正则表达式例子:
手机号: ^1[3456789]\\d{9}$
解析:
观察以上表达式,被匹配的字符串,必须以数字1开后,后面第二数只能为3,4,5,6,7,8,9中的其中一个,从第三位开始后面一共包含9位数字,并且以数字结尾。
基本规则正则表达式组成规范
“.” :
用于匹 ...
File
分隔符12345System.out.println(File.pathSeparator); // 分号(String)System.out.println(File.pathSeparatorChar); // 分号(char)// 获取当前系统中对应的路径分隔符,Windows,\。Linux:/System.out.println(File.separator);
File对象12345678910111213141516// 获取e盘下的a.txt.文件的File对象File f1 = new File("e:\\a.txt");// 创建一个文件,true表示成功,false表示存在了就不会再次创建boolean flag = f1.createNewFile();System.out.println(flag);// 创建目录(文件夹)File f2 = new File("e:\\file");boolean flag2 = f2.mkdir();System.out.println(flag2);// 一次性创建多层次的目录F ...
常用类
System1234567891011121314151617//out对象,标准输出对象System.out.println("hello");//in对象,标椎输入对象Scanner sc = new Scanner(System.in);//err:用来输出错误信息//System.err.println("world");//方法//currentTimeMillis():返回的是从1970-1-1 0:0:0.0 到此时此刻的毫秒数long time = System.currentTimeMillis();System.out.println(time);//exit():退出程序,0:正常退出,非0不正常退出System.exit(0);System.out.println("程序结束了");
StringString介绍
class final String 是一个最终类,不能被继承
final char value[]:用于存储字符串中的每个字符
字符串是一个不可变的常量池中不会将相同的数据保存多份的
...
异常
写的代码不可能十全十美,有的是会报错,一报错程序立马挂了异常机制:程序中出现了异常,那系统可以将异常捕获并把处理掉,这样程序就不会挂掉,依然往后执行
异常分类Throwable
Error
Exception
编译时异常(检查性异常):需要强制性try catch
IOException
……
运行时异常(非检查性异常):一般不做处理
NullPointerException
ArithmeticException
……
处理try…catch…finally12345678910111213141516"一个抛,一个接" try{``` 可能抛出异常的代码``` }catch(异常类型1 变量名){ 处理异常的代码 }catch(异常类型2 变量名){ 处理异常的代码 }catch(异常类型3 变量名){ 处理异常的代码 }finally{ }
获取异常信息的方式:
getMessag ...
内部类
内部类就是在一个类的内部定义一个类,比如,A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对于B类来说就是外部类。
成员内部类 私有的内部类只能在当前的外部类中使用
12345678910111213141516171819202122public class Dog { public String name; public int age; public String sex; public String weight; public void eat() { System.out.println("狗吃骨头"); } public void f() { System.out.println(money); // 成员内部类可以直接访问外部类属性 study();// 成员内部类可以直接访问外部类方法 // 外部类和内部类中有同名的属性时 System.out.println(Person.this.name); // 访问外部类的name System.o ...
面向对象3
static
static:静态的
可以修饰哪些:属性、方法、内部类、代码块
有了static之后,变量可以分为静态变量和非静态变量
非静态变量:我们又称之为实例变量,每一个对象都会有一套完全独立的非静态变量,每个对象里面的非静态变量若发生更改 ,不会影响到其他对象的非静态变量
静态变量:我们又称之为类变量,这个是跟类相关,与类的对象没有关系,这个静态变量将会在当前这个类的所有对象中共享(独此一份),可以通过类名调用
静态变量的初始化时机:在类加载(使用类)的时候就会进行初始化
4.修饰方法
静态方法也是可以直接通过类名调用
静态方法也是在加载类的时候会提前加载方法
注意:
静态方法不能访问非静态属性,或者调用非静态方法
普通方法是可以调用静态属性和静态方法的
5.什么时候用
什么时候用静态变量:
假如某个变量是不随对象更改而更改的,那就可以采用静态的常量一般也是设置成静态的
什么时候用静态方法:
一般在工具类中,方法一般是设置成静态的,Math、Arrays…在类中如果说要设计操作一个静态属性的方法,那这个方法一般我们也是设置成静态的
final
fin ...
面向对象2
this关键字this:this代表当前类的对象
可以调用类型的属性,构造方法里面。getxxx()方法里面
调用类中的普通方法
在一个构造方法中调用另外一个构造方法
super关键字super代表父类的对象
super调用父类的构造方法,必须在构造方法的第一个
super必须只能出现在子类的方法或者构造方法中
super和this不能同时调用构造方法
this和super的不同:
this
super
代表的对象不同
本身调用者这个对象
代表父类的对象
前提
没有继承也可以使用
只能在继承条件下才可以使用
构造方法
本类的构造
父类的构造
面向对象的三个主线
类和对象
面向对象的三大特性:封装,继承,多态
关键字:package,import,final,static
封装该暴露的暴露,该隐藏的隐藏
封装通过访问修饰符进行实现
本类
同一个包
子类
全局
public
Y
Y
Y
Y
protected(受保护的)
Y
Y
Y
N
缺省
Y
Y
N
N
private
Y
N
N
N
package & imp ...
面向对象1
面向过程面向过程和面向对象,都是一种设计思想
面向过程:侧重于实现的具体过程,主要设计到方法(函数)
面向对象:面向对象是将问题转行成谁做什么事情(对象干什么)
怎么将大象放进冰箱?
面向过程:
1、开冰箱门
2、把大象塞进去
3、关冰箱门
面向对象:
存在哪些对象(事物)
冰箱、大象、人
123456789101112131415161718192021222324冰箱(){ 冰箱门打开(){} 冰箱门关闭(){}}人(){ 打开冰箱门(){} 赛大象(){} 关闭冰箱门(){}}大象(){ 喊救命(){}}
具体过程:
人.打开冰箱门(){}
人.塞大象(){}
人.关闭冰箱门(){}
面向对象面向对象编程(Object-Orientend Programming,OOP)本质是:以类的方式组织代码,以对象的形式(封装)数据
类(class):类是对一类事物的一个抽象定义
对象(Object):对象是一 ...
数组
一维数组数组:数组是一种数据结构,可以存放多个数据
数组定义声明并初始化数组:
1234567// 1 知道数据int[] arr = {10,20,30};int arr[] = {10,20,30};int[] arr = new int[]{10,20,30};// 2 不知道具体数据int[] arr = new int[5]; // 表示数组的长度为5,但是没有存放具体的数据
整数类型数组默认值为0浮点型数组默认值为0.0引用类型的数组默认值为null
数组的访问
通过下标访问数组元素:数组名[下标值]
数组下标从0开始,一次递增
注意:下标值不要超出范围,不然报数组越界异常
数组的修改数组名[下标值] = 新的值
数组的遍历123for(int i = 0;i < arr.length;i++){ }
1234567891011// 数组遍历的另外一种方式// 没循环一次,就换将数组中对应的一个元素放入到循环变量i中int[] score = {55,65 ...
方法
方法:方法就是可以完成一个特定功能的代码片段,可以提高代码的复用性,同时提高代码的维护性以及阅读性
方法语法格式:
123访问修饰符 返回值类型 方法名([参数列表]){ }
方法的分类无参无返回值123public void cook(){ }
void : 表示方法的返回值为空(没有返回值)
方法名括号中为空时,代表方法没有参数
无参带返回值12345678910111213141516171819// 带返回值的方法// 返回值是根据实际需求来定,有没有,有是什么类型public String cook() { System.out.println("炒菜中..."); return "宫保鸡丁";}public static void main(String[] args) { Test2 t = new Test2(); // 如果在调用方法后,你想要得到方法给你返回的结果,那么就需要通过一个变量去接收方法的返回值 String name = t.c ...