精华内容
下载资源
问答
  •  序号Sequence Number,有顺序的号码,如数字序号:1、2、3……,大写汉字也算数字序号,如:一、二、三……序号可以清晰的分清同一类事物,也可以用序号作文章的小标题。我们在写文章,特别是在写论文中经常会用...

     

    一.序号

      序号Sequence Number,有顺序的号码,如数字序号:1、2、3……,大写汉字也算数字序号,如:一、二、三……序号可以清晰的分清同一类事物,也可以用序号作文章的小标题。我们在写文章,特别是在写论文中经常会用一些数字序号,正确地运用序号,能使我们的文章层次清楚,逻辑分明,便于读者阅读和引述;目前较多论文在序号的写法上存在着不少的误区,如:层次大小不分、中文数字与阿拉伯数字混用、前后序号形式不统一,等等。用得不好,让人看着别扭,甚至会影响文章的质量,可见序号也是文章的一个重要组成部分,它的规范与否同样很重要。在评选论文时,常常会为一些文章感到惋惜,内容、文字很精彩,可数字序号的运用不规范或者混乱,让人看着不舒服。正文层次标题序号要注意大小分级,为此,我根据自己的使用习惯,并参考一些资料,在此谈谈有关数字序号的用法,对序号规范写法作一详细说明:

    、序号的结构层次顺序

    (一)数字序号的级别顺序为:

    第一层为汉字数字加顿号,例如:“一、”“二、”“三、”;

    第二层为括号中包含汉字数字,例如:“(一)”“(二)”“(三)”;

    第三层为阿拉伯数字加下脚点,例如:“1. ”“2.”“3.”;

    第四层为括号中包含阿拉伯数字,例如:“(1)”“(2)”“(3)”;

    第五层为带圈的阿拉伯数字,例如:“①”“②”“③”或者“1)”“2)”“3)”;

    第六层为大写英文字母,例如:“A.”“B.”“C.”或者“(A)”“(B)”“(C)”;

    第七层为小写英文字母,例如: “a.”“b.”“c.”或者“(a)”“(b)”“(c)”;

    ……

    数字序号级别一览表:

    第一层

    第二层

    第三层

    第四层

    第五层

    第六层

    第七层

    一、

    (一)

    1.

    (1)

    A.

    a.

    二、

    (二)

    2.

    (2)

    B.

    b.

    三、

    (三)

    3.

    (3)

    C.

    c.

     

     

     

     

     

    (A)

    (a)

     

     

     

     

     

    (B)

    (b)

     

     

     

     

     

    (C)

    (c)

     

     

    第一,

     

     

     

     

     

     

    第二,

     

     

     

     

     

     

    首先,

     

     

     

     

     

     

    其次,

     

     

     

     

    (二)理科类论文的正文层次标题序号

    理科类论文的各层次标题还可用阿拉伯数字连续编码,不同层次的2个数字之间用下圆点(.)分隔开,末位数字后面不加点号。如“1”,“1.2”,“1.2.1”等;各层次的标题序号均左顶格排写,最后一个序号之后空一个字距接排标题。如“5.3.2 测量的方法”,表示第五章第三节第二条的标题是“测量的方法”。

    注意:同一层次各段内容是否列标题应一致,各层次的下一级序号标法应一致,若层次较少可不用若干加括号的序号。

    (三)正文中图、表、公式、算式等的序号

    正文中的图、表、公式、算式等序号一律用阿拉伯数字分别依序连续编排序号,其标注形式应便于互相区别,如“图1、表2、式(5)”等;对长篇研究报告也可以分章(条)依序编码,如“图2.1、表4.2、式(3.3)”等,其前一个数字表示章(条)序号,后一个数字表示本章中图表、公式的序号。

    、文字材料中序号、标点的正确使用

    (一)“第一”、“第二”、“第三”或“首先”、“其次”等后面用顿号不规范,应该用逗号“,”,即“第一,”、“第二,”、“第三,”、“首先,”、“其次,”等。

    (二)“第一编”、“第一章”、“第一节”或“壹”的后面不用标点,与后面的文字之间空一个汉字位置即可。如“第一节 测量的方法”。

        (三)汉字数字“一”、“二”、“三”等后面用逗号不规范,应该用顿号“、”,即“一、”、“二、”、“三、”。

        (四)阿拉伯数字“1”、“2”、“3”和“A”、“B”、“C”等后面用顿号(“、”)或其它不规范,应该使用齐线墨点(实心小圆点“.”),即“ 1.”、“ 2.”、“ 3.” 或“ A.”、“ B.”、“ C.”。

    (五)带括号的序号和带圆圈的序号,如(一)(二)(三)、(1)(2)(3)、①②③等后面不再加顿号、逗号之类的标点符号。

    (六)用“一是”、“二是”、“三是”表示顺序时,可在“一是”、“二是”、“三是”之后分别用逗号。例如:“一是,”、“二是,”、“三是,”。也可以不用标点符号,直接连接下文。

    (七)用“甲”、“乙”、“丙”、“丁”表示顺序时,在“甲”、“乙”、“丙”、“丁”之后分别用顿号“、”。例如:“甲、”,“乙、”,“丙、”,“丁、”。

    (八)在“一方面”、“另一方面”之后,可以分别用逗号,也可以不用标点符号,直接连接下文。

    (九)数字序号前后一般不再用其他项目符号。

    、年份的正确书写

    (一)年份中“零”的正确使用:

    年份如用中文形式表示,如“二○○九年十月五日”,则中间的汉字数字“○”不能写成阿拉伯数字的长“0”或英语全角字符“O”,而应该用圆“○”(一般在电脑“插入”栏里“特殊符号”或“几何图形符”中选择)。“二○○九”是一串没有数位的数字,要用“○”,不宜用“零” ,例如公文中的错误写法:“二零零九”。“零”用于出现数位的一串汉字数字中,例如“三千一百零六”中,出现了数位“千”、“百”,此时应当用“零”。

    年份如用阿拉伯数字形式表示,则中间应该用长“0”表示,例如:“2009年10月5日”。但对于公文文末成文时间书写规范又有要求:《国家行政机关公文处理办法》(国务院国发〔2000〕23号)规定,公文文末的成文时间要用汉字数字来书写。例如:“2008年12月28日”应当写成“二○○八年十二月二十八日”。

    (二)公文的年份中“括号”的正确使用:

    《国家行政机关公文格式》(GB/T 9704—1999)规定,公文发文字号中的年分要写在六角括号内,而不应该用小括号“( )”或方括号“[ ]”。

    例如:潍教办字(2005)5号(不规范)

    潍教办字 [2005] 5号(不规范)

    潍教办字[2005]5号(不规范)

    潍教办字〔2005〕5号(规范)

    、汉语拼音注音字母的正确使用

    (一)大小写:句子的首字母大写;诗行的首字母大写;专有名词每个词首字母大字;标题、标语可以全部大写。

    (二)分连写:词内连写,词间分写。

    例如:“公共场所请勿吸烟”      GONG GONG CHANG SUO QING WU XI YAN(不规范)

     GONGGONG CHANGSUO QINGWU XIYAN(规范)

    例如:“中国井冈山经贸洽谈会”  ZHONGGUOJINGGANGSHANJINGMAOQIATANHUI(不规范)

     ZHONGGUO JINGGANGSHAN JINGMAO QIATANHUI(规范)

    、正确区分连接号和破折号

     (一)凡文中使用连接号的应使用“~”,而不使用“——”或者“―”。

    如:2008年3月~4月中的“~”(使用规范),而不使用“——”或者“―”。

     (二)凡文中使用破折号的应使用占两个空格的连线“——”,而不用“~”或只占一个空格的短线“―”或两个短线“――”表示。

    如:再接再厉,推进语言文字规范化工作——2009年语言文字工作总结(选取破折号,一般在电脑“插入”栏“标点符号”中查找)。

    、相邻的两个数字间顿号的使用

    (一)相邻的两个数字表示概数,要用汉字数码,中间也不要加顿号。

    例如:2、3个  5、6天   27、8岁   6、7点钟  (不规范)

    两三个   五六天   二十七八岁   六七点钟  (规范)

    (二)相邻两个数字连用,有时不是表示概数,而是一种缩略形式,中间要用顿号。

    例如:初中一、二年级    国棉六、七厂    八、九两个月    退居二、三线(规范)

    、文章正文文中标题

    一级标题:标题序号为“一、”,独占行,末尾不加标点;

    二级标题:标题序号为“(一)”,与正文字体字号相同,独占行,末尾不加标点符号;

    三级以下标题:三、四、五级标题序号分别为“1.”、“(1)”和“①”,与正文字体字号相同,可根据标题的长短确定是否独占行。若独占行,则末尾不使用标点;否则,标题后必须加句号。每级标题的下一级标题应各自连续编号。

    、注释和参考文献的序号

    文中注释极少量的可用“*”、“**”表示,一般用圆圈的阿拉伯数字依序标注,如“①、②、③……”,标在所注对象的右上角。页脚或文末注释中对于相同内容的注释条目可合并写,如“⑥⑨马斯洛,《存在心理学探索》,昆明:云南人民出版社,1987年,130、126页”。

    参考文献的序号标注一般用方括号的阿拉伯数字,如“[1]、[2]、[3]……”,也有不加括号的。文末参考文献与文中内容对应的,应在相应文字的右上角依序标出序号。

    、附录序号

    论文的附录序号一般用大写英文字母标示,如“附录A、附录B、附录C……”。附录中的图、表、式、参考文献等另行编序号,与正文分开,也一律用阿拉伯数字编码,但在数码前冠以附录序码,如:图A1、表B2、式(C3)、文献[D4]等。

    十一、页码序号

    页码标注由正文的首页开始,作为第1页,可以标注在页眉或页脚的中间或右边。封面、封二、封三和封底不编入页码。可以将扉页、序、目次页等前置部分单独编排页码。各页页码应标注在相同位置。

     

    十二常见不规范之序号有:

    1、

    A、

    (一)、

    (1)、

    ①、

    第一:

    第一、

    2、

    B、

    (二)、

    (2)、

    ②、

    第二:

    第二、

    3、

    C、

    (三)、

    (3)、

    ③、

    第三:

    第三、

    规范的序号用法如下:

    1.

    A.

    (一)

    (1)

    第一,

    首先,

    2.

    B.

    (二)

    (2)

    第二,

    其次,

    3.

    C.

    (三)

    (3)

    第三,

    再次,

    转载于:https://www.cnblogs.com/zhangj95/p/5020357.html

    展开全文
  • 总共有两情况:同一切面中通知执行顺序、不同切面中的通知执行顺序。  首先让我们看下 1) 同一切面中通知执行顺序:如图6-6所示。   图6-6 同一切面中的通知执行顺序 而如果在同一切面中...
     
    

           如果我们有多个通知想要在同一连接点执行,那执行顺序如何确定呢?Spring AOP使用AspectJ的优先级规则来确定通知执行顺序。总共有两种情况:同一切面中通知执行顺序、不同切面中的通知执行顺序。

           首先让我们看下


    1) 同一切面中通知执行顺序:如图6-6所示。

     

    图6-6 同一切面中的通知执行顺序

    而如果在同一切面中定义两个相同类型通知(如同是前置通知或环绕通知(proceed之前))并在同一连接点执行时,其执行顺序是未知的,如果确实需要指定执行顺序需要将通知重构到两个切面,然后定义切面的执行顺序。


    java代码:
    错误“Advice precedence circularity error”:说明AspectJ无法决定通知的执行顺序,只要将通知方法分类并按照顺序排列即可解决。


    2)不同切面中的通知执行顺序:当定义在不同切面的相同类型的通知需要在同一个连接点执行,如果没指定切面的执行顺序,这两个通知的执行顺序将是未知的。

    如果需要他们顺序执行,可以通过指定切面的优先级来控制通知的执行顺序。

    Spring中可以通过在切面实现类上实现org.springframework.core.Ordered接口或使用Order注解来指定切面优先级。在多个切面中,Ordered.getValue()方法返回值(或者注解值)较小值的那个切面拥有较高优先级,如图6-7所示。

     

    图6-7 两个切面指定了优先级


    对于@AspectJ风格和注解风格可分别用以下形式指定优先级:


     


    在此我们不推荐使用实现Ordered接口方法,所以没介绍,示例代码在cn.javass.spring.chapter6. OrderAopTest文件中。


    原创内容,转载请注明出处【http://sishuok.com/forum/blogPost/list/0/2474.html

    展开全文
  • 那么怎么样得到所有的具体出栈顺序呢,有两思路可以解决这个问题。 1.先得到入栈字符串的全排列,然后根据出栈顺序的规律进行筛选。 那么筛选的条件是什么? 举例说明 入栈顺序:1 2 3 4 5 出栈顺序:3 2 1 5...

    先给出算所有出栈可能的个数的公式,由卡特兰数可以得到

    n = (2n!)/(n! * (n+1)!)

    那么怎么样得到所有的具体出栈顺序呢,有两种思路可以解决这个问题。

    1.先得到入栈字符串的全排列,然后根据出栈顺序的规律进行筛选。

    那么筛选的条件是什么?

    举例说明

    入栈顺序:1 2 3 4 5
    出栈顺序:3 2 1 5 4

    出栈的每个元素后面比该元素小的元素,应该按从大到小的相对顺序排列

    由于入栈不一定按照从小到大的顺序,可以推出:

    出栈的每个元素后面比该元素的原下标小的元素,应该按原下标从大到小的相对顺序排列

    原理:
    最理想的情况下,从小到大入栈,从大到小出栈,但是因为出栈是随机的,也就是在入栈还没结束的情况下就可以出栈。这样,就会出现一些小的数提前出栈的现象。但是那些“守规矩”的小数相对位置是没有变化的。比如入栈12345,结果在4入栈之前3不听话先出去了。但是这不会影响12的顺序,12的相对顺序还是保持着 12入栈,21出栈。因为12是守规矩的。
    下面给出代码,代码是建立在从小到大入栈的情况下的

    include

    include

    include

    using namespace std;
    int flag;
    void perm(char a[], int l, int r)
    {
    int x,y,z;
    if(l == r)
    {
    flag = 1;
    for(x=0;x

    展开全文
  • 算是温习吧。问题比较基础,但是也比较...但是这三个部分的执行顺序是什么,这是我们所关心的,也是本文所要讨论的。 下面先看一段简单的代码。 [cpp] view plaincopy #include   

    算是温习吧。问题比较基础,但是也比较重要。(虽然是C,但是很经典)

    for循环可以说在每个程序中都少不了的,语句头包括三个部分:初始化,判读条件,一个表达式。

    但是这三个部分的执行顺序是什么,这是我们所关心的,也是本文所要讨论的。

    下面先看一段简单的代码。

    [cpp]  view plain copy
    1. #include <stdio.h>  
    2.   
    3. int main()  
    4. {  
    5.     int x, a;  
    6.       
    7.     for (x=0,a=0; a<=1 && !x++; a++)  
    8.     {  
    9.         a++;  
    10.     }  
    11.       
    12.     printf("%d", a);  
    13.     return 0;  
    14. }  

    代码很简单,可是打印结果呢?

    有的朋友可能会想当然的认为,  打印结果是1.

    可是,真的是1吗?   复制到编译器上跑跑,奇迹般的发现,其实是2.

    下面就分析下这简单代码。


    第一步:初始化定义,x = 0, a = 0;

    第二步:a小于1, x 的非为1,符合循环条件

    第三步:x++后x自增为1.

    第四步:进入循环体,a++,a自增为1.

    第五步:执行循环语句头中的a++,a自增为2.

    第六步:执行循环语句头的判读条件,a=2>1,故不满足,不执行循环语句。

    第七步:打印a的值为2.


    怎么样,现在豁然开朗了吧。(如果还是不懂...那就抱歉了。)


    从这个例子,我们可以得出如下结论:

    执行顺序是:初始化--判断--函数体——然后for循环的第3句--判断——函数体---for循环的第三句--判断……


    下面解答几点疑惑:

    1、第一次例如初始化i=0,是否还执行后面的i++或++i?

    第一次先初始化,然后判断,i++就不执行了

    2、第一次完了以后,初始化这句就不用了,是先执行i++还是限制性判断语句呢?

    先执行i++

    3、现在知道是先执行i++,再执行判断语句,i++不是后++吗,例如i为1,那i++后执行判断语句,i是几呢?

    i是2.

    4、好像i++和++i在for()里时结果都一样。

    都一样,for语句头的执行顺序决定了这两个写法都一样,都是i++或这++i这两句执行完了再进行判断,此时(两种情况)i已经加1了。


    分析了这么多,相信大家也都懂了。

    留个经典的例子,让大家自己去分析吧。

    [cpp]  view plain copy
    1. #include <stdio.h>  
    2.   
    3. int main( )  
    4. {  
    5.     int i = 0, j = 10;  
    6.     for(i=0; i<j; i++,j--)  
    7.     {  
    8.         if(j==10)  
    9.         {  
    10.             printf("%d,%d ",i,j);  
    11.             j--;  
    12.         }  
    13.         j++;  
    14.     }  
    15.     printf("%d,%d ",i,j);  
    16.     return 0;  
    17. }  

    打印结果:

    0,10 9,9 

    如果不懂的,可以参照下面这个对上述例子逐句打印的例子,应该会有助于理解。

    [cpp]  view plain copy
    1. #include <stdio.h>  
    2.   
    3. int print1(int i,int j)  
    4. {  
    5.     printf("执行判断条件,i=%d,j=%d \n",i,j);  
    6.     return 1;  
    7. }  
    8.   
    9. int main( )  
    10. {  
    11.     int i = 0, j = 10;  
    12.       
    13.     for(i=0;((print1(i,j)) && (i<j));  
    14.         i++,j--,printf("执行for()中的第三个语句,i=%d,j=%d \n",i,j))  
    15.     {  
    16.         if(j==10)  
    17.         {  
    18.             printf("%d,%d ",i,j);  
    19.             j--;  
    20.         }  
    21.         j++;  
    22.         printf("执行for循环体中的最后一句,i=%d,j=%d\n ",i,j);  
    23.     }  
    24.     printf(" %d,%d ",i,j);  
    25.     return 0;  
    26. }  

    打印结果:

    执行判断条件,i=0,j=10 

    0,10 执行for循环体中的最后一句,i=0,j=10

     执行for()中的第三个语句,i=1,j=9 

    执行判断条件,i=1,j=9 

    执行for循环体中的最后一句,i=1,j=10

     执行for()中的第三个语句,i=2,j=9 

    执行判断条件,i=2,j=9 

    执行for循环体中的最后一句,i=2,j=10

     执行for()中的第三个语句,i=3,j=9 

    执行判断条件,i=3,j=9 

    执行for循环体中的最后一句,i=3,j=10

     执行for()中的第三个语句,i=4,j=9 

    执行判断条件,i=4,j=9 

    执行for循环体中的最后一句,i=4,j=10

     执行for()中的第三个语句,i=5,j=9 

    执行判断条件,i=5,j=9 

    执行for循环体中的最后一句,i=5,j=10

     执行for()中的第三个语句,i=6,j=9 

    执行判断条件,i=6,j=9 

    执行for循环体中的最后一句,i=6,j=10

     执行for()中的第三个语句,i=7,j=9 

    执行判断条件,i=7,j=9 

    执行for循环体中的最后一句,i=7,j=10

     执行for()中的第三个语句,i=8,j=9 

    执行判断条件,i=8,j=9 

    执行for循环体中的最后一句,i=8,j=10

     执行for()中的第三个语句,i=9,j=9 

    执行判断条件,i=9,j=9 

     9,9 








    下面讲述for循环在遍历过程中的使用


    J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。

    在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。

    对于遍历数组,这个循环一般是采取这样的写法:

    清单1:遍历数组的传统方式

    /* 建立一个数组 */

    int[] integers = {1, 2, 3, 4};

    /* 开始遍历 */

    for (int j = 0; j<integers.length; j++){

    int i = integers[j];

    System.out.println(i);

    }

    而对于遍历Collection对象,这个循环则通常是采用这样的形式

    清单2:遍历Collection对象的传统方式

    /* 建立一个Collection */

    String[] strings = {"A", "B", "C", "D"};

    Collection stringList = java.util.Arrays.asList(strings);

    /* 开始遍历 */

    for (Iterator itr = stringList.iterator(); itr.hasNext();) {

    Object str = itr.next();

    System.out.println(str);

    }

    而在Java语言的最新版本――J2SE 1.5中,引入了另一种形式的for循环。借助这种形式的for循环,现在可以用一种更简单地方式来进行遍历的工作。

    1. 第二种for循环

    不严格的说,Java的第二种for循环基本是这样的格式:

    for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体

    借助这种语法,遍历一个数组的操作就可以采取这样的写法:

    清单3:遍历数组的简单方式

    /* 建立一个数组 */

    int[] integers = {1, 2, 3, 4};

    /* 开始遍历 */

    for (int i : integers) {

    System.out.println(i);/* 依次输出“1”、“2”、“3”、“4” */

    }

    这里所用的for循环,会在编译期间被看成是这样的形式:

    清单4:遍历数组的简单方式的等价代码

    /* 建立一个数组 */

    int[] integers = {1, 2, 3, 4};

    /* 开始遍历 */

    for (int 变量名甲 = 0; 变量名甲<integers.length; 变量名甲++)="" {

    System.out.println(integers[变量名甲]);/* 依次输出“1”、“2”、“3”、“4” */

    }

    这里的“变量名甲”是一个由编译器自动生成的不会造成混乱的名字。

    而遍历一个Collection的操作也就可以采用这样的写法:

    清单5:遍历Collection的简单方式

    /* 建立一个Collection */

    String[] strings = {"A", "B", "C", "D"};

    Collection list = java.util.Arrays.asList(strings);

    /* 开始遍历 */

    for (Object str : list) {

    System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */

    }

    这里所用的for循环,则会在编译期间被看成是这样的形式:

    清单6:遍历Collection的简单方式的等价代码

    /* 建立一个Collection */

    String[] strings = {"A", "B", "C", "D"};

    Collection stringList = java.util.Arrays.asList(strings);

    /* 开始遍历 */

    for (Iterator 变量名乙 = list.iterator(); 变量名乙.hasNext();) {

    Object str = 变量名乙.next();

    System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */

    }

    这里的“变量名乙”也是一个由编译器自动生成的不会造成混乱的名字。

    因为在编译期间,J2SE 1.5的编译器会把这种形式的for循环,看成是对应的传统形式,所以不必担心出现性能方面的问题。

    不用“foreach”和“in”的原因

    Java采用“for”(而不是意义更明确的“foreach”)来引导这种一般被叫做“for-each循环”的循环,并使用“:”(而不是意义更明确的“in”)来分割循环变量名称和要被遍历的对象。这样作的主要原因,是为了避免因为引入新的关键字,造成兼容性方面的问题――在Java语言中,不允许把关键字当作变量名来使用,虽然使用“foreach”这名字的情况并不是非常多,但是“in”却是一个经常用来表示输入流的名字(例如java.lang.System类里,就有一个名字叫做“in”的static属性,表示“标准输入流”)。

    的确可以通过巧妙的设计语法,让关键字只在特定的上下文中有特殊的含义,来允许它们也作为普通的标识符来使用。不过这种会使语法变复杂的策略,并没有得到广泛的采用。

    “for-each循环”的悠久历史

    “for-each循环”并不是一个最近才出现的控制结构。在1979正式发布的Bourne shell(第一个成熟的UNIX命令解释器)里就已经包含了这种控制结构(循环用“for”和“in”来引导,循环体则用“do”和“done”来标识)。

    2. 防止在循环体里修改循环变量

    在默认情况下,编译器是允许在第二种for循环的循环体里,对循环变量重新赋值的。不过,因为这种做法对循环体外面的情况丝毫没有影响,又容易造成理解代码时的困难,所以一般并不推荐使用。

    Java提供了一种机制,可以在编译期间就把这样的操作封杀。具体的方法,是在循环变量类型前面加上一个“final”修饰符。这样一来,在循环体里对循环变量进行赋值,就会导致一个编译错误。借助这一机制,就可以有效的杜绝有意或无意的进行“在循环体里修改循环变量”的操作了。

    清单7:禁止重新赋值

    int[] integers = {1, 2, 3, 4};

    for (final int i : integers) {

    i = i / 2; /* 编译时出错 */

    }

    注意,这只是禁止了对循环变量进行重新赋值。给循环变量的属性赋值,或者调用能让循环变量的内容变化的方法,是不被禁止的。

    清单8:允许修改状态

    Random[] randoms = new Random[]{new Random(1), new Random(2), new Random(3)};

    for (final Random r : randoms) {

    r.setSeed(4);/* 将所有Random对象设成使用相同的种子 */

    System.out.println(r.nextLong());/* 种子相同,第一个结果也相同 */

    }

    3. 类型相容问题

    为了保证循环变量能在每次循环开始的时候,都被安全的赋值,J2SE 1.5对循环变量的类型有一定的限制。这些限制之下,循环变量的类型可以有这样一些选择:

    循环变量的类型可以和要被遍历的对象中的元素的类型相同。例如,用int型的循环变量来遍历一个int[]型的数组,用Object型的循环变量来遍历一个Collection等

    清单9:使用和要被遍历的数组中的元素相同类型的循环变量

    int[] integers = {1, 2, 3, 4};

    for (int i : integers) {

    System.out.println(i);/* 依次输出“1”、“2”、“3”、“4” */

    }

    清单10:使用和要被遍历的Collection中的元素相同类型的循环变量

    Collection< String> strings = new ArrayList< String>();

    strings.add("A");

    strings.add("B");

    strings.add("C");

    strings.add("D");

    for (String str : integers) {

    System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */

    }

    循环变量的类型可以是要被遍历的对象中的元素的上级类型。例如,用int型的循环变量来遍历一个byte[]型的数组,用Object型的循环变量来遍历一个Collection< String>(全部元素都是String的Collection)等。

    清单11:使用要被遍历的对象中的元素的上级类型的循环变量

    String[] strings = {"A", "B", "C", "D"};

    Collection< String> list = java.util.Arrays.asList(strings);

    for (Object str : list) {

    System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */

    }

    循环变量的类型可以和要被遍历的对象中的元素的类型之间存在能自动转换的关系。J2SE 1.5中包含了“Autoboxing/Auto-Unboxing”的机制,允许编译器在必要的时候,自动在基本类型和它们的包裹类(Wrapper Classes)之间进行转换。因此,用Integer型的循环变量来遍历一个int[]型的数组,或者用byte型的循环变量来遍历一个Collection< Byte>,也是可行的。

    清单12:使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量

    int[] integers = {1, 2, 3, 4};

    for (Integer i : integers) {

    System.out.println(i);/* 依次输出“1”、“2”、“3”、“4” */

    }

    注意,这里说的“元素的类型”,是由要被遍历的对象的决定的――如果它是一个Object[]型的数组,那么元素的类型就是Object,即使里面装的都是String对象也是如此。

    可以限定元素类型的Collection

    截至到J2SE 1.4为止,始终无法在Java程序里限定Collection中所能保存的对象的类型――它们全部被看成是最一般的Object对象。一直到J2SE 1.5中,引入了“泛型(Generics)”机制之后,这个问题才得到了解决。现在可以用Collection< T>来表示全部元素类型都是T的Collection。

    展开全文
  • SQL执行顺序

    千次阅读 2018-08-27 08:15:44
    下面我会通过一个小例子,看看大家是否真正了解SQL。...这里有A-F个选项,大家可以思考选择一下… 最终的答案是D,即按照先执行FROM子句,然后WHERE子句,最后是SELECT部分。 针对上面的示例,让我们真实构...
  • N个数依次入栈,出栈顺序有多少

    千次阅读 2017-08-14 21:48:21
    2) 如果元素a在2号位置,那么一定有一个元素比a先出栈,即有f(1)可能顺序(只能是b),还剩c、d,即f(2), 根据乘法原理,一共的顺序个数为f(1) * f(2); 3) 如果元素a在3号位置,那么一定有两个元素比1先出栈...
  • 双网卡绑定,七bond模式说明

    千次阅读 2018-05-16 16:57:08
    第一模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略)特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡...
  • H3C防火墙NAT类型及处理顺序

    万次阅读 2019-04-19 15:34:22
    H3C防火墙NAT处理顺序 ...H3C V7产品支持的NAT按照组网方式可分为以下几: (1) 传统NAT 报文经过NAT设备时,在NAT接口上仅进行一次源IP地址转换或一次目的IP地址转换。对于内网访问外网的报文,在出...
  • (4)系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K开头的文件,系统将终止对应的服务;对于以S开头的文件,系统将启动对应的服 (5)查看运行级别用:runlevel ...
  • 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少呢? 请填写该整数,不要填写任何多余的内容或说明文字。 题目答案: 1598180 题目思路: 填空,题目,...
  • Redis的六种特性及使用场景

    万次阅读 2017-05-17 11:42:55
    Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据结构是简单的key-value类型,value其实不仅是String,也...
  • UML六种依赖关系

    万次阅读 多人点赞 2018-02-12 11:47:09
    在UML类图中,常见的有以下几关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1. 泛化(Generalization)【泛化关系...
  • 软件工程——六种模型

    千次阅读 2020-01-21 17:36:37
    瀑布模型 思想:1.从制作时间上按工序把问题化简 2.将功能实现与制作分开便于分工... 特点:1.时间顺序性和依赖性 2.推迟实现的观点 3.质量保证的观点 优点:1.奠定了软件工程方法的基础; 2、流水依赖...
  • 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl) 注:这是我在网上看到的一篇很好的文章,拿出来分享........ 什么是网络字节顺序和主机字节顺序呢? 在进行网络编程时,需要进行转换以统一...
  • 数据校验的六种方式

    万次阅读 2016-07-18 10:23:02
    数据校验是为保证数据的完整性,用一指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,说明数据是完整的。
  • LinkedHashMap如何保证顺序

    千次阅读 2019-07-13 15:46:44
    LinkedHashMap使用的也较为频繁,它基于HashMap,用于HashMap的特点,又增加了双链表的结构,从而保证了顺序性,本文主要从源码的角度分析其如何保证顺序性,accessOrder的解释,以及常用方法的阐释
  • C语言的运算符顺序

    千次阅读 2019-09-20 21:33:31
    说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->...
  • 一旦设置了权重,就说明这个(些)要素在进行校验的时候,会比其他要素更加重要。 在很多时候,独立设置的权重有着很重大的意义。如下图所示: 要用4个区域的钾含量要进行计算,那么就从四个区域布点进行采样,用...
  • C#播放声音【六种方法】

    万次阅读 多人点赞 2016-11-22 15:05:31
    C#中声音的播放主要有六种方法: 1.播放系统事件声音  2.使用SoundPlayer 3.使用API函数播放 4.使用axWindowsMediaPlayer的COM组件来播放 5.Microsoft speech object Library 6.使用directX 1.播放...
  • 六种编译模式概述

    千次阅读 2005-07-20 10:43:00
    六种编译模式概述 Turbo C 提供了六种编译模式。编译模式有时也称为寻址模式或内存模式,因为它处理的就是如何在内存中为程序,数据,堆栈分配空间并存取它们,这六种模式是:微模式tiny,小模式small, 紧凑模式...
  • UML顺序

    万次阅读 2013-01-21 16:07:27
    十一中的三将会在“基础”段落中介绍,另外两类型将会在“超越基础”中介绍,而那剩余的六种我将会留在另一篇文章中介绍。(嗨,这是一篇文章而不是一本书。我希望你在一天中看完这部分!) 变体 变体...
  • 顺序表取元素数据 七、主函数定义 注1. typedef 解释 注2. 链表知识点总结 一、顺序表定义及特点 1.顺序表定义 用数组存储线性表,称作线性表的顺序存储结构或顺序映像,用这种方法存储的线性表称作顺序...
  • 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少呢?请填写该整数,不要填写任何多余的内容或说明文字。和java组的第七题一样,详情见 ...
  • 重新系统的过一遍数据结构现在先回顾下它的定义#define MaxSize 50 //定义线性表的最大长度 typedef struct{ ElemType data[MaxSize]; //顺序表的元素 int length; //顺序表的当前长度 }SqList; //
  • Linux启动过程(开机启动顺序

    千次阅读 2017-05-17 13:38:19
    这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。 启动第二步--读取MBR 众所周知,硬盘上...
  • 届蓝桥杯-牌型

    千次阅读 2017-04-05 15:19:30
    如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少呢?请填写该整数,不要填写任何多余的内容或说明文字。#include"iostream" using namespace std;int n
  • RocketMQ顺序、重复问题

    千次阅读 2017-09-06 21:02:42
    消息的顺序问题 消息的重复问题   RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的?   关键特性及其实现原理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,565
精华内容 77,826
关键字:

六种说明顺序