- Python 程序设计讲义(25):循环结构——嵌套循环
Python程序设计讲义(25):循环结构——嵌套循环目录Python程序设计讲义(25):循环结构——嵌套循环一、嵌套循环的执行流程二、嵌套循环对应的几种情况1、内循环和外循环互不影响2、外循环迭代影响内循环的条件3、外循环迭代影响内循环的循环体嵌套循环是指在一个循环体中嵌套另一个循环。while循环中可以嵌入另一个while循环或for循环。反之,也可以在for循环中嵌入另一个for循环或wh
- 7.21 树&递归
lvy-
随记notec++算法
最大的收获,不在于怎么做这道题,而在于面对一个递归的题目时,最高效的思维框架是什么。递推参数、终止条件、递推任务,脑子里要有这个框架lc3226抽象思考,统计1的个数差异就好了,无需关心前导0classSolution{public:intcntBits(intx){intcnt=0;while(x){if(x&1)cnt++;x=x>>1;}returncnt;}intminChanges(in
- OpenCV读取视频帧卡死的BUG修复
henysugar
opencv音视频bug
OpenCV读取指定视频文件如果异常的时候,会卡死一直不退出,问题是卡在CvCapture_MSMF::grabVideoFrame函数内,跟了一下,发现有个判断有点问题,其下面的源码:while(!stopFlag) { for(;;) { CV_TRACE_REGION("ReadSample"); if(!SUCCEEDED(hr=videoFileSour
- day18-作业
oct___d38e9
server.pyfromsocketimport*importosserver=socket()server.bind(('10.7.181.100',8888))server.listen(512)withopen('start.txt','r',encoding='utf-8')asf:start=f.read()whileTrue:connet,adress=server.accept()
- 深入理解Python中的循环:for、while、break与continue,以及循环中的else
目录前言一、for循环二、while循环一、break与continue四、循环与else总结前言在Python编程中,循环是控制程序流程的基本结构之一。通过循环,我们可以重复执行一段代码块,直到满足特定条件。本文将详细探讨Python中的常见循环结构,包括for循环、while循环、break和continue控制语句,以及一个常被忽视的特性——循环中的else。了解这些内容,将帮助你更高效地编
- C语言—哈夫曼编码译码器
为什么名字不能重复呢?
C语言c语言
1.介绍设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下业务,直到选择退出为止。(说明:在代码中使用while循环,并设置一个跳出循环即退出的字符,例如:e,当输入’e’时,跳出循环,重复结束)(1)初始化:键盘输入n个字符和n个权值,建立哈夫曼树(n>=5);(说明:哈夫曼树使用静态三叉链表结构,有权重,parent,,lchild,,rchild;哈夫曼编码用指向叶子的指针,叶子结
- 计算多个鞋尺码对应的英尺长度
小风xf
#include#defineADJUST7.64#defineSCALE0.325voidmain(){doubleshoe,foot;shoe=3.0;printf("shoesize(men's)footlenth\n");while(shoe<18.5){foot=SCALE*shoe+ADJUST;printf("%10.1f%15.2finches\n",shoe,foot);shoe
- 熟悉亚马逊邮件(第九天)
七qi_
电商运营分析学习方法
HellofromAmazonSellingPartnerSupport,Weunderstandyourrequestare-measurementandreimbursementforFBAexcessesfeePleasenotethatwearestillworkingwithourrelevantteamtoreacharesolutiononyourcase.Whileweareuna
- 高效搜索旋转排序数组:O(logn)解法揭秘
lbflyo
算法leetcode数据结构
力扣中等题:33.搜索旋转排序数组整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0&nums,inttarget){intn=(int)nums.size();if(!n){return-1;}//数组为空,直接返回-1if(n==1){returnnums[0]==target?0:-1;}intl=0,r=n-1;while(l<=r){in
- 第八节课作业第四题
你不要难过
作业要求:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值。作业代码:stringstrNumber="";intmax=0;while(strNumber!="end"){Console.WriteLine("请输入一个数字,输入end,我们将显示你输入的数字中的最大值");strNumber=Console.ReadLine();if(s
- 常见的 Python 错误及其解决方案
爱我所爱flash
python开发语言
SyntaxError:invalidsyntax说明:无效的语法是最常见的错误之一,通常是由于编写代码时违反了Python的语法规则。可能的原因:忘记在if、while、for等语句后写冒号,或者将冒号写成分号或其他符号。解决方案:更改为英文半角冒号。代码中可能存在未正确关闭的括号,或者在字符串中使用的引号未正确匹配。解决方案:检查括号,引号处。条件表达式中出现等号(=)。解决方案:将其更改为比
- 小丁的ScalersTalk第五轮新概念朗读持续力训练Day96-20200126
丁丁水天
1.练习材料lesson6smashandgrabWhilethiswasgoingon,Mr.Taylorwasupstairs.Heandhisstaffbeganthrowingfurnitureoutofthewindow.Chairsandtableswentflyingintothearcade.Oneofthethieveswasstruckbyaheavystatue,buthew
- 【通识】C语言
Alla T
c语言算法开发语言
1.常用小技巧判断a和b的哪个最大:max(a,b)=a>b?a:b;从标准输入(键盘)读取一个字符:getchar()#includeintmain(){intc;printf("请输入一行文字(按回车结束):\n");while((c=getchar())!='\n'&&c!=EOF){putchar(c);//逐个输入字符}return0;}12.案例1#includeintmain(){c
- JavaScript手录04-【if-else&switch】语句
一、表达式、语句和函数语句(Statements)语句是JavaScript执行的基本单位,用于完成特定操作(如判断、循环、赋值等)。语句通常以分号;结束(某些情况下可省略),多个语句可以组成代码块(用{}包裹)。特点:语句的执行会产生某种行为(如改变变量值、控制流程)语句本身没有返回值(或返回值为undefined)常见语句:if-else、for、while、return、break等。函数(
- Matlab中的 for 与while是有区别的
Ndmzi
数据结构算法
在MATLAB中,for循环的迭代变量i实际上是由循环范围控制的,也就是说,你在循环体内直接修改i是不会影响下一次迭代的i值。你的例子:matlabfori=1:5ifi==2i=i+1;%实际不会跳过下一个iendiend会输出:12345这是因为fori=1:5本质上是:matlabfortemp=[12345]i=temp;...end所以i=i+1只是临时修改了变量,不会影响下一个temp
- 9:java学习笔记:do-while语句
Charles Wesley(范清远)
java学习java笔记eclipse
do-while也是一种循环语句,与while很像,但是与while刚刚好反一下。9.1do-while的基本结构do{//循环体:要执行的代码}while(条件);do--while是先循环,再判断条件,就是先执行代码,然后呢判断条件,循环体先执行一次;然后判断条件;如果条件为true,再重复执行;如果条件为false,就退出。这个结构刚刚好和while循环的结构是相反的。注意!!while(条
- 《伴你高飞》观影小记:爱点亮人生的高光时刻
宋池荷荷
无意中听到一首歌《10000miles》,然后摸到这部电影:《伴你高飞》,电影的片头和片尾曲都是这首,但两次听到的时候感受是完全不同的。刚开始的时候,感觉到的是开阔的天地,美丽的大自然,美好的生灵,非常惬意舒服。Faretheewell祝你好运Myowntruelove我真挚的爱人Farewellforawhile我们要短暂的分别了I’mgoingaway我要远去ButI’llbeback但我会归
- 2018.8.15【Day337】今日所读:《Harry Potter1》P255-361
_原野
图片发自AppDidoWhilereadingthisbook,myheart'sbeenintothesadmoodaboutlovemixingwiththefunnytoneofRowlingandwarmththatWeasleys'familygaveme.Don'twannasaymuch.【1】FriendshipThreechildrenfoundoneanotherinthatu
- 小杰学C(six day)——少年当有凌云志,万里长空竞风流
jie*
c语言c++算法
1.循环语句(1)do_while格式:定义循环变量并赋值;do{语句块;增值或减值语句;}while(表达式);死循环:for(;;){}while(1){}//让程序卡死在这等while(1);循环控制语句break:直接结束循环continue:结束本次循环,继续下次循环使用场景:使用在循环语句中,结束循环使用时需要有判断条件如:#includeintmain(intargc,charcon
- C语言综合案例-猜拳游戏
C语言综合案例-猜拳游戏功能实现:1.选择对手2.自己出拳3.对手出拳4.双方比较5.退出游戏分析通过C语言中的分支结构和循环结构来完成这个简单的猜拳游戏,根据需求将其功能分为5部分,通过循环结构和分支结构完善其功能。以简单的if…else,switch,while语句就可以完成。具体代码如下:代码/*************************************************
- C语言:break、continue、猜拳游戏
橙小花
c语言游戏算法
Day7-C语言流程控制break与continuebreak功能:①用在switch中,用来跳出case语句;无break,switch会执行多条语句,case穿透②在循环中(while…,for…,do…while),提前结束循环说明:①break不能用于循环语句和switch语句之外的任何其他语句中②break只能终止并跳出最近的一层循环结构案例需求:参与考试,及格跳出循环,否则一直考代码#
- P1217 [USACO1.5] 回文质数 Prime Palindromes
张辰宇-
算法
题目描述因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151是回文质数。写一个程序来找出范围[a,b](5≤ausingnamespacestd;boolhuiwen(intn){ints=0,k=n;while(k!=0){s*=10;s+=k%10;k/=10;}if(s==n)returntrue;returnfalse;}boolzhishu(intn){for
- 嵌入式Qt开发C++基础编程
嵌入式Qt开发C++基础编程文章目录嵌入式Qt开发C++基础编程1、初识C++2、数据类型、运算符和表达式数据类型运算符表达式3、控制结构1.条件语句if-elseswitch2.循环语句forwhiledo-while3.跳转语句breakcontinuegoto(不推荐使用)1、初识C++c++标准输出cout,endl换行。#include"iostream"usingnamespacest
- Python基础学习第二课:逻辑控制与函数入门
黑科技Python
python学习
以下是Python基础学习第二课的完整内容,承接第一课的基础语法,重点讲解条件判断、循环结构、函数定义等核心逻辑控制知识,附带大量实例和练习:Python基础学习第二课:逻辑控制与函数入门一、课程目标1.掌握条件判断语句("if-elif-else")2.理解循环结构("for"循环和"while"循环)3.学会定义和调用函数("def")4.熟悉代码复用与模块化编程思想二、条件判断:"if-el
- 编写一个程序,输入任意两个整数,求出他们的商和余数,并输出
EchoRain_ProMax
c算法c语言c++算法
由题意可知,需要两个变量记录输入两个的整数,一个变量存放两个数的相除,用两个变量复制前两个变量代码:#includeintmain(){inti,j,k,aus=0;printf("请输入两个整数:");scanf("%d%d",&i,&j);k=i%j;inti1=i,j1=j;while(i>0){aus++;i=i-j;}//%SystemRoot%\System32\cmd.exeif(i
- C语言十进制转八进制、十六进制
xqj922
C语言c语言开发语言算法
原理:十进制数除以8(16)反向取余,直至商为0。代码:#include//十进制转八进制intmain(){inta=1234;inty=1;//位数intx=0;//八进制数while(a!=0){x+=(a%8)*y;//计算的值是八进制得数a/=8;//商y*=10;//位置更新}printf("0%d\n",x);return0;}使用格式控制串“%o”、“%X”代码如下:#includ
- 【循环语句,求100内能被6整除的和】
智者知已应修善业
算法经验分享笔记c++c语言数据结构
缘由循环语句,求100内能被6整除的和-其他-CSDN问答高效的来二个inta=6,b=1,h=0;while(a*b<100)h+=a*b,++b;inta=6,h=0;while(a<100)h+=a,a+=6;
- C语言十进制转十六进制
云雾栀子青,
算法c语言学习
十进制转十六进制#includeintmain(){intn,i=0,j;chara[100];scanf("%d",&n);if(n==0)printf("%d",n);else{while(n!=0){switch(n%16){case0:a[i]='0';break;case1:a[i]='1';break;case2:a[i]='2';break;case3:a[i]='3';break;
- windows dockerdesktop拉取镜像报错
lishijie135
windows
1.问题描述:运行docker-composeup-d启动容器报错:Errorresponsefromdaemon:Get"https://registry-1.docker.io/v2/":net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)如下图:问题分析:执行
- LeetCode 167.两数之和2-输入有序数组
吃着火锅x唱着歌
LeetCodeleetcode算法职场和发展
给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是numbers[index1]和numbers[index2],则1twoSum(vector&numbers,inttarget){intleft=0;intright=numbers.size()-1;while(lefttarget){--r
- 安装数据库首次应用
Array_06
javaoraclesql
可是为什么再一次失败之后就变成直接跳过那个要求
enter full pathname of java.exe的界面
这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe!
注意第一次,使用SQL D
- Weblogic Server Console密码修改和遗忘解决方法
bijian1013
Welogic
在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。
一.修改Console密码
打开weblogic控制台,安全领域 --> myrealm -->&n
- IllegalStateException: Cannot forward a response that is already committed
Cwind
javaServlets
对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码:
protected void doPost() {
if (someCondition) {
sendRedirect();
}
forward(); // Thi
- 基于流的装饰设计模式
木zi_鸣
设计模式
当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。
自定义的类成为装饰类
模仿BufferedReader,对Reader进行包装,体现装饰设计模式
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。
装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系
装饰类因为增强已有对象,具备的功能该
- Linux中的uniq命令
被触发
linux
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。
AD:
uniq [选项] 文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个
- 正则表达式Pattern
肆无忌惮_
Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。
例如,我们需要对QQ号码格式进行检验
规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14}
&nbs
- Oracle高级查询之OVER (PARTITION BY ..)
知了ing
oraclesql
一、rank()/dense_rank() over(partition by ...order by ...)
现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:
select e.ename, e.job, e.sal, e.deptno
from scott.emp e,
(se
- Python调试
矮蛋蛋
pythonpdb
原文地址:
http://blog.csdn.net/xuyuefei1988/article/details/19399137
1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:
IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:
http://www.ibm.com/d
- webservice传递自定义对象时函数为空,以及boolean不对应的问题
alleni123
webservice
今天在客户端调用方法
NodeStatus status=iservice.getNodeStatus().
结果NodeStatus的属性都是null。
进行debug之后,发现服务器端返回的确实是有值的对象。
后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。
本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的
- java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针
百合不是茶
C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:
定义一个指针p来指向a的地址(&是地址符号):
- Eclipse打不开,提示“An error has occurred.See the log file ***/.log”
bijian1013
eclipse
打开eclipse工作目录的\.metadata\.log文件,发现如下错误:
!ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai
- spring aop实例annotation方法实现
bijian1013
javaspringAOPannotation
在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut
AdviceMethods.jav
- [Velocity一]Velocity语法基础入门
bit1129
velocity
用户和开发人员参考文档
http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html
注释
1.行级注释##
2.多行注释#* *#
变量定义
使用$开头的字符串是变量定义,例如$var1, $var2,
赋值
使用#set为变量赋值,例
- 【Kafka十一】关于Kafka的副本管理
bit1129
kafka
1. 关于request.required.acks
request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0,
0表示即不进行确认即返回。
1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中
-1表示根据指定的最少Partition确认后才返回,这个在
Th
- lua统计nginx内部变量数据
ronin47
lua nginx 统计
server {
listen 80;
server_name photo.domain.com;
location /{set $str $uri;
content_by_lua '
local url = ngx.var.uri
local res = ngx.location.capture(
- java-11.二叉树中节点的最大距离
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class MaxLenInBinTree {
/*
a. 1
/ \
2 3
/ \ / \
4 5 6 7
max=4 pass "root"
- Netty源码学习-ReadTimeoutHandler
bylijinnan
javanetty
ReadTimeoutHandler的实现思路:
开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException
这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如
private final ChannelHandler timeoutHandler =
new ReadTim
- jquery验证上传文件样式及大小(好用)
cngolon
文件上传jquery验证
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery1.8/jquery-1.8.0.
- 浏览器兼容【转】
cuishikuan
css浏览器IE
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
daizj
shell$#$?特殊变量
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
$echo $$
运行结果
29949
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个
- 程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!
dcj3sjt126com
unix
翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。
KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原
- android Activity间List传值
dcj3sjt126com
Activity
第一个Activity:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a
- tomcat 设置java虚拟机内存
eksliang
tomcat 内存设置
转载请出自出处:http://eksliang.iteye.com/blog/2117772
http://eksliang.iteye.com/
常见的内存溢出有以下两种:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
------------
- Android 数据库事务处理
gqdy365
android
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事
- Java 打开浏览器
hw1287789687
打开网址open浏览器open browser打开url打开浏览器
使用java 语言如何打开浏览器呢?
我们先研究下在cmd窗口中,如何打开网址
使用IE 打开
D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709
使用火狐打开
D:\software\bin>cmd /c start firefox http://hw1287789
- ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件
justjavac
chromeGooglegoogle apichrome插件
Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice
由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧
- 进程VS.线程
m635674608
线程
资料来源:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点:
多进程模式最大
- Linux下安装MemCached
字符串
memcached
前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n
- java设计模式之--jdk动态代理(实现aop编程)
Supanccy2013
javaDAO设计模式AOP
与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。
&
- Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持
wiselyman
spring 4
2.1 默认方法(default method)
java8引入了一个default medthod;
用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
使用default关键字
Spring 4.2支持加载在默认方法里声明的bean
2.2
将要被声明成bean的类
public class DemoService {