模式匹配:
父串当中首次出现子串的的位置叫做模式匹配
最多比较几次:父串的长度-子串的长度
ContinueWithLabelDemo.java
test:
for(i=0;i<16;i++)//第0次
{
j=i;//不能移动i要移动j
for(j=0;j<4;j++)//第0次的各趟
{
if(searchMe.charAt(j)!=Substring.charAt(k))
continue test;//跳出label所标识的那一层循环的本次循环
//or跳出test所标识的内层循环的本次循环
j++;
}
输出i;
break test;
}
//外层:16次 父串长度-子串长度
//内层:4次 子串长度
/*
start= searchme.substring(i); look for a
end=searchme.substring(i+4,20); tring
start+”AAA”+end
*/
数组
是一个容器,存放数据(基本类型和引用类型)。
越界:运行时异常
//数组下标越界异常:ArrayIndexOutOfBoundsException
特点:
(1)类型相同
(2)空间连续
(3)长度固定
数组变量的定义:
(1)中括号不能写数字
(2)不能int a[ ];
int [ ] a;
Date[ ] d;
//定义方式两种
type[] arr_name; 推荐使用
type arr_name[];
创建数组对象(在堆内):
//ArrayDf.java
a=new int[5];
有属性length,有方法toString()和equals()但是没有复写。
对象是int[ ]类型
如何访问:
数组对象有一个地址就是a,a也代表数组对象的数组名,也就是首元素的地址。a+2
a[2]是数组元素(空间)的标识,也就是数组元素名,间接寻址。
a2=5;直接寻址。
元素和变量都是一块空间。变量空间可以在栈,堆,方法区开辟空间。
元素要依赖对象,只能在堆里开辟空间。
变量寻址:直接寻址,编译时建立变量名、地址、映射表,
元素寻址:间接寻址,通过首地址+偏移量
创建一个数组对象相当于创建了多个变量
new int [0];创建空数组
数组类型不决定于数组长度
数组对象赋值,也就是数组对象的传递,数组名也就是数组对象的首地址
命名方式、寻址方式不同