For循环的两种方法
publicclass Test {
publicstaticvoid main(String[] args) {
LiLun ll1=new LiLun("T001", "JAVA基础");
LiLun ll2=new LiLun("T002", "JSP实战");
LiLun[] lls={ll1,ll2};
①àfor(int i=0;i<lls.length;i++){
à LiLun m=lls[i];
à m.getInfo();
à}
②àfor(LiLun m:lls) //将数组中的lls的下标依次赋给m
à{
à m.getInfo();
à }
注:①②的功能相同
}
}
包装类 Integer
基本数据类型 包装类
byte Byte
int Integer
short Short
long Long
float Float
double Double
char Charater
字符串与基本数据类型之间的转换
把字符串装换成整型
m=Integer.parseInt(Stirng s);
见JAVA书
数据类型的存储空间
不同数据类型的内存空间区别:
基本数据类型每一个变量都有一个独立的内存空间
引用数据类型每一个变量不一定都有一个独立的空间,有可能指向同一内存空间
引用数据类型罢包括string、类、接口、数组
一. 基本/引用数据类型:
是放在栈里面
注è引用数据类型:
是指非new定义的引用数据类型
例如:String t=”nihao”;
特点:
当程序结束后,栈里空间会自动清除掉(通过系统回收)
String 存放池:
String t=”nihao”;
t里面的内容 在栈里面专门字符串池存放,是不可以改变的常量
存放池的使用方法:
例如: //String字符串是常量,不可改变
à①String str="abcdefg";
à②String str1="abcdefg";
à③String str2=str;
à④String str5="zzzzzzzzz";
à⑤System.out.println(str2);
à⑥str="zzuu";
à⑦str2+="aa";//str2=str2+”aa”è即”abcdefgaa”;
初始时,字符串池为空
à①字符串池中没有"abcdefg",在字符串池中创建"abcdefg",str指向"abcdefg"⑨的地址
à②此时字符串池中有了"abcdefg",不再创建"abcdefg",str1直接指向⑨的地址,str和str1的指向相同
à③str2等于⑨的地址
à④字符串池没有"zzzzzzzzz",要创建"zzzzzzzzz",且str5"zzzzzzzzz"的地址
à⑤输出str2地址里的内容(即⑨里的内容)
à⑥字符串池里没有"zzuu"要创建"zzuu"且str指向"zzuu"的地址,不再指向的⑨地址,其他②③的地址指向不变
à⑦字符串池中没有”abcdefgaa”,要创建”abcdefgaa”,且str2指向”abcdefgaa”的地址
二. New生成的对象:
是放在堆里面
特点:
当程序结束后,不会自动清除,必须通过Java垃圾回收机制清除分配的空间
例子:
String t=new String(“nihao”);
t里的内容存放在堆里面
三. 堆与栈
堆里和栈里的内容相等的东西的地址不相等 ?
字符串类中的方法:
==判断两个变量的内存地址是否相同
Equal判断变量里的内容是否相同
字符串中常用的方法
charAt
compareTo
indexof -1从来没有出现时输出