-异常处理

异常写入日志

package javaBase.io.others;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;


//异常处理写入文件
public class ExceptionDemo {
	public static void main(String[] args) {
		int [] ary = new int[2];
		try {
			System.out.println(ary[3]);//数组下标越界
		} catch (Exception e) {
			try {
				//添加当前时间并格式化
				Date d = new Date();
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				String time = sdf.format(d);
				PrintStream ps = new PrintStream("exception.log");
				ps.println(time);//开头写入时间
				System.setOut(ps);//改变System.out的输入目的
			} catch (FileNotFoundException e1) {
				throw new RuntimeException("日志文件创建失败!");
			}
		
			e.printStackTrace(System.out);
		}
	}
}

HashSet集合的内存泄露

package javaBase.reflect;

import java.util.Collection;
import java.util.HashSet;

/*
 * 当一个对象存储到hashset中后,就不要修改那些参与计算哈希值的字段了
 * 否则修改后的对象hashcode值与存入时不同,导致不能找到这个对象和单独删除该对象导致内存泄露
 */
public class ReflectTest {
	public static void main(String[] args) {
		Collection c = new HashSet();
		Point p1 = new Point(3, 3);
		Point p2 = new Point(5, 5);
		Point p3 = new Point(3, 3);
		c.add(p1);
		c.add(p2);
		c.add(p3);
		c.add(p1);
//		p1.y = 7;
		c.remove(p1);//上面这句执行后会导致remove()找不到p1,从而不能删除
		System.out.println(c.size());
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值