- 理解信息安全官的角色和职责
凌云C
信息安全官(CISO)安全学习
引言在当今的数字化时代,信息安全已成为企业管理的关键要素之一。随着网络攻击的频繁发生和信息泄露事件的不断增加,企业面临的安全威胁日益严峻。信息安全官(ChiefInformationSecurityOfficer,CISO)作为企业信息安全的掌舵人,肩负着确保企业信息资产安全的重任。理解CISO的角色、职责及其在企业中的重要性,对于新任职或任职时间不长的信息安全官,以及希望提升信息安全管理水平的企
- docker基础
xinruoqianqiu
Linux共同学习docker容器运维
1、简介docker官方网站:https://www.docker.comdocker官方文档:https://docs.docker.comdocker镜像仓库:https://hub.docker.com2、名词解释镜像(image):docker镜像就好比是一个模板,可以通过这个模板来创建容器。tomcat镜像==>run==>tomcat01容器(提供服务器)。通过这个镜像可以创建多个容器
- BT-Basic函数之首字母S
可可南木
BT-Basic函数大全开发语言测试工具pcb工艺
BT-Basic函数之首字母S文章目录BT-Basic函数之首字母S`safeguard`savesavefailuresscratchboardselectboardsonpanelsendsetuptesteditorsgnshortssoftkeysoftkeyclearsoftkeyssoftkeysclearsoftkeysoffsoftkeyson/offsoftkeysoversof
- 【trino】trino配置证书https tls/ssl访问
lisacumt
数据仓库
trini版本470一、官方文档doc在Security/TLSandHTTPS、Security/PEMfiles和Security/JKSfiles下openssl文档二、配置trino2.1创建server.cnf文件[req]distinguished_name=req_distinguished_namereq_extensions=v3_req[req_distinguished_na
- Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南
CreativeDev
springboot后端java
SpringBoot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南一、核心概念对比1.本质区别维度过滤器(Filter)拦截器(Interceptor)规范层级Servlet规范(J2EE标准)SpringMVC框架机制作用范围所有请求(包括静态资源)只处理Controller请求依赖关系不依赖Spring容器完全集成SpringIOC容器执行顺序最先执行(
- T86分隔链表
sdccone1
算法
思想:借助辅助空间,同时维护两个链表:lowList按原先顺序保存所有val小于x的节点,hightList按原先顺序保存所有val>=x的节点,最后将这两个链表拼接起来即可时间复杂度O(N),空间复杂度O(1)classSolution{publicListNodepartition(ListNodehead,intx){if(head==null)returnhead;ListNodelowL
- Spring Boot + Vue + Element-UI 实现文件下载
Serenity_Qin
前端springbootvue.jsui
实现效果:点击链接,下载对应文件后端接口:importcom.example.admin.entity.FileEntity;importcom.example.admin.service.FileService;importcom.example.admin.utils.Result;importjakarta.servlet.ServletOutputStream;importjakarta.
- DAO 类的职责与设计原则
绝顶少年
原型模式
1.DAO的核心职责DAO(DataAccessObject,数据访问对象)的主要职责是封装对数据的访问逻辑,但它与纯粹的数据实体类(如DTO、POJO)不同,也与Service业务逻辑层不同。DAO应该做什么?✅数据访问操作:执行数据库CRUD(增删改查)操作提供查询接口(如findById,findAll,save,delete)处理数据库事务(通常由@Transactional管理)✅数据转
- 二、SpringMVC之控制器的数据响应和页面跳转使用
houysx
3SpringMVCspringMVCjava数据响应页面跳转
二、SpringMVC之控制器的数据响应和页面跳转使用一、SpringMVC的控制器方法的返回值1、概述SpringMVC的控制器方法提供了有三种返回值类型String:该返回值可以借助配置的视图解析器完成成页面跳转,数据响应需要借助形参的model或者request完成void:没有返回值,所以需要程序员自己使用servletAPI完成数据响应和页面跳转ModelAndVIew:该返回值可以完成
- Redisson使用--bitMap
南猫信巷
javaredis缓存
1.BitMap介绍Redis的位图(bitmap)是由多个二进制位组成的数组,只有两种状态,0和1,数组中的每个二进制位都有与之对应的偏移量(从0开始),通过这些偏移量可以对位图中指定的一个或多个二进制位进行操作。2.Redisson使用2.1bitmap的获取和设置2.1.1基础方法getBitSet方法,获取对应键的bitMap缓存。set(offset)方法,设置对应offset位置值为1
- Java基础 4.3
anlogic
javajava开发语言
1.对象机制练习publicclassObject03{publicstaticvoidmain(String[]args){Persona=newPerson();a.age=10;a.name="小明";Personb;b=a;System.out.println(b.name);//小明b.age=200;b=null;System.out.println(a.age);//200Syste
- Redisson中的RateLimiter令牌桶限流简单使用
LUCIAZZZ
java数据库springspringbootredis限流算法
部分内容来源:JavaGuide初步了解使用流程RRateLimiter的使用方式非常简单。我们首先需要获取一个RRateLimiter对象,直接通过Redisson客户端获取即可。然后,设置限流规则就好redissonClient.getRateLimiter()trySetRate()//创建一个Redisson客户端实例RedissonClientredissonClient=Redisso
- python中常用英语口语_课堂上,常用到的英语口语有哪些。?
大力.MAX001
python中常用英语口语
英语课堂用语400句一、Gettingthepupilsreadyforclass1.It'stimeforclass.上课时间到了。2.Let'sbeginourlesson.我们开始上课。3.Standup,please!请起立!4.Goodmorning,boysandgirls!大家早上好!5.IwillteachyouEnglishthisterm.这学期将由我教你们英语。6.Iamat
- 一小时刷完英语口语常用3000词汇(绿色护眼版)day11-词汇1001-1100
不懂事的小流氓
英语学习学习
原视频地址一小时刷完英语口语常用3000词汇(绿色护眼版)词汇100minenobodynonenothingourssomebodytheirthiersthemyoursasbelowbetweensincetowardunderuponwherewhomwhoseshallbyehellohiohactorappeardramaattendweddingcastlebelonggiantch
- python-leetcode-每日温度
Joyner2018
pythonleetcode算法职场和发展
739.每日温度-力扣(LeetCode)classSolution:defdailyTemperatures(self,temperatures:List[int])->List[int]:n=len(temperatures)answer=[0]*nstack=[]#存储索引fori,tempinenumerate(temperatures):whilestackandtemperatures
- JavaWeb开发基础知识-Listener
Eugene__Chen
hivehadoop数据仓库
(✪▽✪)曼波~~~~!欢迎来到曼波的JavaWeb小课堂~(转圈撒花)今天我们要学习像小精灵一样悄悄工作的Listener哦!(๑>ᴗcom.mambo.MyListener注解配置(超方便!)@WebListener//像贴便利贴一样简单~publicclassMyListenerimplementsServletContextListener{//...}实战案例:在线人数统计哦呜(°ロ°)
- Leetcode.每日温度(JAVA)
樱花山下
leetcode刷题leetcodejava算法
classSolution{publicint[]dailyTemperatures(int[]temperatures){intn=temperatures.length;int[]ans=newint[n];inttop=0;int[]stack=newint[n+1];for(inti=n-1;i>=0;i--){inttemp=temperatures[i];while(top!=0&&t
- JavaWeb开发基础知识-Servlet终极入门指南(曼波萌新版)
Eugene__Chen
servlethivehadoop
(✪▽✪)曼波~~~~!欢迎来到Servlet新手村!准备好开启Web开发的奇妙冒险了吗?让曼波用最有趣的方式带你飞~第①章什么是Servlet?//本质就是一个Java类!publicclassHelloServletextendsHttpServlet{//专门处理HTTP请求的小管家}官方定义:运行在服务器端的Java程序核心作用:接收请求→处理业务→返回响应生活比喻:就像餐厅的服务员(接单
- 从零实现Json-Rpc框架】- 项目实现 - 服务端主题实现及整体封装
JhonKI
jsonrpcqt
博客主页:https://blog.csdn.net/2301_779549673博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson欢迎点赞收藏⭐留言如有错误敬请指正!本文由JohnKi原创,首发于CSDN未来很长,值得我们全力奔赴更美好的生活✨文章目录前言️一、服务端主题管理模块1.1核心功能1.2核心设计思路1.3主题
- 6. Z 字形变换
糖醋_诗酒
力扣数据结构训练java算法数据结构
classSolution{public:stringconvert(strings,intnumRows){if(numRowsrows(numRows);inti=0,flag=-1;for(charc:s){rows[i].push_back(c);if(i==0||i==numRows-1)flag=-flag;i+=flag;}stringres;for(conststring&row:
- Python - Selenium抓取抖音直播间评论
miaomiaowins
pythonselenium开发语言
Python-Selenium抓取抖音直播间评论下面介绍如何使用python中的selenium简单抓取抖音直播间实时评论。友情提醒,仅供学习交流使用,请勿用于非法用途!一、创建python项目1.在目录下新建main.py和venv虚拟环境:创建虚拟环境:python-mvenvvenv激活虚拟环境:cd/venv/Scriptssourceactivate2.安装selenium:在激活的虚拟
- spring-kafka消费者源码详解
泡泡成长之路
java-springjavajavaspringkafka
@EnableKafka注解此注解会import一个类KafkaBootstrapConfiguration,这个类会创建2个bean:KafkaListenerAnnotationBeanPostProcessor和KafkaListenerEndpointRegistry@ConfigurationpublicclassKafkaBootstrapConfiguration{@Suppress
- 洛谷题单2-P5715 【深基3.例8】三位数排序-python-流程图重构
独好紫罗兰
LuoGu-pythonpython算法开发语言
题目描述给出三个整数a,b,c(0≤a,b,c≤100)a,b,c(0\lea,b,c\le100)a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。输入格式输入三个整数a,b,ca,b,ca,b,c,以空格隔开。输出格式输出一行,三个整数,表示从小到大排序后的结果。输入输出样例输入1145输出1514方式-内置函数代码classSolution:@staticmethoddef
- spring boot Configuration Annotation Processor not configured
白杨天之城
springbootjava后端
问题我们在使用@ConfigurationProperties注解加载配置文件中的内容时,出现springbootConfigurationAnnotationProcessornotconfigured提示,如图:解决方法:maven项目,加入以下依赖org.springframework.bootspring-boot-configuration-processortrue问题解决!其实不加也
- 石头剪刀布游戏
Stimpay
游戏
自己写的一个石头剪刀布游戏,如果有需要更改的地方请指出#define_CRT_SECURE_NO_WARNINGS//scanf_s编写起来太过于麻烦,直接把这个警告关掉,便于编写。#include#include#include//定义猜拳选项#defineRock1#definePaper2#defineScissors3voidrules(){printf("欢迎参加剪刀石头布游戏\n石头:
- 网络安全的挑战与防护策略
zhu1289303556
web安全网络安全
随着互联网的高速发展,人们的生活、学习和工作已离不开网络。然而,便利的背后也潜藏着巨大的安全隐患。从数据泄露、账户被盗,到网络攻击、系统瘫痪,网络安全问题层出不穷,影响范围从个人用户到国家机构。网络安全,不再是“技术人员”的专属话题,而是我们每一个数字公民都应关心和理解的现实问题。二、什么是网络安全?网络安全(CyberSecurity),是指保护计算机网络、系统、数据不受入侵、损坏、篡改和滥用的
- 网络安全协议:SSL/TLS与IPSec
shejizuopin
web安全sslphp网络安全协议SSL/TLSIPSec代码
网络安全协议:SSL/TLS与IPSec引言在当今数字化时代,网络安全已成为不可忽视的重要议题。SSL/TLS(SecureSocketsLayer/TransportLayerSecurity)和IPSec(InternetProtocolSecurity)是两种广泛使用的网络安全协议,它们分别在网络传输层和网络层提供安全保护。SSL/TLS主要用于保护Web通信,而IPSec则用于保护IP网络
- 最热Java毕业设计选题指南
qq_46040317
JAVA课程设计java课程设计开发语言
最近,越来越多的学生选择了Java作为自己的专业方向。面对众多的Java毕设课题,很多同学可能会感到迷茫和困惑。下面为大家列举了一些近几年比较热门的Java毕设课题,并给出了一定的分析和建议,希望能够帮助大家更好地选择适合自己的课题。WEB应用系统:此类项目一般使用JavaWeb技术,如Servlet、JSP、Struts、SpringMVC等,进行实际的业务开发。例如,点餐系统、学生管理系统、酒
- 深入解析 Java Optional:避免 NPE 的最佳实践与代码示例
不是二师兄的八戒
java开发语言
Optional是Java8引入的一个容器类,用于避免NullPointerException(NPE),并鼓励更优雅的代码风格。它提供了多种方法来处理可能为空的值。以下是一些深入学习Optional的代码示例:1.创建Optionalimportjava.util.Optional;publicclassOptionalExample{publicstaticvoidmain(String[]a
- Ubuntu-22.04安装ROS2
Suger999
ubuntuROS2
安装ROS2本教程使用Ubuntu-22.04.5-desktop-amd64.iso操作系统Ubuntu22.04镜像源参考从默认的软件服务器拉取所有的关键列表$sudoaptupdate获取:1http://security.ubuntu.com/ubuntujammy-securityInRelease[129kB]命中:2http://mirrors.tuna.tsinghua.edu.c
- java Illegal overloaded getter method with ambiguous type for propert的解决
zwllxs
javajdk
好久不来iteye,今天又来看看,哈哈,今天碰到在编码时,反射中会抛出
Illegal overloaded getter method with ambiguous type for propert这么个东东,从字面意思看,是反射在获取getter时迷惑了,然后回想起java在boolean值在生成getter时,分别有is和getter,也许我们的反射对象中就有is开头的方法迷惑了jdk,
- IT人应当知道的10个行业小内幕
beijingjava
工作互联网
10. 虽然IT业的薪酬比其他很多行业要好,但有公司因此视你为其“佣人”。
尽管IT人士的薪水没有互联网泡沫之前要好,但和其他行业人士比较,IT人的薪资还算好点。在接下的几十年中,科技在商业和社会发展中所占分量会一直增加,所以我们完全有理由相信,IT专业人才的需求量也不会减少。
然而,正因为IT人士的薪水普遍较高,所以有些公司认为给了你这么多钱,就把你看成是公司的“佣人”,拥有你的支配
- java 实现自定义链表
CrazyMizzz
java数据结构
1.链表结构
链表是链式的结构
2.链表的组成
链表是由头节点,中间节点和尾节点组成
节点是由两个部分组成:
1.数据域
2.引用域
3.链表的实现
&nbs
- web项目发布到服务器后图片过一会儿消失
麦田的设计者
struts2上传图片永久保存
作为一名学习了android和j2ee的程序员,我们必须要意识到,客服端和服务器端的交互是很有必要的,比如你用eclipse写了一个web工程,并且发布到了服务器(tomcat)上,这时你在webapps目录下看到了你发布的web工程,你可以打开电脑的浏览器输入http://localhost:8080/工程/路径访问里面的资源。但是,有时你会突然的发现之前用struts2上传的图片
- CodeIgniter框架Cart类 name 不能设置中文的解决方法
IT独行者
CodeIgniterCart框架
今天试用了一下CodeIgniter的Cart类时遇到了个小问题,发现当name的值为中文时,就写入不了session。在这里特别提醒一下。 在CI手册里也有说明,如下:
$data = array(
'id' => 'sku_123ABC',
'qty' => 1,
'
- linux回收站
_wy_
linux回收站
今天一不小心在ubuntu下把一个文件移动到了回收站,我并不想删,手误了。我急忙到Nautilus下的回收站中准备恢复它,但是里面居然什么都没有。 后来我发现这是由于我删文件的地方不在HOME所在的分区,而是在另一个独立的Linux分区下,这是我专门用于开发的分区。而我删除的东东在分区根目录下的.Trash-1000/file目录下,相关的删除信息(删除时间和文件所在
- jquery回到页面顶端
知了ing
htmljquerycss
html代码:
<h1 id="anchor">页面标题</h1>
<div id="container">页面内容</div>
<p><a href="#anchor" class="topLink">回到顶端</a><
- B树、B-树、B+树、B*树
矮蛋蛋
B树
原文地址:
http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html
B树
即二叉搜索树:
1.所有非叶子结点至多拥有两个儿子(Left和Right);
&nb
- 数据库连接池
alafqq
数据库连接池
http://www.cnblogs.com/xdp-gacl/p/4002804.html
@Anthor:孤傲苍狼
数据库连接池
用MySQLv5版本的数据库驱动没有问题,使用MySQLv6和Oracle的数据库驱动时候报如下错误:
java.lang.ClassCastException: $Proxy0 cannot be cast to java.sql.Connec
- java泛型
百合不是茶
java泛型
泛型
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,任意化的缺点就是要实行强制转换,这种强制转换可能会带来不安全的隐患
泛型的特点:消除强制转换 确保类型安全 向后兼容
简单泛型的定义:
泛型:就是在类中将其模糊化,在创建对象的时候再具体定义
class fan
- javascript闭包[两个小测试例子]
bijian1013
JavaScriptJavaScript
一.程序一
<script>
var name = "The Window";
var Object_a = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
- 探索JUnit4扩展:假设机制(Assumption)
bijian1013
javaAssumptionJUnit单元测试
一.假设机制(Assumption)概述 理想情况下,写测试用例的开发人员可以明确的知道所有导致他们所写的测试用例不通过的地方,但是有的时候,这些导致测试用例不通过的地方并不是很容易的被发现,可能隐藏得很深,从而导致开发人员在写测试用例时很难预测到这些因素,而且往往这些因素并不是开发人员当初设计测试用例时真正目的,
- 【Gson四】范型POJO的反序列化
bit1129
POJO
在下面这个例子中,POJO(Data类)是一个范型类,在Tests中,指定范型类为PieceData,POJO初始化完成后,通过
String str = new Gson().toJson(data);
得到范型化的POJO序列化得到的JSON串,然后将这个JSON串反序列化为POJO
import com.google.gson.Gson;
import java.
- 【Spark八十五】Spark Streaming分析结果落地到MySQL
bit1129
Stream
几点总结:
1. DStream.foreachRDD是一个Output Operation,类似于RDD的action,会触发Job的提交。DStream.foreachRDD是数据落地很常用的方法
2. 获取MySQL Connection的操作应该放在foreachRDD的参数(是一个RDD[T]=>Unit的函数类型),这样,当foreachRDD方法在每个Worker上执行时,
- NGINX + LUA实现复杂的控制
ronin47
nginx lua
安装lua_nginx_module 模块
lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty
Centos和debian的安装就简单了。。
这里说下freebsd的安装:
fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
ma
- java-递归判断数组是否升序
bylijinnan
java
public class IsAccendListRecursive {
/*递归判断数组是否升序
* if a Integer array is ascending,return true
* use recursion
*/
public static void main(String[] args){
IsAccendListRecursiv
- Netty源码学习-DefaultChannelPipeline2
bylijinnan
javanetty
Netty3的API
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/ChannelPipeline.html
里面提到ChannelPipeline的一个“pitfall”:
如果ChannelPipeline只有一个handler(假设为handlerA)且希望用另一handler(假设为handlerB)
来
- Java工具之JPS
chinrui
java
JPS使用
熟悉Linux的朋友们都知道,Linux下有一个常用的命令叫做ps(Process Status),是用来查看Linux环境下进程信息的。同样的,在Java Virtual Machine里面也提供了类似的工具供广大Java开发人员使用,它就是jps(Java Process Status),它可以用来
- window.print分页打印
ctrain
window
function init() {
var tt = document.getElementById("tt");
var childNodes = tt.childNodes[0].childNodes;
var level = 0;
for (var i = 0; i < childNodes.length; i++) {
- 安装hadoop时 执行jps命令Error occurred during initialization of VM
daizj
jdkhadoopjps
在安装hadoop时,执行JPS出现下面错误
[slave16]root@192.168.11.10:/tmp/hsperfdata_hdfs# jps
Error occurred during initialization of VM
java.lang.Error: Properties init: Could not determine current working
- PHP开发大型项目的一点经验
dcj3sjt126com
PHP重构
一、变量 最好是把所有的变量存储在一个数组中,这样在程序的开发中可以带来很多的方便,特别是当程序很大的时候。变量的命名就当适合自己的习惯,不管是用拼音还是英语,至少应当有一定的意义,以便适合记忆。变量的命名尽量规范化,不要与PHP中的关键字相冲突。 二、函数 PHP自带了很多函数,这给我们程序的编写带来了很多的方便。当然,在大型程序中我们往往自己要定义许多个函数,几十
- android笔记之--向网络发送GET/POST请求参数
dcj3sjt126com
android
使用GET方法发送请求
private static boolean sendGETRequest (String path,
Map<String, String> params) throws Exception{
//发送地http://192.168.100.91:8080/videoServi
- linux复习笔记 之bash shell (3) 通配符
eksliang
linux 通配符linux通配符
转载请出自出处:
http://eksliang.iteye.com/blog/2104387
在bash的操作环境中有一个非常有用的功能,那就是通配符。
下面列出一些常用的通配符,如下表所示 符号 意义 * 万用字符,代表0个到无穷个任意字符 ? 万用字符,代表一定有一个任意字符 [] 代表一定有一个在中括号内的字符。例如:[abcd]代表一定有一个字符,可能是a、b、c
- Android关于短信加密
gqdy365
android
关于Android短信加密功能,我初步了解的如下(只在Android应用层试验):
1、因为Android有短信收发接口,可以调用接口完成短信收发;
发送过程:APP(基于短信应用修改)接受用户输入号码、内容——>APP对短信内容加密——>调用短信发送方法Sm
- asp.net在网站根目录下创建文件夹
hvt
.netC#hovertreeasp.netWeb Forms
假设要在asp.net网站的根目录下建立文件夹hovertree,C#代码如下:
string m_keleyiFolderName = Server.MapPath("/hovertree");
if (Directory.Exists(m_keleyiFolderName))
{
//文件夹已经存在
return;
}
else
{
try
{
D
- 一个合格的程序员应该读过哪些书
justjavac
程序员书籍
编者按:2008年8月4日,StackOverflow 网友 Bert F 发帖提问:哪本最具影响力的书,是每个程序员都应该读的?
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本, 你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数
- 单实例实践
跑龙套_az
单例
1、内部类
public class Singleton {
private static class SingletonHolder {
public static Singleton singleton = new Singleton();
}
public Singleton getRes
- PO VO BEAN 理解
q137681467
VODTOpo
PO:
全称是 persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
BO:
全称是 business object:业务对象 主要作用是把业务逻辑封装为一个对象。这个对
- 战胜惰性,暗自努力
金笛子
努力
偶然看到一句很贴近生活的话:“别人都在你看不到的地方暗自努力,在你看得到的地方,他们也和你一样显得吊儿郎当,和你一样会抱怨,而只有你自己相信这些都是真的,最后也只有你一人继续不思进取。”很多句子总在不经意中就会戳中一部分人的软肋,我想我们每个人的周围总是有那么些表现得“吊儿郎当”的存在,是否你就真的相信他们如此不思进取,而开始放松了对自己的要求随波逐流呢?
我有个朋友是搞技术的,平时嘻嘻哈哈,以
- NDK/JNI二维数组多维数组传递
wenzongliang
二维数组jniNDK
多维数组和对象数组一样处理,例如二维数组里的每个元素还是一个数组 用jArray表示,直到数组变为一维的,且里面元素为基本类型,去获得一维数组指针。给大家提供个例子。已经测试通过。
Java_cn_wzl_FiveChessView_checkWin( JNIEnv* env,jobject thiz,jobjectArray qizidata)
{
jint i,j;
int s