02.基础.txt

UP 返回
1.一个.java中可以有多个类,但是文件名必须和public的那个类同名
2.long定义的整数默认为int,如果范围超过int后面不加L的话就会报错
3.Integer.toBinaryString(a)	Integer.toOctalString(a)	Integer.toHexString(a)
4.浮点数默认为double类型,如果是float要在后面加F/f;double可以采用科学计数法
5.char的范围:0~65535
6.多个int连乘,若怕溢出,最好把L放在第一个int后,防止前面的int计算已经溢出了才去做L的转换
7.jdk7新特性:
	1.整数各个位之间可以用_来分割位数,便于查看
	   int b=1_2325_2215
	2.0b开头可以定义二进制整数,便于和内存中存储方式一一对应
	   int a=0b00000000000000000000000000000011
	   int c=0b0000_0000_0000_0000_0000_0000_0000_0011
8.Throwable——Error—VirtualMachineError 虚拟机错误
			|			|-OutOfMemoryError 内存溢出
			|			|-ThreadDeath 死锁
			|			
			|——Exception
					|	
					|——Checked Exception 检查异常:IOException SQLException
					|		
					|——RuntimeException
								|——NullPointerException 空指针异常
								|——ArrayIndexOutOfBoundsException 数组越界
								|——ArithmeticException 算数异常
								|——ClassCastException 类型转换异常
9.可以通过System.exit(1)来不执行到finally中的代码。而return语句不论写在try中还是catch中,最终都会走到finally,最后才会返回对应的return
10.Throwable(String message , Throwable cause)  可以创建异常链,通过已产生的异常加一个描述来构造一个新的异常
     Throwable(Throwable cause)
      initCause(Throwable cause)  
	打印时,后面的异常打印后,会继续打印出caused by 前一个异常
11.throws使用规则:当子类重写父类抛出异常的方法时,声明的异常必须是父类方法所声明异常的同类或子类
12.自动拆装箱时,当Integer的值在-128到127之间时,java会自动到缓存区(对象池)中去查找,如果有则直接构建,否则才会创建新的,所以如果有两个值一样的Integer,做==比较时会是true。但是如果不在这个范围,则仍然每次创建新的对象
	但是Double Float不存在对象常量池的概念
13.字符串用=创建出的对象,同样的值会指向常量池中的同一个地址;new创建的则是在堆中生成对应的对象
14.java文件的缓冲区满时会自动执行flush方法,但是如果没有满则不会触发
15. 使用输入流文件读取:
	FileInputStream fis=new FileInputStream("001.txt");
	InputStreamReader isr=new InputStreamReader(fis);
	int n=0;
	char[] cbuf=new char[10];
	//while((n=isr.read())!=-1){
	//	System.out.println((char)n);   //一个一个的读也可以
	//}		
	while((n=isr.read(cbuf))!=-1){
		String s=new String(cbuf,0,n);  //如果使用new String(cbuf)读字符串,会导致最后一次读的时候字符串长度不足而打印出不
		System.out.println(s);
	}

	使用输入输出流文件读取:
	FileInputStream fis=new FileInputStream("001.txt");
	InputStreamReader isr=new InputStreamReader(fis);
	FileOutputStream fos=new FileOutputStream("002.txt");
	OutputStreamWriter osw=new OutputStreamWriter(fos);
	int n=0;
	char[] cbuf=new char[10];
	while((n=isr.read(cbuf))!=-1){
		osw.write(cbuf,0,n);
		osw.flush();
	}

	使用缓冲流文件读取:
	FileInputStream fis=new FileInputStream("001.txt");
	InputStreamReader isr=new InputStreamReader(fis,"GBK");
	BufferedReader br=new BufferedReader(isr);
	FileOutputStream fos=new FileOutputStream("002.txt");
	OutputStreamWriter osw=new OutputStreamWriter(fos,"GBK");
	BufferedWriter bw=new BufferedWriter(osw);
	int n=0;
	char[] cbuf=new char[10];
	while((n=br.read(cbuf))!=-1){
		bw.write(cbuf,0,n);
		bw.flush();
	}

<!<@D:\ProjectCodes\myeclipse_ci_10\WordsCollection\refer\202202242.png@>!>








DOWN 返回