2.4.4.事件处理通过onXxx属性指定事件处理函数(注意大小写)React使用的是自定义(合成)事件,而不是使用的原生DOM事件React中的事件是通过事件委托方式处理的(委托给组件最外层的元素)通过event.target得到发生事件的DOM元素对象2.5.收集表单数据2.5.1.效果需求:定义一个包含表单的组件输入用户名密码后,点击登录提示输入信息非受控组件
JavaScript--核心语法基础
丿狴犴λ
jsjavascripthtml前端
JavaScript--核心语法基础1.编程语言2.js历史3.js的作用4.JS组成部分5.JS的使用5.1引入方式5.2script位置5.3语法规则5.46.变量(重点)6.1什么是变量?6.2创建变量6.3变量命名规则7、数据类型(重难点)7.1分类7.2基本数据类型7.3引用数据类型--对象(object)7.4数据类型的检测8.数据类型的转换8.1隐式转换8.2强制转换9.运算符9.1
js_采用事件委托方式实现tab栏切换
伐木累!
前端笔记javascriptcss前端
采用事件委托方式实现tab栏切换*{margin:0;padding:0;}.tab{width:590px;height:340px;margin:20px;border:1pxsolid#e4e4e4;}.tab-nav{width:100%;height:60px;line-height:60px;/*将元素的布局方式设置为弹性盒子(Flexbox),使子元素可以灵活地排列和调整大小。*/d
前端学习-事件委托(三十)
marshalVS
学习
目录前言课前思考for循环注册事件语法事件委托1.事件委托的好处是什么?2.事件委托是委托给了谁,父元素还是子元素3.如何找到真正触发的元素示例代码总结前言才子佳人,自是白衣卿相课前思考1.如果同时给多个元素注册事件,我们怎么做的?for循环注册事件语法constlis=document.querySelectorAll('ulli');for(leti=0;iDocument.highligh
[学习笔记][Unity3D网络游戏实战]客户端基本网络框架
DoorToZen
Socket网络编程学习笔记网络
目标:一个客户端基本的网络框架目录(框架的结构可以直接看目录吧)网络模块设计:1.主体框架部分NetManager基本部分网络事件委托事件类型监听列表触发监听具体网络事件的实现1.Connet2.Close3.Send(该事件需要先实现协议类)消息事件监听列表接收数据Receive更新数据Update2.协议类个人理解结构Json协议协议格式协议文件(消息类)协议体/协议名的编码解码3.ByteA
前端【11】HTML+CSS+jQUery实战项目--实现一个简单的todolist
微臣愚钝
前端前端htmlcss
前端【8】HTML+CSS+javascript实战项目----实现一个简单的待办事项列表(To-DoList)-CSDN博客学过jQUery可以极大简化js代码的编写,基于之前实现的todolist小demo,了解如何使用jQuery来实现常见的动态交互功能。修改后的js代码关键点解析动态添加元素:通过append方法动态添加表格行,并为每一行生成唯一的index属性。事件委托:使用on方法将事
C# 委托和事件委托
火星papa
C#c#delegateevent
C#委托和事件委托目录C#委托和事件委托什么是委托?1、概念2、代码描述委托什么是事件委托?1、概念2、代码描述事件委托利用事件委托在不同窗体传参1、建窗体2、主窗体代码:3、子窗体代码:什么是委托?1、概念 委托(Delegate)类似于C或C++中函数的指针。是存有对某个方法的引用的一种引用类型变量。引用委托可在运行时被改变,特别是用于实现事件和回调方法。其来自于System.Delegat
高性能javascript--算法和流程控制
海淀萌狗
-for,while和do-while性能相当-避免使用for-in循环,==除非遍历一个属性量未知的对象==es5:for-in遍历的对象便不局限于数组,还可以遍历对象。原因:for-in每次迭代操作会同时搜索实例或者原型属性,for-in循环的每次迭代都会产生更多开销,因此要比其他循环类型慢,一般速度为其他类型循环的1/7。因此,除非明确需要迭代一个属性数量未知的对象,否则应避免使用for-i
vue跟jQuery中的事件冒泡、事件捕获、事件委托(事件代理)
淑子啦
vue.jsjquery前端
1、事件捕获、事件冒泡在JS中,我们管事件发生的顺序叫“事件流”标准的事件流:当dom触发了事件后,会先通过事件传播捕获到目标元素,然后目标节点通过事件传播实现事件冒泡事件传播:无论是捕获还是冒泡,都是靠事件传播一层一层传递的,当在某一层禁止事件传播,那么之后的步骤就不再进行了Tips:目标元素指的是触发事件的节点(1)事件捕获鼠标点击或者触发了dom事件,浏览器会从根节点(Document对象)
C#学习笔记
2301_79022588
学习笔记
一、事件派发器在C#中,事件派发器通常是指事件委托和事件处理程序的组合,用于实现一种观察者设计模式。它允许对象在状态发生变化时通知其他对象,从而实现对象之间的解耦。事件派发器的基本组成部分:事件委托(EventDelegate):事件委托是一种特殊的委托,用于封装可以被调用的方法。它定义了事件的签名,即指定了事件处理程序方法的参数和返回类型。通常,事件委托声明在事件派发器类的外部,并且使用dele
事件流 事件委托
汓㸓
前端数据库javascript
一、事件流事件流(Eventflow)是指在HTML文档中发生事件时,事件的传播方式或者说流动路径。事件流描述了事件从触发元素开始,经过各个元素传递并最终到达目标元素的过程。事件流有三个阶段:捕获阶段(Capturephase):事件从最外层的祖先元素开始向下传递,直到达到触发事件的目标元素。在捕获阶段,事件会经历所有祖先元素的捕获处理程序。目标阶段(Targetphase):事件到达目标元素,即
JavaScript中的事件委托
zhangwenok
JavaScriptjavascript前端开发语言
今天,我们来讨论一下JavaScript中的事件委托。JavaScript事件委托是一种优化代码的技术,它允许我们在DOM树中注册一个事件处理程序,并通过冒泡机制处理多个元素的事件。事件委托是一个强大的技术,它可以极大地提高代码性能和可维护性。下面是一个例子,用事件委托处理一个动态生成的列表:Item1Item2Item3constlist=document.querySelector('#myL
JavaScript中事件委托是什么?
LuckXinXin
JavaScriptjavascript
符合W3C标准的事件绑定:addEventLisntener/attachEvent。让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行。
JavaScript中什么是事件委托
JJCTO
JavaScriptjavascriptcss前端
JavaScript中的事件委托(Eventdelegation)是一种重要的编程技术,它能够优化网页中的事件处理,提高程序的性能和可维护性。本文将详细介绍事件委托的概念、工作原理,并提供示例代码来说明其实际应用。事件委托是基于事件冒泡机制而存在的。通常情况下,我们会为每个需要响应事件的元素添加事件监听器,而当页面中元素数量庞大时,这样的操作就会导致性能下降和代码维护困难。而事件委托的思想则是将事
[前端开发] 常见的 HTML CSS JavaScript 事件
YuanDaima2048
前端学习基础概念htmlcssjavascripthtml5css3es6前端
代码示例指路常见的HTML、CSS、JavaScript事件代码示例常见的HTMLCSSJavaScript事件事件HTML事件鼠标事件键盘事件表单事件JavaScript事件对象事件代理(事件委托)事件在Web开发中,事件是用户与网页交互的重要方式之一。通过事件,用户可以与页面元素进行交互,触发相应的功能或效果。本文将介绍常见的HTML、CSS、JavaScript事件,以及事件对象和事件代理的
【JAVA WEB】JavaScript--函数 && 作用域 && 对象
lzb_kkk
前端javajavascript
目录函数语法格式示例定义没有参数列表,也没有返回值的一个函数定义一个有参数列表,有返回值的函数关于参数个数函数表达式作用域作用域链对象基本概念创建对象1.使用字面量创建对象2.使用newObject()创建对象3.使用构造函数创建对象JavaScript的对象和Java的对象区别1.JavaScript没有类的概念2.JavaScript对象不区分“属性”和“方法”3.JavaScript对象没有
2018-05-02美团二面总结
Observer_____
1.事件委托的好处?面试官不太满意减少内存占用,已删除的元素不必再解绑,添加新的元素不用单独绑定2.DNS多级缓存不太会答3.关于内存泄漏闭包问题,要记得释放引用局部变量的闭包函数,否则会引起内存泄漏4.Array是引用类型。为啥?因为和C语言的指针类似,只是一个引用
事件机制 事件捕获 处于目标阶段 事件冒泡 事件委托
蘑菇酱960903
事件捕获当点击触发了dom事件,浏览器会从根节点开始由外向内进行传播,如果父元素在捕获期注册了对应的事件,则会先触发父元素的绑定事件事件冒泡由内向外进行传播,直到根节点事件流:事件捕获期(IE10以下不支持捕获期)->处于目标阶段->事件冒泡期当子元素不想触发父元素事件,可停止事件传播event.stopPropagation()或者event.cancelBubble=true事件委托就是根据事
js中事件代理的解析和应用场景
章IT
javascript前端vue.js前端框架css3小程序微信小程序
文章目录一、是什么二、应用场景三、总结一、是什么事件代理,俗地来讲,就是把一个元素响应事件(click、keydown…)的函数委托到另一个元素前面讲到,事件流的都会经过三个阶段:捕获阶段->目标阶段->冒泡阶段,而事件委托就是在冒泡阶段完成事件委托,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,而不是目标元素当事件响应到目标元素上时,会通过事件冒泡机制从而触
JS中的事件代理详解
呗儿塔
事件代理的定义对于事件委托或者说事件代理,有这样一段定义:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。举个例子来说首先我们创建一个拥有多个平行元素的列表Item1Item2Item3Item4Item5Item6当鼠标移动到li上或者点击了li的时候,需要触发相应的事件,若果不使用事件代理,那么我们需要为每一个li都添加相应的onClick()或者onMouse
ES6和ES5的区别、ES6新特性、Promise.all()用法简记、JavaScript事件代理(事件委托)、值类型和引用类型的区别、回流与 重绘——面试篇
大脸胖柴
大前端前端
目录es5和es6的区别var、let、const初始化变量的区别使用箭头函数要注意事项forof与forin的区别Promise.all()用法简记解决promise失败不返回结果封装catch方法(失败结果也接收)只接收成功值方法JavaScript事件代理(事件委托)基本概念值类型和引用类型的区别1、javascript中变量类型分为值类型(基本数据类型)和引用类型2、值类型和引用类型的区别
vue-seamless-scroll 点击事件无效的处理方法
weixin_45979310
javascriptvue.js
在使用vue-seamless-scroll自动滚屏绑定事件时,个别点击不了。该插件为了实现无缝衔接而复制了dom渲染,不会带上事件。解决办法:利用事件委托。<vue-seamless-sc
vue-seamless-scroll插件使用后点击事件无效
JiAyInNnNn123
开发问题Vuevue.jsjavascript前端
场景:当前使用vue-seamless-scroll包裹了一个滚动div的list,当前list中的div需要点击进行其他逻辑处理问题:部分div点击不触发点击事件原因:因为vue-seamless-scroll中间包裹的dom复制渲染,没有带上dom的事件导致。解决方式:使用事件委托。在vue-seamless-scroll外部的div添加点击事件,获取$event的target{{item.n
vue2编写一个自定义指令,一键绑定事件委托
外围前端吴彦祖
Vuevue.jsjavascript前端
importvuefrom"vue";constNAME="entrust";constINIT=(el,node)=>{if(elinstanceofHTMLElement){const{method,key,data}=node.value;el.onclick=(e)=>{constdom=e.target;if(dom.tagName){constindex=dom.dataset[key
js中的事件委托(事件代理)
guizi0809
js基础javascript
事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。为什么要用事件委托?一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了,那如果是很多的dom需要添加事件处理呢?比如我们有1000个li,每个li都有相同的click点击事件,可能我们会用for循环的方法,来遍历所有的li,然后给它们添加事件,那这么做会存在什么影响呢?在JavaScript中,添
事件冒泡、事件委托
啊烟雨
事件冒泡:在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。事件冒泡的作用:事件冒泡允许多个操作被集
什么是事件委托以及live on delegate之间的关系
hbhey
一、首先什么是事件委派?事件委派(委托):事件委托就是利用冒泡的原理,把事件加到父元素或祖先元素上,触发执行效果。当页面同步加载时,会添加事件。有时数据是异步加载,同步无法给不存在(刚开始)的元素添加事件。此时我们可以在一开始就存在的父元素上添加事件,再通过父元素在触发时找子元素。二、事件委托优点提高JavaScript性能。事件委托可以显著的提高事件的处理速度,减少内存的占用。三、Jquery事
JavaScript - 基础+WebAPI(笔记)
禁止摆烂-才浅
前端-笔记JavaScriptES6javascript笔记前端
前言:求关注本篇文章主要记录以下几部分:基础:输入输出语法;数据类型;运算符;流程控制-分支语句;流程控制-循环语句;数组-基础;函数-基础;对象-基础;WebAPI:DOM;DOM事件基础(事件监听、常用事件、事件对象);DOM事件进阶(事件流、事件委托);日期对象;节点操作;M端事件;JS插件;window对象;本地存储;正则表达式;以下部分请移步JavaScript-进阶+高级(笔记):进阶
jdk tomcat 环境变量配置
Array_06
javajdktomcat
Win7 下如何配置java环境变量
1。准备jdk包,win7系统,tomcat安装包(均上网下载即可)
2。进行对jdk的安装,尽量为默认路径(但要记住啊!!以防以后配置用。。。)
3。分别配置高级环境变量。
电脑-->右击属性-->高级环境变量-->环境变量。
分别配置 :
path
&nbs
Spring调SDK包报java.lang.NoSuchFieldError错误
bijian1013
javaspring
在工作中调另一个系统的SDK包,出现如下java.lang.NoSuchFieldError错误。
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.l
LeetCode[位运算] - #136 数组中的单一数
Cwind
java题解位运算LeetCodeAlgorithm
原题链接:#136 Single Number
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进
qq登陆界面开发
15700786134
qq
今天我们来开发一个qq登陆界面,首先写一个界面程序,一个界面首先是一个Frame对象,即是一个窗体。然后在这个窗体上放置其他组件。代码如下:
public class First { public void initul(){ jf=ne
Linux的程序包管理器RPM
被触发
linux
在早期我们使用源代码的方式来安装软件时,都需要先把源程序代码编译成可执行的二进制安装程序,然后进行安装。这就意味着每次安装软件都需要经过预处理-->编译-->汇编-->链接-->生成安装文件--> 安装,这个复杂而艰辛的过程。为简化安装步骤,便于广大用户的安装部署程序,程序提供商就在特定的系统上面编译好相关程序的安装文件并进行打包,提供给大家下载,我们只需要根据自己的
socket通信遇到EOFException
肆无忌惮_
EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:
基于spring的web项目定时操作
知了ing
javaWeb
废话不多说,直接上代码,很简单 配置一下项目启动就行
1,web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="h
树形结构的数据库表Schema设计
矮蛋蛋
schema
原文地址:
http://blog.csdn.net/MONKEY_D_MENG/article/details/6647488
程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,
maven将jar包和源码一起打包到本地仓库
alleni123
maven
http://stackoverflow.com/questions/4031987/how-to-upload-sources-to-local-maven-repository
<project>
...
<build>
<plugins>
<plugin>
<groupI
java IO操作 与 File 获取文件或文件夹的大小,可读,等属性!!!
百合不是茶
类 File
File是指文件和目录路径名的抽象表示形式。
1,何为文件:
标准文件(txt doc mp3...)
目录文件(文件夹)
虚拟内存文件
2,File类中有可以创建文件的 createNewFile()方法,在创建新文件的时候需要try{} catch(){}因为可能会抛出异常;也有可以判断文件是否是一个标准文件的方法isFile();这些防抖都
Spring注入有继承关系的类(2)
bijian1013
javaspring
被注入类的父类有相应的属性,Spring可以直接注入相应的属性,如下所例:1.AClass类
package com.bijian.spring.test4;
public class AClass {
private String a;
private String b;
public String getA() {
retu
30岁转型期你能否成为成功人士
bijian1013
成长励志
很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人
【Velocity四】Velocity与Java互操作
bit1129
velocity
Velocity出现的目的用于简化基于MVC的web应用开发,用于替代JSP标签技术,那么Velocity如何访问Java代码.本篇继续以Velocity三http://bit1129.iteye.com/blog/2106142中的例子为基础,
POJO
package com.tom.servlets;
public
【Hive十一】Hive数据倾斜优化
bit1129
hive
什么是Hive数据倾斜问题
操作:join,group by,count distinct
现象:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成;查看未完成的子任务,可以看到本地读写数据量积累非常大,通常超过10GB可以认定为发生数据倾斜。
原因:key分布不均匀
倾斜度衡量:平均记录数超过50w且
在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua csrf
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
java-3.求子数组的最大和
bylijinnan
java
package beautyOfCoding;
public class MaxSubArraySum {
/**
* 3.求子数组的最大和
题目描述:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
例如输入的数组为1, -2, 3, 10, -4,
Netty源码学习-FileRegion
bylijinnan
javanetty
今天看org.jboss.netty.example.http.file.HttpStaticFileServerHandler.java
可以直接往channel里面写入一个FileRegion对象,而不需要相应的encoder:
//pipeline(没有诸如“FileRegionEncoder”的handler):
public ChannelPipeline ge
使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
cngolon
跨浏览器复制到粘贴板Zero Clipboard
Zero Clipboard的实现原理
Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flash的复制功能把传入的内容复制到剪贴板。
Zero Clipboard的安装方法
首先需要下载 Zero Clipboard的压缩包,解压后把文件夹中两个文件:ZeroClipboard.js
单例模式
cuishikuan
单例模式
第一种(懒汉,线程不安全):
public class Singleton { 2 private static Singleton instance; 3 pri
spring+websocket的使用
dalan_123
一、spring配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or
细节问题:ZEROFILL的用法范围。
dcj3sjt126com
mysql
1、zerofill把月份中的一位数字比如1,2,3等加前导0
mysql> CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL, -> day
Android开发10——Activity的跳转与传值
dcj3sjt126com
Android开发
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。
一、Activity跳转
方法一Intent intent = new Intent(A.this, B.class); startActivity(intent)
方法二Intent intent = new Intent();intent.setCla
jdbc 得到表结构、主键
eksliang
jdbc 得到表结构、主键
转自博客:http://blog.csdn.net/ocean1010/article/details/7266042
假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getSt
Android 应用程序开关GPS
gqdy365
android
要在应用程序中操作GPS开关需要权限:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办?
1、方法一:将项目放到Android源码中编译;
2、方法二:网上有人说cl
Windows上调试MapReduce
zhiquanliu
mapreduce
1.下载hadoop2x-eclipse-plugin https://github.com/winghc/hadoop2x-eclipse-plugin.git 把 hadoop2.6.0-eclipse-plugin.jar 放到eclipse plugin 目录中。 2.下载 hadoop2.6_x64_.zip http://dl.iteye.com/topics/download/d2b
如何看待一些知名博客推广软文的行为?
justjavac
博客
本文来自我在知乎上的一个回答:http://www.zhihu.com/question/23431810/answer/24588621
互联网上的两种典型心态:
当初求种像条狗,如今撸完嫌人丑
当初搜贴像条犬,如今读完嫌人软
你为啥感觉不舒服呢?
难道非得要作者把自己的劳动成果免费给你用,你才舒服?
就如同 Google 关闭了 Gooled Reader,那是
sql优化总结
macroli
sql
为了是自己对sql优化有更好的原则性,在这里做一下总结,个人原则如有不对请多多指教。谢谢!
要知道一个简单的sql语句执行效率,就要有查看方式,一遍更好的进行优化。
一、简单的统计语句执行时间
declare @d datetime ---定义一个datetime的变量set @d=getdate() ---获取查询语句开始前的时间select user_id
Linux Oracle中常遇到的一些问题及命令总结
超声波
oraclelinux
1.linux更改主机名
(1)#hostname oracledb 临时修改主机名
(2) vi /etc/sysconfig/network 修改hostname
(3) vi /etc/hosts 修改IP对应的主机名
2.linux重启oracle实例及监听的各种方法
(注意操作的顺序应该是先监听,后数据库实例)
&nbs
hive函数大全及使用示例
superlxw1234
hadoophive函数
具体说明及示例参 见附件文档。
文档目录:
目录
一、关系运算: 4
1. 等值比较: = 4
2. 不等值比较: <> 4
3. 小于比较: < 4
4. 小于等于比较: <= 4
5. 大于比较: > 5
6. 大于等于比较: >= 5
7. 空值判断: IS NULL 5
Spring 4.2新特性-使用@Order调整配置类加载顺序
wiselyman
spring 4
4.1 @Order
Spring 4.2 利用@Order控制配置类的加载顺序
4.2 演示
两个演示bean
package com.wisely.spring4_2.order;
public class Demo1Service {
}
package com.wisely.spring4_2.order;
public class