betway必威官网注册 > 技术 > 成都汇智动力,警惕笔记本的宣传噱头

原标题:成都汇智动力,警惕笔记本的宣传噱头

浏览次数:181 时间:2019-10-28

原标题:51Talk第二季度净营业收入不住大增 净亏蚀进一步收窄

原标题:萨格勒布汇智重力-SSH和SSM的区分

原标题:你被忽悠了吗?警惕台式机的鼓吹噱头!

越来越多音讯可登陆运转商世界网(telworld.com.cntel_world

SSH 和 SSM 的定义

现行反革命台式机已经进来了“白刃战”阶段,相当低的利益率不足以支撑OEM商家实行大规模的立异,只可以在硬件搭配和模具细节方面拓宽优化。为了提高关心,相当多台式机在宣扬中都会走入或多或少的夸张现象,借让你稍不检点就能够被摇晃。

运行商世界网 辜海燕/文

我经历过三种手艺架构,分别是常说的 SSH 和 SSM ,SSH 在本科的时候老师就教过。SSM 则是去信用合作社后用的相当多。以后本身想将这两大阵营的技术做一下相对来说。由于自个儿技术有限,涉及技艺超级多,小编只从现实的运用方面做一些对待。

宣传图和实物图差异大

7月17日,51Talk文告二〇一八年第二季度财务业绩报告。依照报告,51Talk第二季度净营业收入同比大增,净亏空急剧收窄。

SSH 常常指的是 Struts2 做前端调整器,Spring 管理各层的机件,Hibernate 担负长久化层。

为了进步卖相,超多台式机都引进了金属材质和CNC工艺,又也许在外界参预了拉丝金属或各个镀膜。但是,那些高材料或高触感的因素,却很难用相机真实的记录下来,所以就招致了商家们赏识用产品渲染图来张开宣传。

财经报告表明了,51Talk第二季度净营业收入2.817亿元,同期比较进步46.9%。增加主要缘于活跃学子数量的充实,其次也是因为每一种活跃学子的平分净营收的加多。当中,1对1净营业收入为RMB2.542亿元(3,840万日币),二零一八年相同的时候为1.918亿元,同期比较升高32.6%;哈沃小班课净总收入为RMB0.275亿元(420万美金),二〇一八年同时无净营收多少。

SSM 则指的是 SpringMVC 做前端调整器,Spring 管理各层的组件,MyBatis 担负漫长化层。

但是,渲染图并不意味实物。那几个用于宣扬的图样,大都遮掩了统筹上的弱点,只是平素地崛起外壳的材料,一视同仁点反映纤薄的设计感。举个最简易的例证,宣传中台式机显示器中所展现的壁纸,99%都以被PS上去的。

第二季度,51Talk现金收入为4.2亿元,二〇一八年同偶然间为3.551亿元,同期相比拉长18.3%。现金收入中K-12占比达到83.5%,前年第二季度该占比为71.9%。51Talk聚集菲教青少1对1作业现金收入为2.78亿,同期比较升高50.6%。

合营之处是都应用了Spring的重视注入DI来治本各层的零部件,使用了面向切面编制程序AOP来贯彻日志处理,权限认证,事务等通用作用的切入。

图片 1

别的,净耗损为毛外公0.737亿元(1,110万美金),2018年同临时候亏蚀1.393亿元。Non-GAAP净亏本为RMB0.671亿元(1,010万台币),2018年相同的时间亏空1.332亿元。

不相同之处是 Struts2 和 SpringMVC 做前端调节器的分别,以至 Hibernate 和 MyBatis 做长久化时的界别。不过,Struts2 也得以和 MyBatis 搭配使用,SpringMVC 也足以和 Hibernate 搭配使用。本文为了简化比较,钦点Struts2 要和 Hibernate 搭配,SpringMVC 要和 MyBatis 搭配。

为了保障宣传效果,替换宣传图中的荧屏壁纸不是怎么着大主题素材,但现况却是厂家喜欢让壁纸故意“吃掉”更加多的边框,将原先应该是7mm左右的显示屏边框,间接PS成3mm,进而特意创设越来越大屏占比的视觉特效。

据驾驭,二〇一七年第二季度,51Talk净营收为1.918亿元,同期比较升高97.9%;净耗损为1.393亿元,比二零一五年同时的1.379亿元有所增加。二〇一八年第生龙活虎季度,51Talk净营业收入RMB2.626亿元,同期相比较升高64.6%;净亏本为RMB1.127亿元,同比收窄。

SSH 和 SSM 的达成原理差异

图片 2

相比较能够看出,二零一八年第二季度,51Talk净营业收入不唯有同期比较持续大增,环比也具有加强;净蚀本同期相比、环比都小幅度收窄。

所在分层SSHSSM

风度翩翩旦您是随着几近无边框的陈设性而购买的记录本,见到实物后才察觉边框远比想象的越来越宽;要是您是随着拉丝金属质感的可信性而购买,收到的却是塑料机身+拉丝工艺的喷漆……不要疑人疑鬼,独有比少之又少的香港中华厂商联合会在宣传中申明ABCD每一面包车型客车外壳材料,这一个望着像金属却从不强调应用金属材质宣传的,有超大概率可能正是塑料。

运转商世界网(官方微信徒人号tel_world)——TMT行当资深新锐媒体,一家潜心通讯、网络、家用电器、手提式有线电话机、数码的原创音讯网址。回到天涯论坛,查看越来越多

页面层(View)JSPJSP

图片 3

责编:

决定器层(Controller)Struts2SpringMVC

五金质感是二个很料定的卖点,假诺某款台式机接纳了势必会加以宣传

业务层(Service)JavaJava

故此,大家在选取台式机时,不要盲目轻信宣传图上的通盘造型。那就象是不能够相信速食面广告中现身的大块羊肉。假设你对台式机的材料和筹算丰裕尊重,依旧提出先去国美苏宁等实体店亲自体验风姿罗曼蒂克番,再经过线上购销。假若身边从未实体门店,则尽量参照他事他说加以考查媒体或网络朋友测评中的实拍图加以表达。

持久层(DAO)HibernateMyBatis

不是负有的USB3.1都以3.1

数码库层(DB)MySQL/OracleMySQL/Oracle

有心人的读者轻易察觉,未来无数台式机在宣扬中都会标记配备了风尚的USB3.1接口。理论上讲,USB3.1有着两倍于USB3.0的带宽,难道这种极高速的传导接口这么快就推广了?很缺憾,在售台式机人上十分八的USB3.1接口都以大器晚成种宣传上的笑话。

组件管理(Bean)SpringSpring

图片 4

(1) Struts2 的原理

由来很简短,USB3.1被行业细分为USB3.1 Gen1以致USB3.1 Gen2七个专门的学业,前面多个的辩解传输速率为5Gbps,而后人的速率为10Gbps。难点来了,USB3.0的争鸣传输速率也是5Gbps,和USB3.1 Gen1完全雷同,二者属于“马甲”关系。

图片 5

图片 6

一个央求在Struts2框架中的管理差不离分为以下多少个步骤:

速度同样是5Gbps的思想USB接口,既然标记成USB3.0和USB3.1(Gen1)都对,为什么不用看起来更上进的USB3.1?一些心怀叵测的集团竟然会在宣扬中省去“Gen1”的后缀,让你搞不清楚台式机是或不是铺排了更便捷的USB3.1接口。

1、顾客端最早化三个针对Servlet容器(举个例子Tomcat)的恳求

从表面看不懂的Type-C

2、那一个伏乞经过意气风发层层的过滤器(Filter)(那几个过滤器中有三个叫做ActionContextCleanUp的可选过滤器,这几个过滤器对于Struts2和任何框架的并轨很有援助,举个例子:SiteMesh Plugin)

USB Type-C大家应该很熟习了,今后无数中高级手提式有线电电话机就利用了这种辅助正面与反面插的精雕细刻接口。然则,在记录自个儿上,USB Type-C却成为了很难从表面来看深浅的接口。

3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定以此央求是不是供给调用有个别Action

图片 7

FilterDispatcher是调节器的骨干,正是mvc中c调节层的骨干。上面粗略的深入分析下FilterDispatcher职业流程和规律:FilterDispatcher举办开始化并启用宗旨doFilter。

先是,台式机人上的USB Type-C起步正是USB3.0的速度,所以它还足以称之为USB Type-C 3.1 Gen1。当然,倘若协理最高10Gbps传输速率的则可标明为USB Type-C 3.1 Gen2。日常的话,全数的USB Type-C都能够因此扩大坞调换来VGA和HDMI摄像输出接口,但USB Type-C其实还只怕有多少个进级手艺,这便是打开DP1.2出口,以致付与对雷电3成效的帮衬。缺憾,那多少个进级作用都亟待分外的授权费和开支,并且雷电3可向下宽容DP。

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

图片 8

showDeprecatedWarning();

图片 9

HttpServletRequest request = (HttpServletRequest) req;

借使您对USB Type-C接口的功用有特殊必要,请登陆台式机官方网站查询详细的参数。若是机身上的USB Type-C能支撑DP或雷电3,那就自然会重视的申明出来。若无像样的印证,那基本就能够注解它相对不帮助这个进级功用。

HttpServletResponse response = (HttpServletResponse) res;

例如USB Type-C支持雷电3功能,会在少年老成侧印有七个雷电的Logo。但是,以后无数妖媚本还大概会接纳USB Type-C接口实行充电,而充电的雷暴标记轻松和雷电3的标记混淆。这点大家要多加留意。

ServletContext servletContext = getServletContext();

草率和夸大的属性数据

String timerKey = "FilterDispatcher_doFilter: ";

在台式机的宣扬中,大家还总会遭遇各个含糊和夸大的性质数据,借让你对相关硬件未有一个理性的认知,就超级轻便被忽悠买下账单。比方,某品牌台式机主打“intel 7代强芯”,可以称作“性能直逼主流i5Computer”,再组成相当低的售卖价格,大概令人看了热情洋溢。

try {

图片 10

// FIXME: this should be refactored better to not duplicate work with the action invocation

可是,留意看参数,才开掘那颗“intel 7系强芯”型号竟然是奔腾4415U,从属于速龙第七代Kaby Lake酷睿平台,仅竞赛扬N4100和赛扬N4000这一个垫底的Computer略强一些。奔腾4415U使用14nm工艺设计、采取双核多线程、拥有2.3GHz的主频、2MB高速缓存并集成HD610核芯显卡。

ValueStack stack = dispatcher.getContainer().getInstance(ValueStackFactory.class).createValueStack();

从品质的角度来看,七代奔腾4415U的品质,最多也就和3年前的五代酷睿i3持平,而日前已是八代酷睿管理器的五洲,所谓的“品质直逼主流i5Computer”也只是黄金年代种欺压“花甲之年人”的思维。

ActionContext ctx = new ActionContext(stack.getContext());

而外Computer,独立显卡也是夸大宣传的重灾害区。比如,这款产品配置了NVIDIA GeForce 940MX,但却称得上“强悍质量助您随即吃鸡”。

ActionContext.setContext(ctx);

图片 11

UtilTimerStack.push(timerKey);

只是,真符合规律玩《绝地求生》的游戏发烧友鲜明晓得,那款游戏对硬件的供给依然极高的,哪怕是上网本专项使用的NVIDIA GeForce GTX1050都不便管教高画质下的通畅运转,而浪漫本新品常用的NVIDIA GeForce MX150也一定要保险最低画质的流利体验。至于NVIDIA上代主流等级独显,940MX哪怕在低于画质也会日常遇上帧数低于20fps的情景,何来“强悍品质”一说?

request = prepareDispatcherAndWrapRequest(request, response);

在记录本的参数中,电瓶体量的单位都以“Wh”,那点相当轻便量化。不过,就台式机的续航时间,现阶段却未曾四个集结的正统,所以那就产生配置和电瓶容积肖似的三款台式机,官方在宣扬续航时间时的数目却相差数个钟头。

ActionMapping mapping;

图片 12

try {

举例,后生可畏款台式机官方宣传具有抢先10小时的续航本领,而这10钟头,则非常多是在实验室情状下测得,满含钦命的荧屏亮度、开启节约财富接纳、使用钦赐的测验或播放器软件。可是,实际生活却远比实验室情形复杂得多,在九成亮度、开启Wi-Fi、不特意关闭后台程序下上网或看录制,其实际的续航时间很大概唯有官方标称的55%。假设你拿台式机玩游戏,续航时间特别会裁减至59%还是更低。

//在这里处找到Action的映射器

故此,少年老成款台式机的续航参数仅供参谋,倘让你真的很留意那些数据,依然要求注意媒体或网络亲密的朋友的忠实评测战绩。其它,大器晚成款笔记本很恐怕存在大多版本,比如管理器是酷睿i7、i5照旧i7?硬盘是单SSD还是SSD+HDD双硬盘?是集显版仍然独显版?硬件搭配的不如,肖似会显然震慑笔记本的续航时间,并可能影响重量那么些参数。回到博客园,查看愈来愈多

mapping = actionMapper.getMapping(request, dispatcher.getConfigurationManager());

网编:

} catch (Exception ex) {

log.error("error getting ActionMapping", ex);

dispatcher.sendError(request, response, servletContext, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, ex);

return;

}

//未有此Action的话,就去搜索静态能源

if (mapping == null) {

// there is no action in this request, should we look for a static resource?

String resourcePath = RequestUtils.getServletPath(request);

if ("".equals(resourcePath) && null != request.getPathInfo()) {

resourcePath = request.getPathInfo();

}

if (staticResourceLoader.canHandle(resourcePath)) {

staticResourceLoader.findStaticResource(resourcePath, request, response);

} else {

// this is a normal request, let it pass through

chain.doFilter(request, response);

}

// The framework did its job here

return;

}

//有此Action的话则把调控权交给ActionProxy

dispatcher.serviceAction(request, response, servletContext, mapping);

} finally {

dispatcher.cleanUpRequest(request);

try {

ActionContextCleanUp.cleanUp(req);

} finally {

UtilTimerStack.pop(timerKey);

}

devModeOverride.remove();

}

}

