case空格后面只能写switch里面定义的变量类型所对应的字面值。
2、DO while 循环
do while循环与while循序的区别是:do while循环是不管条件是否成立,至少会执行一次循环体的。但是while可能一次也不会执行。while循环:当循环次数不确定时,适合用while循环。
3、Break continue关键字
Break:跳出当前这层循环语句或者switch语句
contuine:跳出当前这次循环
4、数组就是相同数据类型的元素按一定顺序排列的集合,换种说法就是把有限个类型相同的变量用一个名字命名。
数组的特点:(1)数组创建的额内存空间只能存储相同类型的数据
(2)数组所分配内存空间是连续的
(3)数组所分配的内存空间是不可扩充的
5、数组扩充的办法:
(1)初始化一个新数组,长度时原来的两倍
(2)把老数组的数据复制到新数组中
(3)让老数组指向新数组的地址
方法一:
//新来一个学生,存储他的成绩,数组需要扩充
// 1.首先先定义一个大数组
int[] big=new int[2*small.length];
// 2.复制小数组的内容到大数组的前small.length个位置
for(int i=0;i<small.length;i++){
big[i]=small[i];
}
// 3.修改small的地址,指向大数组
small=big;
方法二:
1.首先先定义一个大数组
int[] big=new int[2*small.length];
// 2.复制小数组的内容到大数组的前small.length个位置
System.arraycopy(small, 0, big, 0, 5);
// 3.修改small的地址,指向大数组
small=big;
方法三:
small=Arrays.copyOf(small,10);
第一个参数:需要被扩充的数组 第二个参数:扩充为多大
6、数组的插入数据
数组a中插入一个元素element,插入到第pos个位置。
具体思路:
1.插入元素之前先看当前数组有效长度count是否等于数组长度a.length,如果相等就需要先扩充数组expand
2.从第count个位置,一直到pos位置,循环体里面就是让当前元素的值等于上一个元素的值
3.a的第pos个位置赋值为element
* @parama 表示数组
* @param element 表示插入的元素值
* @param pos 表示插入位置
* @param count 数组有效长度
* @return
public static int[] insert(int[] a,int element,int pos,int count){
if(count==a.length){
//扩充数组
a = expand(a);//此处的expand是一个方法,专门用来扩充数组的,只是把他做成了一个工具类
}
for(int i=count;i>pos;i--){
a[i]=a[i-1];
}
a[pos]=element;
return a;
}
7.删除元素
从数组a中删除第pos个位置的元素。
/**
*
* @param a 数组
* @param count 有效长度
* @param pos 删除的位置,位置从0开始算
* @return
*/
public static int[] delete(int[] a,int count,int pos){
for(int i=pos;i<count-1;i++){
a[i]=a[i+1];
}
return a;
}
8.jvm运行的内存结构;
9、对象时客观存在的,对象是从类产生的,类是抽象的,是从众多的对象中提取一个特征组成的一个概念叫做类。
创建一个Student的对象:Student stu=new Student();下面是在内存空间上对他的分析:
栈区 stu =r001 | 堆区 new Student->r001 | 方法区 Student的基本方法 |
实例变量和局部变量发生命名冲突时局部变量优先。
10、创建一个字符串对象
String s = “suns”;创建一个对象
String s = new String(“suns”); 创建了两个对象
这两者方法创建一个字符串的区别:
前者是把对象放在jvm字符串常量池,下次定义同样字符串时候可以不用创建,直接使用,简易采用此方法。后者是不放在常量池里面的。
11、String常用的方法:
equals是比较两个字符串是否时候相同的,
charAt(int a)返回的是一个字符型的例如:
char c="apple".charAt(3);
length()返回的是一个字符串的长度 int len=“apple”.length();
startWith(String s)是否是以一个字符串s开始的,返回的数据类型是布尔类型的。
trim()去掉两边空格
Contains(String str)
当前字符串对象是否包含str对应的字符串,如果包含返回true,不包含返回false。
String str="orrnge";
if(str.contains("a")){
System.out.println("该商品符合检索条件");
}
Substring(intbegin,int end)子串。
Begin从0开始,end表示截取到第end-1个字符。
String str="huili.zhang@163.com";
String substr=str.substring(8,11);
System.out.println(substr);
Substring(intbegin)
对当前字符串求从begin这个位置开始的子字符串。Begin从0开始。
String str="huili.zhang@163.com";
String substr=str.substring(12);
System.out.println(substr);
Int indexOf(String s)
返回s在当前大字符串中第几个位置出现,位置从0开始计算的。
String str="huili.zhang@163.com";
int pos=str.indexOf("@");
System.out.println(pos);
lastIndexOf(Strings)
s在字符串中最后一次出现的位置
String str="huili.zhang@163.com";
int pos=str.lastIndexOf(".");
System.out.println(pos);
Replace(old,new),replaceAll(find,instead)
Replace:old代表被替换的字符串,new表示替换成的目标字符串
replaceAll含义和replace基本相同,但是支持正则表达式。