【题目】【分析】本题较为简单,设置一个计数器,当接收的字符为"("时候自增,为")"时自减,为B时候退出循环。AC的C++代码如下:#include#includeusingnamespacestd;intmain(){strings;intcount;while(getline(cin,s)){count=0;intlen=s.length();for(inti=0;i
某项目公司-——ETL工程师岗位——二面
劝学-大数据
个人面试真题记录etl工程师数据仓库
1.自我介绍2.如果给你一个数仓项目,你应该从那些方面向你的上级汇报。3.对自己的未来职业生涯规划。4.平常下班之后做那哪些事情。5.对于写PPT,写文档这块是否可以。6.遇到工作中的压力,该如何处理。7.你曾经是做什么的。为什么想着向互联网这块发展。8.你有什么要问的?整个面试过程,面试官主要考察面试者自己的自学能力,然后做事的态度。以及做事的态度,解决问题的能力。还有就是,以后不说自己是酒店服
联级选择联级选择
dongsdh
vue.jselementuijavascript
areaList:[],props:{lazy:true,label:"shortName",value:"id",lazyLoad(node,resolve){letnodes=[];if(node.level==1){getListCityList(node.value).then((res)=>{nodes=res.dataresolve(nodes);})}elseif(node.leve
链表的删除结点(各种方法)
LightningJie
c++链表数据结构c语言
先建立链表(代码在最后)一、链表中删除第i个结点intmain(){inti;Node*p,*head,*k;head=setlink();scanf("%d",&i);intv=1;for(p=head->next;p!=NULL;k=p,p=p->next){if(v==i)break;else{v++;}}k->next=p->next;delete(p);for(p=head->next;
Java 8中 lambda表达式、Stream API的常见用法
xiaolong_gogo
java开发语言java-ee
1、取出集合中的某个字段://拿到车辆idsListcarIds=parkCarInDbList.stream().map(ParkCar::getId).collect(Collectors.toList());2、集合直接进行遍历然后进行相关操作:Listcars=carService.getListByCarId(carIds);cars.forEach(car->{Stringplate=
uni-app微信小程序上拉加载,下拉刷新
Min_nna
小程序uni-app微信小程序前端
pages.json配置官网链接onPullDownRefresh、onReachBottom函数跟生命周期同级data(){return{orderList:[],total:null,//总共多少条数据page:1,pageSize:10,}},onLoad(){},mounted(){this.getInfo()},methods:{getInfo(){API.getListxxx().th
Spring Boot 多媒体(音频/视频)文件处理FFmpegFrameGrabber 方法(例子:获取视频总时长)
编程社区管理员
springboot音视频java
1.pom.xml坐标org.bytedecojavacv-platform1.5.62.FFmpegFrameGrabber类提供了多种方法来处理多媒体文件,以下是一些常用的方法start():开始抓取帧。在调用此方法之前,可以设置格式和选项,之后可以调用grab()方法来获取帧。stop():停止抓取帧。通常在完成帧的抓取后调用此方法来释放资源。getLengthInTime():获取视频的长
DataX-数据迁移Oracle到Mysql-ETL工具
天海行者
【数据库】etl数据仓库
一、安装https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/datax-web-deploy.md1、直接下载DataX工具包:DataX下载地址下载后解压至本地某个目录,进入bin目录,即可运行同步作业:$cd{YOUR_DATAX_HOME}/bin$pythondatax.py{YOUR_JOB.json}自检脚
-[AwesomeProjectTests testRendersWelcomeScreen]
架构师的一小步
"_RCTSetLogFunction",referencedfrom:-[AwesomeProjectTeststestRendersWelcomeScreen]inAwesomeProjectTests.o运行报错---->解决方法:在BuildSetting->Linking->DeadCodeStripping中设置为No就可以了。
2022-03-29 休
JSleefat
时间·食奥尔良鸡腿牛肉牛奶?丑柑春见沃柑生菜叶牛肉丸丑柑春见沃柑卤牛肉粉蒸肉红薯生菜叶牛肉丸豆泡ETLmm视频0.5h阅读0.5h运动20min那年那兔那些事儿1.5h面试+候选人筛选2h总结记录2h短视频1h记忆点·忆往昔就突然回忆过往,每一年的记忆点都很模糊,什么时候,做了那些事儿都不清楚这个时候备份的带日期的照片帮了很大的忙,甚至比文字能提醒更多的记忆忆往昔的框架九宫格搭好了,陆续把它完成来
ETL策略
朱先生_hfm
etl数据仓库
数据仓库平台,ETL是很重要一环,看ETL的发展史,最初使用表格,人工从系统下载,在excel匹配,然后加载到数据仓库平台,到后来开始出现ETL工具,大概分为两个派别,以ETL架构的datastage,informatica,以ELT为代表的ODI,再到后来的批处理方式,SQL编码方式,但是其本质还是抽取数据,处理,再加载到目标平台,常用的方式:1.初始化:当我们建立数仓平台时候,一开始会涉及到同
Java中启动一个main方法会有几条线程?
简单_f79a
五条如下:publicstaticLoggerlogger=Logger.getLogger(Thread.currentThread().getStackTrace()[1].getClassName());publicstaticvoidmain(String[]args){//获取Java中的线程工厂获取Java虚拟中线程BeanThreadMXBeantmxb=ManagementFact
Linux用户态和内核态通信方法--netlink
嵌入式软件和硬件
Linux系统和应用编程
Linux用户空间和内核空间通信方法:系统调用、procfs、ioctl接口、netlinknetlink是Linux用户态与内核态通信最常用的一种方式。netlink:netlinksocekt是一种用于在内核态和用户态进程之间进行数据传输的特殊的IPC。它通过为内核模块提供一组特殊的API,并为用户程序提供了一组标准的socket接口的方式,实现了一种全双工的通讯连接。类似于TCP/IP中使用
数据仓库和数据湖的区别
图灵追慕者
中台数据仓库数据湖数据中台算法平台
数据仓库和数据湖是两种不同的数据存储和管理架构,它们有以下区别:1.数据结构:数据仓库采用结构化的数据模型,通常是规范化的关系型数据库,其中数据以表格形式组织,使用预定义的模式和架构。而数据湖则是一种原始、未经处理的数据存储,它可以包含结构化、半结构化和非结构化数据,数据以原始格式存储,没有强制的模式和架构。2.数据处理:数据仓库通常需要进行ETL(抽取、转换、加载)过程,将数据从不同的源系统中提
python 环境隔离
Unalian
python开发语言
python环境隔离https://www.freecodecamp.org/chinese/news/how-to-setup-virtual-environments-in-python/如果显示如下错误:WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailabl
密钥加密问题
xioaobai_huan
Java期末复习专栏基础编程题目java数据结构安全c++
C++参考代码:#include#include#includeusingnamespacestd;intmain(){vectorx;vectory;mapword;charch=getchar();getchar();stringstr;getline(cin,str);for(charc=ch;c(x[i],y[i]));}for(inti=0;i='A'&&str[i]map=newHas
最近发现了很多好用的工具,推荐给大家
ʚ小华
编辑器贴图
截图工具(PixPin):目前只有windows,还没有mac版本,非常强大!!!PixPin是一款优秀的图像标注工具,它可以帮助用户在图像上添加注释、标记和说明。这个软件适用于各种不同的场景,例如教育、商业、设计和医学等领域的图像处理和注释需求。高效率:PixPin的直观界面和丰富的注释工具使用户可以更快地完成图像标注任务。同时,它还支持云端同步和导出功能,使得用户可以轻松地共享和交流注释内容。
数组去重方法
HTAO濤
constarr=[1,1,'1',17,true,true,false,false,'true','a',{},{}];//=>[1,'1',17,true,false,'true','a',{},{}]方法一:利用Setconstres1=Array.from(newSet(arr));方法二:两层for循环+spliceconstunique1=arr=>{letlen=arr.length
Chapter 8 - 13. Congestion Management in TCP Storage Networks
mounter625
Linuxkerneltcp/ipphp网络协议linuxkernel
SwitchBufferManagementRecallthatduringnetworkcongestion,aTCPsenderreliesonthefollowingeventsforreducingitstransmissionrate.回想一下,在网络拥塞期间,TCP发送端依靠以下事件来降低传输速率。1.Whenthesenderdetectspacketlossbecauseofthe
开源ETL工具
SkTj
转载:https://blog.csdn.net/juceli/article/details/81448224ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将
C# CAD交互界面-自定义面板集-comboBox选择图层
李建军
CAD二次开发c#交互开发语言
运行环境VisualStudio2022c#cad2016一、代码说明SelectLayer方法是一个自定义的AutoCAD命令方法,通过[CommandMethod("SelectLayer")]进行标记。方法首先获取当前活动文档,并检查是否有效。创建一个名为"SelectLayer"的PaletteSet,并设置其样式以显示自动隐藏和关闭按钮。初始化一个ComboBox,并遍历GetLayer
工具使用-CrxMouse 手势插件
TE-茶叶蛋
工具使用chrome
文章目录前言一、CrxMouse是什么?二、使用CrxMouse内置的常用手势总结前言鼠标手势插件提高摸鱼效率。一、CrxMouse是什么?CrxMouse是一款Chrome浏览器的手势插件,它可以通过鼠标手势来进行快速的操作和导航。使用CrxMouse插件,可以在浏览器中进行各种操作,如打开新标签页、切换标签页、进行前进和后退等。CrxMouse支持多种手势,包括单击、双击、滚动、拖动等,可以根
s l t
幕光_fafe
SLT的中文名称:SAP布局转换复制服务器。英文名称:SAPLT(LandscapeTransformation)ReplicationServer在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作。对于这种需求,除了开发ABAP接口之外,也有高效的工具可用。SLT就是其中之一。SLT是SAP的第一个ETL(Extract-Transform-Load)工具,它允许实
ETL、ELT区别以及如何正确运用
etl数据处理
一、浅谈ETL、ELTETL与ELT的概念ETL(Extract,Transform,Load)是一种数据集成过程,通常用于将数据从一个或多个源系统抽取出来,经过清洗、转换等处理后,加载到目标数据存储中。这种方法适用于需要对数据进行加工和整合后再加载到目标系统的场景,如数据仓库构建、商业智能报表制作等。相比之下,ELT(Extract,Load,Transform)则是先将数据从源系统抽取出来,直
TLS、运输层安全协议
山间未相见
计算机网络网络网络安全
目录运输层安全协议1协议TLS的要点1.1协议TLS的位置1.2TLS与应用层协议独立无关1.3协议TLS具有双向鉴别的功能1.4TLS建立安全会话的工作原理TLS的握手阶段TLS的会话阶段1.5TLS传送的记录格式2协议TLS必须包含的措施运输层安全协议现在广泛使用以下两个协议:-安全套接字层SSL(SecureSocketLayer)-运输层安全TLS(TransportLayerSecuri
Oracle12cR2之IMP与EXP命令行工具使用及参数说明
小袁搬码
数据库Oracleoracle数据库数据库导入导出
Oracle12cR2之IMP与EXP命令行工具使用及参数说明文章目录Oracle12cR2之IMP与EXP命令行工具使用及参数说明1.IMP命令行使用及参数说明1.IMP命令行使用2.IMP命令行参数说明2.EXP命令行使用及参数说明1.EXP命令行使用2.EXP命令行参数说明在Oracle数据库中,IMP和EXP是两个常用的命令行工具,用于数据库的导入和导出操作;通过使用这两个工具,可以方便地
离线地图瓦片跟矢量数据下载
YTW
离线地图2D瓦片跟3D矢量数据下载工具使用介绍一、离线地图的各类自定义地图瓦片样式(可以随意根据自己喜欢进行配置)1)、进入软件首页,选择行政区域下载瓦片(如下图)2)、选择下载参数,勾选地图下载的级别,存储格式可选2D或3D数据(如下图)3)、点击任务列表,点击上方操作按钮(如下图)4)、卫星图瓦片下载,切换至影像瓦片(如下图)5)、个性化地图下载,选择已配置的个性化项(如下图)6)、可自己设计
tomcat基础与部署发布
暗黑小菠萝
Tomcat java web
从51cto搬家了,以后会更新在这里方便自己查看。
做项目一直用tomcat,都是配置到eclipse中使用,这几天有时间整理一下使用心得,有一些自己配置遇到的细节问题。
Tomcat:一个Servlets和JSP页面的容器,以提供网站服务。
一、Tomcat安装
安装方式:①运行.exe安装包
&n
网站架构发展的过程
ayaoxinchao
数据库应用服务器网站架构
1.初始阶段网站架构:应用程序、数据库、文件等资源在同一个服务器上
2.应用服务和数据服务分离:应用服务器、数据库服务器、文件服务器
3.使用缓存改善网站性能:为应用服务器提供本地缓存,但受限于应用服务器的内存容量,可以使用专门的缓存服务器,提供分布式缓存服务器架构
4.使用应用服务器集群改善网站的并发处理能力:使用负载均衡调度服务器,将来自客户端浏览器的访问请求分发到应用服务器集群中的任何
[信息与安全]数据库的备份问题
comsci
数据库
如果你们建设的信息系统是采用中心-分支的模式,那么这里有一个问题
如果你的数据来自中心数据库,那么中心数据库如果出现故障,你的分支机构的数据如何保证安全呢?
是否应该在这种信息系统结构的基础上进行改造,容许分支机构的信息系统也备份一个中心数据库的文件呢?
&n
使用maven tomcat plugin插件debug关联源代码
商人shang
mavendebug查看源码tomcat-plugin
*首先需要配置好'''maven-tomcat7-plugin''',参见[[Maven开发Web项目]]的'''Tomcat'''部分。
*配置好后,在[[Eclipse]]中打开'''Debug Configurations'''界面,在'''Maven Build'''项下新建当前工程的调试。在'''Main'''选项卡中点击'''Browse Workspace...'''选择需要开发的
大访问量高并发
oloz
大访问量高并发
大访问量高并发的网站主要压力还是在于数据库的操作上,尽量避免频繁的请求数据库。下面简
要列出几点解决方案:
01、优化你的代码和查询语句,合理使用索引
02、使用缓存技术例如memcache、ecache将不经常变化的数据放入缓存之中
03、采用服务器集群、负载均衡分担大访问量高并发压力
04、数据读写分离
05、合理选用框架,合理架构(推荐分布式架构)。
cache 服务器
小猪猪08
cache
Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。
1.Cache 是怎么样工作的?
Cache 是分配在服务器上
mysql存储过程
香水浓
mysql
Description:插入大量测试数据
use xmpl;
drop procedure if exists mockup_test_data_sp;
create procedure mockup_test_data_sp(
in number_of_records int
)
begin
declare cnt int;
declare name varch
CSS的class、id、css文件名的常用命名规则
agevs
JavaScriptUI框架Ajaxcss
CSS的class、id、css文件名的常用命名规则
(一)常用的CSS命名规则
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right
全局数据源
AILIKES
javatomcatmysqljdbcJNDI
实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:&l
MYSQL的随机查询的实现方法
baalwolf
mysql
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,
JAVA的getBytes()方法
bijian1013
javaeclipseunixOS
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样!
String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:
byte[] b_gbk = "
AngularJS中操作Cookies
bijian1013
JavaScriptAngularJSCookies
如果你的应用足够大、足够复杂,那么你很快就会遇到这样一咱种情况:你需要在客户端存储一些状态信息,这些状态信息是跨session(会话)的。你可能还记得利用document.cookie接口直接操作纯文本cookie的痛苦经历。
幸运的是,这种方式已经一去不复返了,在所有现代浏览器中几乎
[Maven学习笔记五]Maven聚合和继承特性
bit1129
maven
Maven聚合
在实际的项目中,一个项目通常会划分为多个模块,为了说明问题,以用户登陆这个小web应用为例。通常一个web应用分为三个模块:
1. 模型和数据持久化层user-core,
2. 业务逻辑层user-service以
3. web展现层user-web,
user-service依赖于user-core
user-web依赖于user-core和use
【JVM七】JVM知识点总结
bit1129
jvm
1. JVM运行模式
1.1 JVM运行时分为-server和-client两种模式,在32位机器上只有client模式的JVM。通常,64位的JVM默认都是使用server模式,因为server模式的JVM虽然启动慢点,但是,在运行过程,JVM会尽可能的进行优化
1.2 JVM分为三种字节码解释执行方式:mixed mode, interpret mode以及compiler
linux下查看nginx、apache、mysql、php的编译参数
ronin47
在linux平台下的应用,最流行的莫过于nginx、apache、mysql、php几个。而这几个常用的应用,在手工编译完以后,在其他一些情况下(如:新增模块),往往想要查看当初都使用了那些参数进行的编译。这时候就可以利用以下方法查看。
1、nginx
[root@361way ~]# /App/nginx/sbin/nginx -V
nginx: nginx version: nginx/
unity中运用Resources.Load的方法?
brotherlamp
unity视频unity资料unity自学unityunity教程
问:unity中运用Resources.Load的方法?
答:Resources.Load是unity本地动态加载资本所用的方法,也即是你想动态加载的时分才用到它,比方枪弹,特效,某些实时替换的图像什么的,主张此文件夹不要放太多东西,在打包的时分,它会独自把里边的一切东西都会集打包到一同,不论里边有没有你用的东西,所以大多数资本应该是自个建文件放置
1、unity实时替换的物体即是依据环境条件
线段树-入门
bylijinnan
java算法线段树
/**
* 线段树入门
* 问题:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次
* 以下代码建立的线段树用链表来保存,且树的叶子结点类似[i,i]
*
* 参考链接:http://hi.baidu.com/semluhiigubbqvq/item/be736a33a8864789f4e4ad18
* @author lijinna
全选与反选
chicony
全选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>全选与反选</title>
vim一些简单记录
chenchao051
vim
mac在/usr/share/vim/vimrc linux在/etc/vimrc
1、问:后退键不能删除数据,不能往后退怎么办?
答:在vimrc中加入set backspace=2
2、问:如何控制tab键的缩进?
答:在vimrc中加入set tabstop=4 (任何
Sublime Text 快捷键
daizj
快捷键sublime
[size=large][/size]Sublime Text快捷键:Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:
php 引用(&)详解
dcj3sjt126com
PHP
在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 复制代码代码如下:
<?
$a="ABC";
$b =&$a;
echo
SVN中trunk,branches,tags用法详解
dcj3sjt126com
SVN
Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tags这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
对软件设计的思考
e200702084
设计模式数据结构算法ssh活动
软件设计的宏观与微观
软件开发是一种高智商的开发活动。一个优秀的软件设计人员不仅要从宏观上把握软件之间的开发,也要从微观上把握软件之间的开发。宏观上,可以应用面向对象设计,采用流行的SSH架构,采用web层,业务逻辑层,持久层分层架构。采用设计模式提供系统的健壮性和可维护性。微观上,对于一个类,甚至方法的调用,从计算机的角度模拟程序的运行情况。了解内存分配,参数传
同步、异步、阻塞、非阻塞
geeksun
非阻塞
同步、异步、阻塞、非阻塞这几个概念有时有点混淆,在此文试图解释一下。
同步:发出方法调用后,当没有返回结果,当前线程会一直在等待(阻塞)状态。
场景:打电话,营业厅窗口办业务、B/S架构的http请求-响应模式。
异步:方法调用后不立即返回结果,调用结果通过状态、通知或回调通知方法调用者或接收者。异步方法调用后,当前线程不会阻塞,会继续执行其他任务。
实现:
Reverse SSH Tunnel 反向打洞實錄
hongtoushizi
ssh
實際的操作步驟:
# 首先,在客戶那理的機器下指令連回我們自己的 Server,並設定自己 Server 上的 12345 port 會對應到幾器上的 SSH port
ssh -NfR 12345:localhost:22
[email protected]
# 然後在 myhost 的機器上連自己的 12345 port,就可以連回在客戶那的機器
ssh localhost -p 1
Hibernate中的缓存
Josh_Persistence
一级缓存Hiberante缓存查询缓存二级缓存
Hibernate中的缓存
一、Hiberante中常见的三大缓存:一级缓存,二级缓存和查询缓存。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存
对象关系行为模式之延迟加载
home198979
PHP架构延迟加载
形象化设计模式实战 HELLO!架构
一、概念
Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。
延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。
二、实现延迟加载
实现Lazy Load主要有四种方法:延迟初始化、虚
xml 验证
pengfeicao521
xmlxml解析
有些字符,xml不能识别,用jdom或者dom4j解析的时候就报错
public static void testPattern() {
// 含有非法字符的串
String str = "Jamey친ÑԂ
div设置半透明效果
spjich
css半透明
为div设置如下样式:
div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;}
说明:
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opaci
你真的了解单例模式么?
w574240966
java单例设计模式jvm
单例模式,很多初学者认为单例模式很简单,并且认为自己已经掌握了这种设计模式。但事实上,你真的了解单例模式了么。
一,单例模式的5中写法。(回字的四种写法,哈哈。)
1,懒汉式
(1)线程不安全的懒汉式
public cla