4、要是ActionMapper决定须求调用有个别Action,FilterDispatcher把恳求的管理交给ActionProxy

public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context,

ActionMapping mapping) throws ServletException {

Map extraContext = createContextMap(request, response, mapping, context);

// If there was a previous value stack, then create a new copy and pass it in to be used by the new Action

ValueStack stack = (ValueStack) request.getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);

boolean nullStack = stack == null;

if (nullStack) {

ActionContext ctx = ActionContext.getContext();

if (ctx != null) {

stack = ctx.getValueStack();

}

}

if (stack != null) {

extraContext.put(ActionContext.VALUE_STACK, valueStackFactory.createValueStack(stack));

}

String timerKey = "Handling request from Dispatcher";

try {

UtilTimerStack.push(timerKey);

String namespace = mapping.getNamespace();

String name = mapping.getName();

String method = mapping.getMethod();

//获取配置文件

Configuration config = configurationManager.getConfiguration();

//依据布署文件找到此Action并生成ActionProxy

ActionProxy proxy = config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy(

namespace, name, method, extraContext, true, false);

request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, proxy.getInvocation().getStack());

// if the ActionMapping says to go straight to a result, do it!

if (mapping.getResult() != null) {

Result result = mapping.getResult();

//ActionProxy创设八个ActionInvocation的实例

result.execute(proxy.getInvocation());

} else {

proxy.execute();

}

