(1)
File.separator的作用:
文件分隔符。由于各个操作系统不一样:如WIndows的是"\",而Unix的是"/"。
所以,在程序中写路径时,用File.separator表示分隔符。如下:
application.getRealPath("/")
+"WEB- INF"+File.separator+"classes"+File.separator+"randomSwitch.properties"
输出为:
linux: 项目根目录/WEB-INF/classes/randomSwitch.properties.
windows: 项目根目录\WEB-INF\classes\randomSwitch.properties.
若直接写上"/"或"\",则在windows/linux上运行程序时,会出错.
(2)
循环的另种写法:
对于数组或list或vector的循环,
若不需要获取循环过程的index,则可以用如下方法进行循环,
比较简洁。
对于数组:
String[] strarray={"jaosn","hello","test"};
for(String str:strarray)
{
if("test".equalsIgnoreCase(str))
{
System.out.println("have a test");
}
}
for(int i=0;i<strarray.length;i++)
{
if("test".equalsIgnoreCase(strarray[i]))
{
System.out.println("have a test");
}
}
对于List:
//list是一个接口,所以不能这样声明:
//List<Person> pl=new List<Person>();
List<Person> pl=new ArrayList<Person>();
Person p=new Person();
p.setName("jason");
Person p2=new Person();
p2.setName("hwj");
pl.add(p);
pl.add(p2);
for(Person pp:pl)
{
System.out.println(pp.getName());
}
(3)
在java中,对于'\','双引号'须使用转义符.如:\\-->\ , \"-->"
(4)
数组不存在add,remove方法.
因为:
一.数组的值只能在初始化时指定,一旦指定后,数组元素就不能添加/减少(因为其长度已定死了).只能修改元素的值.
二.数组不是一个容器.
2.1
将list转换为array:
调用ArrayList的toArray方法。toArray返回一个按照正确的顺序包含此列表中所有元素的数组:
1.List list = new ArrayList();
2.list.add(new Long(1));
3.list.add(new Long(2));
4.list.add(new Long(3));
5.list.add(new Long(4));
6.Long[] l = (Long[])list.toArray();//这个语句会出现ClassCastException
应该为:
Long [] l = (Long []) list.toArray(new Long[list.size()]);
2.2
数组转换成为List。
调用Arrays的asList方法
具体用法:
String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);
2.3
String.split()方法分割的结果也是一个数组变量.
(5)
ASCII与unicode:
先从编码说起吧,计算机只认识二进制,为了能让计算机识别,我们就定义一个编码标准吧.于是就有了ASCII.
ASCII编码是目前计算机最通用的编码标准。ASCII编码用一个字节存储,因此最多能表示256个字符。
这256个字符对于英语国家来说,足够了,但对于中文等繁杂的文字系统,却远远不够,为了解决这一问题, 国际组织制定了Unicode编码.
它为每种语言中的每个字符设定了唯一的二进制编码.
它是一种可以容纳世界上所有文字和符号的字符编码方案 。
Unicode定义了字符编码方案,但没定义具体实现方案.
根据实现方案不同,分为UTF-8、UTF-16、UTF-32. UTF-8,UTF-8是互联网上使用最广的一种存储方案.
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
(6)
String,StringBuffer:
String a="abc";
String b="abc";
String c=new String("abc");
String d=new String("abc");
if(a==b)
System.out.println("a=b");
if(a==c)
System.out.println("a=c");
if(c==d)
System.out.println("c=d");
输出为:
a=b
(7)
一个抽象类,可以没有抽象方法.但有抽象方法的类,一定是抽象类.
(8)
split:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
(3.1)
public class SplitDemo {
public static String[] ss = new String[20];
public SplitDemo() {
String s = "The rain in Spain falls mainly in the plain.";
// 在每个空格字符处进行分解。
ss = s.split(" ", 2);
}
public static void main(String[] args) {
SplitDemo demo = new SplitDemo();
for (int i = 0; i < ss.length; i++)
System.out.println(ss[i]);
}
}
程序结果:
The
rain in Spain falls mainly in the plain.
(3.2)
public class SplitDemo {
public static void main(String[] args) {
String value = "192.168.128.33";
String[] names = value.split(".");
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
运行结果:
对,没看错!没有任何输出!
只要将
String[] names = value.split(".");
改为
String[] names = value.split("\\.");
就可以了。