java实用小知识点

(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("\\.");
就可以了。

你可能感兴趣的:(java,职场,休闲)