学习java—第十七天学习笔记

206 阅读3分钟

2019.8.2 NIIT第十七天

种一棵树最好的时间就是十年前,和现在

一、包装类

  • 除了Interger和Character以外所有包装类都是开头字母大写的基本类型

String->int

方法一

1、利用Ineger的构造方法Integer(String s)将字符串变为整型对象

2、inValue()方法将Integer转换成int型

方法二

Valueof(String s)

二、自动装箱、自动拆箱

  • 自动装箱:基本数据类型转换成对象
  • 自动拆箱:对象转换成基本数据类型

例如:

包装类自动转换成基本类型(自动拆箱)

int a =new Integer(20);

基本数据类型改成包装类(自动装箱)

Integer a=213

三、正则表达式

正则表达式是专门解决字符串规则匹配的工具

正则表达式也是一个字符串,用来定义匹配规则

详细情况可以查看API中正则表达式

搜索Pattern类可以查看正则表达式

每个条件只匹配单个字符

()表示整体

+有就近原则

^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

四、集合ArrayList迭代器

迭代器取元素

容器

next方法调用一次即可取出元素,下次调用则调用下一个元素

可能产生修改并发异常:java.util.ConcurrentModificationException

如果集合中有21岁的人,那么就新增一个人因为新增元素在集合中,导致集合的数据和迭代器中的元素不匹配,迭代器创建时相当于将集合中当时的数据拷贝一份,当集合只能够数据个数和迭代器中数据个数不匹配时就会出产生并发异常

所以迭代器只适合取元素而不适合增删

Iterator<Integer> p=list.iterator();
		while(p.hasNext()) {
			System.out.println(p.next());
		}

五、增强行for循环

增强行for循环也是一种迭代器

专门用来遍历数组和集合的。

它的内部原理其实是个Iterator迭代器,所以在遍历的过程中

不能对集合中的元素进行增删操作。

for(元素的数据类型变量 : Collection集合or数组){}

六、泛型定义

泛型用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数传递 ArrayList其中E就是泛型

泛型是数据类型的一部分,我们将类名与泛型合并一起看做数据类型

泛型的定义:定义泛型可以在类中预支地使用未知的类型。

泛型的使用:一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。

泛型类的定义:

public class MyclassType<E,T>{
	private E myFeild;
}

七、泛型方法

	修饰符 <T,Q,E……> 返回值类型 方法名(T t,Q q,……){//方法上的泛型定义在返回值的前面
	}

八、泛型接口

interface 接口名<Q,E,R……>{
public abstract void method(T t);//假设定义一个方法
}
class 类名 implements 接口<实际类型>{
 	@Override
	public void method(实际类型t) {
		System.out.println(t);
	}
}

九、泛型通配符

泛型通配符:?

定义:(查看ArrayList的构造方法)无法在类中使用

使用:调用方法时可以给予任意类型。参照Arraylist的构造方法

? extends E代表只要是E类型的子类即可

? super E代表只要是E类型的父类即可