// If there was a previous value stack then set it back onto the request

if (!nullStack) {

request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);

}

} catch (ConfigurationException e) {

logConfigurationException(request, e);

sendError(request, response, context, HttpServletResponse.SC_NOT_FOUND, e);

} catch (Exception e) {

if (handleException || devMode) {

sendError(request, response, context, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);

} else {

throw new ServletException(e);

}

} finally {

UtilTimerStack.pop(timerKey);

}

}

5、ActionProxy通过Configuration Manager询问框架的铺排文件,找到要求调用的Action类

6、ActionProxy创设一个ActionInvocation的实例。

7、ActionInvocation实例使用命超方式来调用,在调用Action的长河前后,涉及到相关拦截器(Intercepter)的调用。

8、黄金年代旦Action推行实现,ActionInvocation负担依据struts.xml中的配置找到呼应的回到结果。再次来到结果平时是(但不总是,也大概是其它的几个Action链)多少个亟待被代表的JSP只怕FreeMarker的模版。

9、将管理结果重返给顾客端

(2) SpringMVC 的原理

图片 13

实践步骤:

先是步:发起呼吁到前面二个调控器(DispatcherServlet)

第二步:前端调整器央求HandlerMapping查找 Handler

能够依据xml配置、评释进行搜寻

其三步:管理器映射器HandlerMapping向前端调节器重回Handler

