Java基础
Posted A1oe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础相关的知识,希望对你有一定的参考价值。
Java基础
注释
单行//,多行/* 注释 /
文档注释
/*
*@Description
*@Author
*/
标识符
数据类型
long num = 30L;
float num = 10.1F;
最好完全避免用浮点数进行比较 (用Bigdecimal)
强制类型转换(不能对boolean转换):(类型)变量名
数字可以用下划线区分,且不会被输出。
变量
类变量(static),实例变量,局部变量(方法内)
常量(final,不存在先后顺序)
驼峰原则(monthSalary)
类名首字母大写
包机制
一般用公司域名倒置作为包名
JavaDoc生成文档
package com.A1oe;
/**
* @author A1oe
* @version 1.0
*/
public class Hello
/**
* @param args
*/
public static void main(String[] args)
System.out.println("com.A1oe.Hello World");
cmd: javadoc -encoding UTF-8 -charset UTF-8 Hello.java
IDEA: Tools - Generate JavaDoc
一道java基础理论题
在J2EE中,利用下列构造函数准备对文件abc.txt操作,但文件abc.txt在当前目录不存在,不会产生运行时错误的是()。a) BufferedReader breader=new BufferedReader(new FileReader("abc.txt"));
b) PrintWriter out = new PrintWriter(new FileWriter(“abc.txt”),true);
c)FileInputStream fin = new FileInputStream(“abc.txt”);
d) OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(“abc.txt”));
参考答案bd
考核知识点
和文件操作有关的类的构造函数
请阐释一下为什么选这两个答案,谢谢。
如PrintWriter out = new PrintWriter(new FileWriter(“abc.txt”),true);的解释:
public FileWriter(File file)
throws IOException
根据给定的 File 对象构造一个 FileWriter 对象。
抛出:
IOException -
如果指定文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它。
所以文件不存在,可以创建的情况下,是不会报错的。
如OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(“abc.txt”));的解释:
public FileOutputStream(String name)
throws FileNotFoundException
创建一个向具有指定名称的文件中写入数据的输出文件流。创建一个新 FileDescriptor 对象来表示此文件连接。
抛出:
FileNotFoundException
- 如果文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它 。
所以文件不存在,可以创建的情况下,是不会报错的。
对于读文件的操作,如果文件不存在,则会报异常。
如BufferedReader breader=new BufferedReader(new FileReader("abc.txt"));的解释:
public FileReader(String fileName)
throws FileNotFoundException
在给定从中读取数据的文件名的情况下创建一个新 FileReader。
抛出:
FileNotFoundException
- 如果指定文件不存在,或者它是一个目录,而不是一个常规文件,抑或因为其他某些原因而无法打开进行读取。
所以文件不存在,是会报错的。
如FileInputStream fin = new FileInputStream(“abc.txt”);的解释:
public FileInputStream(String name)
throws FileNotFoundException
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。创建一个新 FileDescriptor 对象来表示此文件连接。
抛出:
FileNotFoundException - 如果该文件不存在,或者它是一个目录,而不是一个常规文件,抑或因为其他某些原因而无法打开进行读取。
所以文件不存在,是会报错的。
所以最后答案是bd 参考技术A 这最简单的原因就是,ac两个是输入流(或间接使用了输入流),也就是说,他们要从文件中读取内容,如果文件不存在,就会抛出FileNotFoundException。
但是bd两个是输出流(或者说是间接使用输出流),就是往文件里面写东西的。如果文件不存在,就会创建,不会有异常产生。 参考技术B 这个看下源码就知道了:
a、BufferedReader是FileReader的包装类,FileReader是FileInputStream的包装类,FileReader在构造函数调用调用FileInputStream的构造函数,FileInputStream的构造函数中调用了open(name)的native方法来读文件,当文件不存在时,就会报FileNotFound的错。
b、PrintWriter是FileWriter的包装类,FileWriter是FileOutputStream的包装类,FileWriter调用FileOutputStream的构造方法,只检查给定的路径的读写权限,严格意义上它也是会出错的,当没有权限操作时它也会出错的,默认情况下对当前目录操作是具有权限的。
c、FileInputStream的构造函数中调用了open(name)的native方法来读文件,当文件不存在时,就会报FileNotFound的错。
d、FileOutputStream的构造方法,只检查给定的路径的读写权限,严格意义上它也是会出错的,当没有权限操作时它也会出错的,默认情况下对当前目录操作是具有权限的。追问
源码是怎么看的。
追答你安装完JDK后,在安装目录下面有src.zip,这里面就是源码。
参考技术C ac是把文件abc.txt的内容读入内存,既然没有这个文件当然会抛出异常,bd是把内存中的内容写入到abc.txt中,如果文件不存在就创建了。你看看帮组文档就可以了。 参考技术D bd是向外输出的,当没有发现同名称的文件时,则自动创建一个,所以不会出错,但输入流不行了,必需要有这个文件才能进行输入,不然就会报异常以上是关于Java基础的主要内容,如果未能解决你的问题,请参考以下文章