Java基础点滴记录

1、在Java正则表达式中点号(.)可以代表一个中文字符;

2、Collections.sort()使用-返回负数值的对象排在前面,正值在后面:

public static void main(String[] args){
List<Integer> list = new ArrayList<Integer>();
    list.add(2);
    list.add(1);
    list.add(0);
    list.add(3);
    Collections.sort(list, new Comparator<Integer>(){
        @Override
        public int compare(Integer o1, Integer o2) {
            if(o1.intValue() >o2.intValue()){
                return 1;
            }
            if(o1.intValue() < o2.intValue()){
                return -1;
            }
            return 0;
        }
    });
    System.out.println(list);
}
结果:[0, 1, 2, 3]

3、如何将System.out.println()打印输出到指定的文件中,如下:

public static void main(String[] args) {
 try{
            PrintStream ps = new PrintStream("D:/log.txt");
            System.setOut(ps);
            System.out.println("print log to file");
        }catch(FileNotFoundException e){
            e.printStackTrace();
        }
 new Thread(new Runnable() {
 public void run() {
 System.out.println("I am thread log");
 }
 }).start();
}

  说明:System类的out属性是全局静态变量,使得整个系统都会写入该文件,即使在其它线程里的打印;

         public final static PrintStream out = nullPrintStream();

4、关于Map的排序

(1)、对Map的键进行排序的方法,  可以使用TreeMap的数据结构,传递一个比较器给其构造函数:

    TreeMap(Comparator<? super K> comparator) 
          构造一个新的、空的树映射,该映射根据给定比较器进行排序。

(2)、对Map的值进行排序,先将其转成List对象后再排序,如下:   

Map<String,Integer>  countMap=new HashMap<String,Integer>();
for(String s:readLine){
String[] split = s.split("modelName");
String r = "modelName"+split[1];
Integer integer = countMap.get(r);
countMap.put(r, (integer==null?1:integer+1));
}
List<Entry<String, Integer>> entrySet = new ArrayList<Map.Entry<String,Integer>>(countMap.entrySet());
Collections.sort(entrySet,new Comparator<Entry<String, Integer>>() {
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
if(o1.getValue() > o2.getValue()){
return -1;
}
if(o1.getValue()<o2.getValue()){
return 1;
}
return 0;
}
});


5、如何使用命令行编译执行java文件,依赖包的使用:

(1)编译

110205_R8SP_1159254.jpg

(2)执行:

110108_UAGm_1159254.png

6、如何执行带有包路径的类:

(1)Java文件:       

package com.jd.jcc;

public class Test{
        public static void main(String[] args){
            System.out.println("Test class ");
        }
    }

(2)执行指令(注意-d后面那个点,代表放在当前路径):

174227_JV6G_1159254.png

 

7、快速实现对象深拷贝

public static Object deepClone(Object obj) throws IOException, ClassNotFoundException{
        /* 写入当前对象的二进制流 */  
        ByteArrayOutputStream bos = new ByteArrayOutputStream();  
        ObjectOutputStream oos = new ObjectOutputStream(bos);  
        oos.writeObject(obj);  
  
        /* 读出二进制流产生的新对象 */  
        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());  
        ObjectInputStream ois = new ObjectInputStream(bis);  
        return ois.readObject();
    }

转载于:https://my.oschina.net/u/1159254/blog/506339

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值