第四步:前端调节器调用管理器适配器去施行Handler

第五步:管理器适配器去实行Handler

第六步:Handler实施到位给适配器重临ModelAndView

第七步:管理器适配器向前端调控器重回ModelAndView

ModelAndView是SpringMVC框架的三个底层对象,富含 Model和view

第八步:前端调整器央浼视图解析器去进行视图深入分析

依附逻辑视图名剖判成真的的视图(jsp)

第九步:视图剖析器向前端调节器重回View

第十步:前端调控器实行视图渲染

视图渲染将模型数据(在ModelAndView对象中)填充到request域

第十七步:前端调节器向客户响应结果

(3) Hibernate 的原理

1.因而Configuration().configure();读取并解析hibernate.cfg.xml配置文件

2.由hibernate.cfg.xml中的读取并剖判映射新闻

3.通过config.buildSessionFactory();//创建SessionFactory

4.sessionFactory.openSession();//打开Sesssion

5.session.beginTransaction();//创造专门的学问Transation

6.persistent operate漫长化操作

7.session.getTransaction().commit();//提交业务

8.关闭Session

9.关闭SesstionFactory

(4) MyBatis原理

图片 14

MyBatis框架推行进程:

1、配置MyBatis的布局文件,SqlMapConfig.xml(名称不稳固)

