取得JAVA代码中的注释内容(单行、多行注释)存入一个ArrayList,如何实现!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取得JAVA代码中的注释内容(单行、多行注释)存入一个ArrayList,如何实现!相关的知识,希望对你有一定的参考价值。

/**
* 画面打开
* @request
* @session
* @dBInfoIn
* @since ver01-00
*/
public void open(aaaa request, bbbb session, cccc dBInfoIn) throws Exception
try
//pageBean初始化
setPageBean(request, session, dBInfoIn);
catch (Exception e)
e.printStackTrace();


ArrayList中存的是两条记录:
1: /** * 画面打开 * @request * @session * @dBInfoIn * @since ver01-00*/
2: //pageBean初始化

ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下:

一、同步性

ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。

二、数据增长
从内部实现机制来讲ArrayList和Vector都是使用Objec的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势,因为你可以通过设置集合的初始化大小来避免不必要的资源开销。

三、检索、插入、删除对象的效率

ArrayList和Vector中,从指定的位置(用index)检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O(1)。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行(n-i)个对象的位移操作。
LinkedList中,在插入、删除集合中任何位置的元素所花费的时间都是一样的—O(1),但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。

所以,如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是对其它指定位置的插入、删除操作,最好选择LinkedList

参考文章:
参考技术A 用filereader流读取java文件(行读取),解析每行字符串内容,若“/*”、“*/”、“//”做相应处理。 参考技术B import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Comment

public static void main(String[] args) throws IOException

FileReader fl = new FileReader("xx.java");//File name

BufferedReader bf = new BufferedReader(fl);

List<String> list = new ArrayList<String>();

String context = null;

StringBuffer sb = null;

do
context = bf.readLine();

if(context == null)
break;


if(context.trim().startsWith("//"))
list.add(context.trim());
continue;
else if(context.trim().startsWith("/**"))
if(sb != null)
list.add(sb.toString());


sb = new StringBuffer();
sb.append(context);
else if(context.trim().startsWith("*/"))
sb.append(context);
list.add(sb.toString());
else if(context.trim().startsWith("*"))
sb.append(context);


while(context != null);

for(String item: list)
System.out.println(item);



------------------
/** * @request * @session * @dBInfoIn * @since ver01-00 */
//pageBean starts本回答被提问者采纳

Java基础复习2:程序注释标识符关键字

一、程序注释
Java程序的注释一共分为三种:单行注释、多行注释以及文档注释。

  1. 单行注释 Java中单行注释是使用//来表示。//后面的语句都是注释内容。程序不会执行。
  2. 多行注释 Java中的多行注释以/*开头,以*/结尾。中间的内容都是注释内容。
    3.文档注释 文档注释其实是多行注释的变种。以/**开头,以*/结尾。中间的注释内容。可以通过Java命令提取出来显示成文档。
    请看下面实例:

    /**
    *这是一个Java入门程序
    *作者:静秋
    *时间:2018-11-02
    *这是一个文档注释
    */
    /*
    *这是Java程序入口
    *这是个多行注释
    */
    public static void main(String[] args){
    System.out.println("hello world");//在控制台输出语句  这是单行注释
    }
    

    二、分隔符
    Java语言的分隔符包括分号、方括号、圆括号、空格、圆点等。

  3. 分号
    Java语言对语句的分隔不是使用回车来完成的,Java语言采用分号(;)作为语句的分隔。所以每个Java语句使用分号作为结尾。
  4. 花括号
    花括号作用就是定义一个代码块。Java语言中,类定义部分放在代码块中,方法体部分也要放在代码块里。
    注意:花括号是成对出现的。
  5. 方括号
    方括号主要是用于访问数组元素。
  6. 圆括号
    圆括号作用比较多:定义方法时,必须使用圆括号包含形参声明。调用方法时,必须使用圆括号传入实参。表达式中作为部分优先计算。还可以作为强制类型转换符。
  7. 空格
    空格主要是分隔Java语句不同部分。
  8. 圆点
    圆点通常作为类/对象和它的成员之间的分隔符
    注意:分隔符都是使用英文。
    三、 关键字
    关键字是指Java语言中有特殊含义、不能随意使用、被保留的字符。
    关键字特点:
    1. 完全小写的字母
    2. 在IDE中显示特殊颜色的。
      四、标识符
      标识符是指在程序中我们自己定义的内容。例如:类的名字、方法的名字和变量的名字
      命名规则:
      1. 标识符可以包含:英文字母、数字、美元符号($)、下划线(_).
      2. 标识符不能以数字开头
      3. 标识符不能是关键字
        命名规范:
      4. 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)
      5. 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)
      6. 方法名规范: 同变量名规范。

以上是关于取得JAVA代码中的注释内容(单行、多行注释)存入一个ArrayList,如何实现!的主要内容,如果未能解决你的问题,请参考以下文章

注释书写格式

day02-Java基础语法

Java注释分类

Java注释

Java基础复习2:程序注释标识符关键字

eclipse中java的单行注释多行注释文档注释的快捷键