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基础的主要内容,如果未能解决你的问题,请参考以下文章

java语法基础,具体内容

Java基础(十五):异常处理

java基础测试题

Java基础| Java概述与基础语法案例

夯实Java基础系列目录

一道java基础理论题