2、通过配备文件,加载MyBatis运维条件,创立SqlSessionFactory会话工厂

SqlSessionFactory 在实际利用时按单例方式。

3、通过SqlSessionFactory创建SqlSession

SqlSession 是二个面向顾客接口(提供操作数据库方法),达成目的是线程不安全的,提出sqlSession应用场馆在方式体内。

4、调用 sqlSession 的不二秘诀去操作数据。

借使必要付出业务,必要实施 SqlSession 的 commit() 方法。

5、释放能源,关闭SqlSession

Struts2 和 SpringMVC 在 web.xml 中配备的不等

(1) Struts2

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

filterConfig

classpath:struts2/struts.xml

struts2

/*

Struts2选择Filter嵌入本身的框架。配置文件加载顺序为:default.properties -> struts-default.xml -> struts-plugins.xml -> struts.xml -> struts.locale。

加载顺序能够参见那篇小说的源码深入分析摸底越来越多。

(2) SpringMVC

springmvc_rest

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring/springmvc.xml

springmvc_rest

/

SpringMVC使用Servlet嵌入本人的框架。

(3)web.xml差别之处

SpringMVC的入口是Servlet,而Struts2是Filter(这里要提议,Filter和Servlet是众口难调的。在此以前感觉filter是servlet的后生可畏种独特),那就形成了两个的建制不一致,这里就牵涉到Servlet和Filter的分别了。不过那只是接管客户伏乞的三种差别方法而已,调节权被Struts2和SpringMVC通晓之后,想做哪些事都是能够形成的。

Servlet

servlet是朝气蓬勃种运维服务器端的java应用程序,具备独立于阳台和钻探的天性,並且能够动态的生成web页面,它专门的学问在客商端诉求与服务器响应的中间层。最初支持Servlet 工夫的是 JavaSoft 的 Java Web Server。从今以后,一些任何的依据 Java 的 Web Server 开端扶助标准的 Servlet API。Servlet 的机要意义在于交互式地浏览和改变数据,生成动态 Web 内容。那几个进度为:

1) 客户端发送央浼至劳动器端;

2) 服务器将呼吁音信发送至 Servlet;

3) Servlet 生成响应内容并将其传给服务器。响应内容动态变化,常常决定于顾客端的央浼;

4) 服务器将响应重回给客商端。

在 Web 应用程序中,叁个 Servlet 在三个时刻可能被七个客商同不平时间做客。这时Web 容器将为每一个客商创造二个线程来推行 Servlet。假设 Servlet 不关乎分享财富的标题,不必关切二十四线程难点。但如若 Servlet 须求分享财富,要求保险 Servlet 是线程安全的。

为了简化开辟流程,Servlet 3.0 引入了疏解(annotation),那使得 web 安顿描述符 web.xml 不再是必得的精选。

Filter:Filter是二个方可复用的代码片段,能够用来退换HTTP恳求、响应和头新闻。Filter不像Servlet,它不可能产生多个乞求只怕响应,它只是改进对某一财富的央求,或然涂改从某生机勃勃的响应。Servlet中的过滤器Filter是贯彻了javax.servlet.Filter接口的服务器端程序,主要的用处是过滤字符编码、做一些事务逻辑判断等。其工作原理是,只要您在web.xml文件配置好要阻拦的客商端央浼,它都会帮你拦截到央求,当时您就足以对央求或响应(Request、Response)统生龙活虎安装编码,简化操作;同期还可举办逻辑剖断,如顾客是不是业已登入、有未有权力访谈该页面等等职业。它是随你的web应用运维而运转的,只最初化一遍,以往就足以阻止相关央求,唯有当您的web应用停止或重新陈设的时候才销毁。Filter可以为是Servlet的风姿洒脱种“变种”,它至关心重视要用于对客商央求实行预管理,也得以对HttpServletResponse实行后管理,是个非凡的管理链。它与Servlet的分别在于:它不可能直接向顾客生成响应。完整的流程是:Filter对客户伏乞进行预管理,接着将诉求提交Servlet实行管理并扭转响应,最终Filter再对服务器响应进行后甩卖。

Servlet与Filter的界别可以从那篇随笔理解越来越多。

Struts2 和 SpringMVC 管理顾客乞求的不等

Struts2和SpringMVC的基本都以接管客户的哀告,杀绝古板Servlet开采过度繁杂,重用性不高的难点。

Struts2和SpringMVC都有表明和配置文件二种相称顾客乞求UOdysseyL的情势。

Struts2疏解格局相称UTucsonL

参照网站:

首先需求将架包(struts2-convention-plugin-xxx.jar)导入工程中

示例

package com.example.actions;

import com.opensymphony.xwork2.ActionSupport;

import org.apache.struts2.convention.annotation.Action;

import org.apache.struts2.convention.annotation.Actions;

import org.apache.struts2.convention.annotation.Result;

import org.apache.struts2.convention.annotation.Results;

@Results({

@Result(name="failure", location="fail.jsp")

})

public class HelloWorld extends ActionSupport

{

@Action(value="/different/url",

results={@Result(name="success", location="", type="redirect")}

)

public String execute()

{

return SUCCESS;

}

@Action("/another/url")

public String doSomething()

{

return SUCCESS;

}

}

Struts2布局情势相称URubiconL

/fail.jsp

/fail.jsp

SpringMVC声明情势相称UTiggoL

package com.jpkc.controller;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.servlet.ModelAndView;

@RequestMapping("/admin")

@Controller

public class LoginController

{

@RequestMapping("/admin_home")

public String admin_home() throws Exception

{

return "forward:/shop/index.jsp";

}

@RequestMapping("/exit")

public String logout(ModelAndView model, HttpSession session) throws Exception

{

session.invalidate();

return "redirect:/manager/login.jsp";

}

}

SpringMVC配置形式相配UOdysseyL

public class ItemsController1 implements Controller

{

@Override

public ModelAndView handleRequest(HttpServletRequest request,

HttpServletResponse response) throws Exception

{

//调用Service查找 数据库,查询商品列表,这里运用静态数据模拟

List itemsList = new ArrayList();

//向list中填入静态数据

本文由betway必威官网注册发布于技术,转载请注明出处:成都汇智动力,警惕笔记本的宣传噱头

关键词:

上一篇:没有了

下一篇:没有了