Java和Scala学习日记4

来源:互联网 发布:贪玩游戏 知乎 编辑:程序博客网 时间:2024/06/11 03:33

1. static import

解析:在权限许可的范围内,允许在代码中直接引用别的类的static变量和方法。


2. Java静态块

解析:静态块在类加载时执行,并且只执行一次。如下所示:

(1)普通代码块即直接在方法或是语句中定义的代码块。

(2)构造代码块即直接写在类中的代码块。

(3)静态代码块即使用static关键字声明的代码块。

(4)同步代码块,即synchronized修饰方法和synchronized修饰代码块。

说明:Java类加载器是Java运行时环境的一部分,负责动态加载Java类到Java虚拟机的内存空间中。


3. Apache POI

解析:Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。如下所示:

(1)HSSF:提供读写Microsoft Excel格式档案的功能。

(2)XSSF:提供读写Microsoft Excel OOXML格式档案的功能。

(3)HWPF:提供读写Microsoft Word格式档案的功能。

(4)HSLF:提供读写Microsoft PowerPoint格式档案的功能。

(5)HDGF:提供读写Microsoft Visio格式档案的功能。


4. 编辑距离

解析:编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操

作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越

小,两个串的相似度越大。


5. POI操作DOCX文件

解析:POI操作DOCX文件有两种方式,即XWPFWordExtractor和XWPFDocument。其中,XWPFWordExtractor的

内部还是通过XWPFDocument来实现的。在使用XWPFWordExtractor读取docx文档时,只能获取到其文本,而不能

获取到其文本对应的属性值。在使用XWPFDocument读取docx文档时,可以获取到文本比较精确的属性信息,比如

XWPFParagraph,XWPFTable等。如下所示:

(1)XWPFParagraph:代表一个段落。

(2)XWPFRun:代表具有相同属性的一段文本。

(3)XWPFTable:代表一个表格。

(4)XWPFTableRow:表格的一行。

(5)XWPFTableCell:表格对应的一个单元格。

说明:DOC文件的操作需要导入poi-scratchpad-xxx.jar等。DOCX文件的操作需要导入poi-ooxml-xxx.jar等。


6. POI读取DOCX文件

解析:

try {    FileInputStream fis = new FileInputStream(file);    XWPFDocument xdoc = new XWPFDocument(fis);    XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);    String docx = extractor.getText();    System.out.println(docx);    fis.close();    } catch (Exception e) {    e.printStackTrace();    }
说明:public class XWPFWordExtractor extends POIXMLTextExtractor:Helper class to extract text from an 

OOXML Word file.


7. @Override is not allowed when implementing interface method

解析:Project Settings > Modules > xxx > Language level -> 8.0 - Lambdas, type annotations etc.

说明:将资源文件放到文件夹src/main/resources后,使用IDEA(Maven项目)在默认编译时,会将resources文件夹

中的资源文件一块打包进classes目录中。


8. 静态代码块初始化顺序

解析:

(1)静态代码块:用staitc声明,jvm加载类时执行,且仅执行一次。

(2)构造代码块:类中直接用{}定义,每一次创建对象时执行。

(3)执行顺序优先级:静态代码块,main(),构造代码块,构造方法。


9. IDEA中for循环快捷键

解析:fori。


10. IDEA中System.out.println()快捷键

解析:sout。


11. IDEA中main()快捷键

解析:psvm。


12. java.util.regex.Matcher和java.util.regex.Pattern;

解析:  

(1)public final class Matcher extends Object implements MatchResult:An engine that performs match 

operations on a character sequence by interpreting a Pattern.

(2)public final class Pattern extends Object implements Serializable:A compiled representation of a regular 

expression.

举个例子,如下所示:

Pattern p = Pattern.compile("a*b");Matcher m = p.matcher("aaaaab");boolean b = m.matches();


13. System.getProperty()

解析:The System class contains several useful class fields and methods. It cannot be instantiated.


14. Lucene中的IndexReader和IndexReader

解析:

(1)org.apache.lucene.index.IndexReader

public abstract class IndexReader extends Object implements Closeable:IndexReader is an abstract class, 

providing an interface for accessing a point-in-time view of an index. 

(2)org.apache.lucene.index.IndexWriter 

public class IndexWriter extends Object implements Closeable, TwoPhaseCommit, Accountable:An IndexWriter 

creates and maintains an index.


15. java.nio.file.FileSystem

解析:public abstract class FileSystem extends Object implements Closeable:Provides an interface to a file 

system and is the factory for objects to access files and other objects in the file system.


16. JavaBean

解析:

(1)所有属性为private

(2)提供默认构造方法

(3)提供getter和setter

(4)实现serializable接口


17. Object类中的toString(),equals(),hashCode()

解析:

(1)toString():getClass().getName() + '@' + Integer.toHexString(hashCode()) 

(2)equals():引用相同,克隆不同。

(3)hashCode():对象不同,整数不同。

说明:如果需要,那么重写toString(),equals(),hashCode()。


18. finalize()

解析:finalize()是Object的protected方法,子类可覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。


19. indexOf和lastIndexOf

解析:

(1)int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引。 

(2)int indexOf(String str, int startIndex):从指定索引处开始,返回第一次出现指定子字符串在此字符串中索引。 

(3)int lastIndexOf(String str):返回在此字符串中最右边出现的指定子字符串的索引。 

(4)int lastIndexOf(String str, int startIndex):从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指

定子字符串的索引。


20. Map.Entry

解析:Map是Java中的接口,Map.Entry是Map的一个内部接口。


21. IDEA生成Javadoc

解析:在"Tools->Gerenate JavaDoc"中的"Other command line arguments:"栏里输入"-encoding utf-8 -charset utf-8".

说明:Java中有三种注释,即行注释、段落注释和文档注释。

 

参考文献:

[1] Apache POI:http://poi.apache.org/download.html#POI-3.16