计数器相关知识
-
CSS计数器计数器步骤:1、设置计数器的名称,同时设置初始值。 例:counter-reset: like ;(默认值为0)2、设置计数器的自增。 例: counter-increment: like 1;(当没有给值时,初始值为1)3、把Increment放置在自增的标签内。实例:html部分:<ol> <li>吃饭</li> <li>睡觉</li> <li>玩耍</li></ol>css部分:ol{ counter-reset : like;}li{ counter-increment : like 1;}li:before{ content : counters(like) '、' color:blue;}注意:reset解决兼容性;counter-reset: like 1; 分隔符用空格,表示初始值1;counter-reset: like; 当没有初始值,默认0;多个计数器的名称
-
CSS 计数器简介CSS 计数器(counter)是由 CSS 维护的变量,其主要用途是,可以通过指定的规则来计算节点元素的使用次数。 计数器的使用很简单,分为以下三步: 初始化计数器。 指定增量规则。 应用计数器。 这三步分别对应这计数器的三个属性和方法: counter-reset counter-increment counter()/counters() 下面使用一个例子,来熟悉这些规则。 首先,我们拥有一个如下的列表。 <ul> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ul> 接下来我们使用计数器来为这个列表前面加上序
-
你可能不知道的 CSS 计数器前言CSS 里面的伪元素其实是非常好用的,但是经常容易被大家忽略,伪元素里面常用到的content 属性,可能现在很多人仅仅以为 content 属性的值只支持字符串,除了字符串外常用到的还有 uri、counter ,今天所要介绍的就是 conter(计数器)。先看如下的例子:<div> <h3>桃翁</h3> <h3>介绍</h3> <h3>css 计数器</h3></div>根据如上的 HTML 你是否有办法不通过 JavaScript ,仅仅用 CSS 在 title 前面增加 Title number: 呢?CSS 计数器基本概念如果仅仅增加一个 Title,大家都知道通过伪元素(:before 或者:after),设置 content 为 Title,但是如何自动根据 h3 出现的顺序来
-
网站计数器 web映射站点的网站计数器的操作 <%@ page import="java.math.BigInteger" %> <%@ page import="java.io.File" %> <%@ page import="java.util.Scanner" %> <%@ page import="java.io.FileInputStream" %> <%@ page import="java.io.PrintStream" %> <%@ page import="java.io.FileOutputStream" %> <%@ page import="java.util.zip.InflaterOutputStream" %><%-- Created by IntelliJ IDEA. User: ming Date: 19-3-12 Time: 下午10:25 To change this templa
计数器相关课程
计数器相关教程
- 3. 方法表计数器与方法表 字段表后边紧跟的是方法表计数器,方法表计数器后边紧跟的是方法表。定义:方法表计数器(methods_count)与方法表不可分割,这里我们对两部分结构一起讲解。方法表计数器(methods_count):记录方法表中字段的数量,为无符号数类型。方法表(methods):存储了当前类或者当前接口中的 public 方法,protected 方法,default 方法,private 方法等。方法表为表结构类型。Tips:Class文件是通过Java文件编译而来的,如果文件中有方法,就会将方法的信息存储到方法表,并通过方法表计数器进行方法的计数。方法表计数器无符号数结构示意图:与其他计数器一样,方法表计数器(methods_count)是一个无符号数结构类型的数据,u2 大小。方法表-表结构类型示意图:方法表是一个表结构的类型数据,与前文所讲解的字段表结构一样。一个method_info中会存储很多方法的特征值,我们通过如下示例方法进行举例:public String get(String name) { return "";}对于get 方法,method_info 中会存储如下信息:方法的修饰符 public:还记的我们上节所讲述的 access_flag 吗?access_flag 对应表中有一个 ACC_PUBLIC 就代表了 public 修饰符,他对应的值为 0x0001,此处的标记也需要使用到这个表。都是通用的哦;方法名称:get 方法;方法的参数:String name;方法的返回值类型: String 类型的返回值。通过如上方法特征值的共同修饰,完成了一个 method_info 的存储,也就完成了一个方法的存储。
- 4.属性表计数器与属性表 方法表后边紧跟的是属性表计数器,属性表计数器后边紧跟的结构为属性表。至此,Class 文件的全部结构就讲解完了。回顾之前的知识,Class 文件结构是以魔数开头,以属性表结尾的。定义:属性表计数器(attributes_count)与属性表不可分割,这里我们对两部分结构一起讲解。属性表计数器(attributes_count):记录属性表中属性的数量,为无符号数类型。属性表(attributes):属性表(attributes)与 Class 文件中其他的数据项目要求严格的顺序、长度和内容不同,属性表集合的限制稍微宽松一些,不再要求各个属性表具有严格的顺序,并且只要不与已有属性名重复,任何人实现的编译器都可以向属性表中写入自己定义的属性信息,Java 虚拟机运行时会忽略掉它不能识别的属性。Tips:学习者对属性这一概念并不陌生了,这里不多加赘述,但是我们重点要关注下属性表的两大特点:一个是限制宽松,无顺序长度要求;一个是开发者可以自己向属性表中添加不重复的属性。言外之意是属性表作为 Class 文件的一个结构,是非常灵活的,且没有明确的长度大小规定。此部分知识我们稍作了解即可。属性表计数器无符号数结构示意图:与其他计数器一样,属性表计数器(attributes_count)是一个无符号数结构类型的数据,u2 大小。属性表-表结构类型示意图:属性表也是一个表结构类型,与字段表、方法表结构类似,但是属性表没有固定的长度和顺序限制,此处我们了解下其结构即可。
- 6. 常量池计数器与常量池 Tips:前文提出过,主版本号后边紧跟的是什么,现在我们揭开答案,主版本号后边紧跟的是常量池计数器,常量池计数器后边紧跟的是常量池。那么常量池后边紧跟的是什么?此处又提出问题,我们后续讲解会有解答。定义:我们先来看下两者的定义。常量池计数器:记录常量池中的常量的数量。由于常量池中的常数的数量是不固定的,所以在常量池的入口放置了一个 u2 类型的数据,来代表常量池容器记数值(constant_pool_count)。常量池计数器也是无符号数类型数据。常量池:Class 文件中的资源仓库,它是 Class 文件结构中与其他项目关联最多的数据类型,也是占用Class文件空间最多的数据项目之一,同时它还是 Class 文件中第一个出现的表类型数据项目。Tips:相信学习者对常量池的兴趣会比较大,为什么这么说呢?从常量池定义中,我们看到了一句话:“它还是Class文件中第一个出现的表类型数据项目”。表类型数据,终于等到了 Class 文件的表类型数据结构,我们本节会为学习者提供表类型的机构示意图。常量池计数器无符号数结构示意图:我们还是要按照 Class 文件的结构顺序一步一步来说,先要搞明白常量池计数器,然后再去学习表类型的常量池。常量池计数器,我们对于这种无符号数结构其实已经非常的了解了,所以此处我们点到即止,了解常量池计数器的定义及作用,了解了常量池计数器占用 u2 大小即可。常量池表结构示意图:我们终于接触到了 Class 文件中的表结构,那么我们先睹为快,然后再讲解常量池的重要知识点。常量池中存储的数据:常量池中主要存放着两种常量,字面量(Literal)和符号引用(Synbolic References)。字面量包括:文本字符、声明为 final 的常量值、基础数据类型的值等;符号引用包括:类和接口的全限定名、字段的名称和描述符、方法的名称和描述符。cp_info类型:cp_info 又可细分为 14 种结构类型。下表中第二列所说的标志,是指每一种数据类型的标记值,此处做简单了解即可。
- 2. 字段表计数器和字段表 上节课程抛出了问题,接口索引集合后边紧跟的结构是什么?这里我们来进行解答,后边紧跟的是字段表计数器,字段表计数器后边紧跟的是字段表。定义:字段表计数器(fields_count)与字段表不可分割,这里我们对两部分结构一起讲解。字段表计数器(fields_count):记录字段表中字段的数量,为无符号数类型。字段表(fields):字段表(fields)用于描述接口或者类中声明的变量。字段(field)包括类级变量(即静态变量)以及实例变量(即:非静态变量),但不包括在方法内部声明的局部变量。字段表为表类型结构。Tips:这里请学习者特别关注下字段表定义介绍中的最后两句话:“字段(field)包括类级变量(即静态变量)以及实例变量(即:非静态变量),但不包括在方法内部声明的局部变量。“ 简单的总结这句话的意思是字段表中存储的是全局标量,不存储局部变量。字段表计数器无符号数结构示意图:与其他计数器一样,字段表计数器(fields_count)是一个无符号数结构类型的数据,u2 大小。字段表-表结构类型示意图:字段表是一个表结构的类型数据,回忆下我们接触到的第一个 Class 文件的表结构类型数据为常量池。这里我们来看下字段表的表结构示意图。前文提到过,字段(field)包括类级变量(即静态变量)以及实例变量(即:非静态变量),上图所示的一个 field_info 就代表了一个变量。为了表示一个变量,需要知道这个变量的修饰符,如 public,还需要知道这个变量的变量名称,因此一个 field_info 中存储了很多特征值,所有的特征值综合起来就完整的描述了一个变量。
- 5. 接口索引计数器与接口索引集合 父类索引后边紧跟的是接口索引计数器,接口索引计数器后边紧跟的是接口索引集合。类似于常量池计数器和常量池的关系,接口索引计数器记录的是接口索引集合中接口索引的数量。Tips:对于常量池计数器和常量池,一个是无符号数类型,一个是表类型。相比而言,接口索引计数器和接口索引集合皆为无符号数类型,这里学习者可以进行对比记忆。我们继续来看下两者的定义以及无符号数类型的结构示意图。定义:接口索引计数器:代表了接口索引集合中接口的数量;接口索引集合:按照当前类 implements(或当前接口extends)的接口的顺序,从左到右依次排列在接口索引集合中,此部分集合称为接口索引集合。无符号数结构示意图:接口索引计数器和接口索引集合均为无符号数类型结构,结构示意图如下图所示。从图中可以看出,接口索引计数器占用了 2 个字节,为 u2 大小,接口索引集合中的每一个接口元素占用了 2 个字节大小,也为 u2 大小。Tips:接口索引集合后边紧跟的数据结构是什么?我们继续抛出问题,后续章节会有问题的解答,让我们带着问题继续探究 Class 文件结构。
- 5.6 如何实现计算器 由于篇幅,本节没有实现一个完整的计算器,在这里仅仅讨论实现计算器程序的关键要点。windows 自带的计算器的界面如下所示:计算器向用户展示各种按钮,包括:数字按键,0、1、2、3、4、5、6、7、9运算符按键,+、-、*、\、=用户在点击某个按键时,程序得到通知:按键被点击了,但是这样的信息还不够,为了实现运算逻辑,还需要知道具体是哪一个按键被点击了。为了区分是哪一个按键被点击了,可以为不同的按键设定不同的按键处理函数,如下所示:import tkinterdef on_button0_click(): print('Button 0 is clicked')def on_button1_click(): print('Button 1 is clicked')def on_button2_click(): print('Button 2 is clicked')root = tkinter.Tk()button0 = tkinter.Button(root, text = 'Button 0', command = on_button0_click)button0.pack()button1 = tkinter.Button(root, text = 'Button 1', command = on_button0_click)button1.pack()button2 = tkinter.Button(root, text = 'Button 2', command = on_button0_click)button2.pack()root.mainloop()为了节省篇幅,这里仅仅处理了 3 个按键。显然,这样的方式是很不合理的,在一个完整的计算器程序中,存在 20 多个按键,如果对每个按键都编写一个事件处理函数,就需要编写 20 多个事件处理函数。在下面的小节中,通过使用闭包解决这个问题。
计数器相关搜索
-
j2ee
j2ee是什么
jar格式
java
java api
java applet
java c
java jdk
java list
java map
java script
java se
java socket
java swing
java switch
java web
java xml
java 程序设计
java 多线程
java 环境变量