首页编程java编程javapos叫什么(什么叫KJAVA)

javapos叫什么(什么叫KJAVA)

编程之家2023-10-1289次浏览

大家好,今天来为大家解答javapos叫什么这个问题的一些问题点,包括什么叫KJAVA也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

javapos叫什么(什么叫KJAVA)

用java求最短路径问题,求源程序

import java.util.Vector;

public class Link{

private Vector link= new Vector();

javapos叫什么(什么叫KJAVA)

// private Link next= null;

public Link(){

}

javapos叫什么(什么叫KJAVA)

public boolean addNode(Node setNode){//增加一个节点

setNode= checkNode(setNode);

if(setNode!= null){

this.link.addElement((Node)setNode);

return true;

}

return false;

}

public void delNode(Node setNode){//删除一个节点

if(!this.link.isEmpty()){

for(int i=0;i< this.link.size(); i++)

{

if(setNode.getPos()==((Node)this.link.elementAt(i)).getPos()){

this.link.remove(i);

//System.out.println("asdfasdfas:"+this.link.size());

break;

}

}

}

}

public Node checkNode(Node setNode){//判断节点是否在链表里面并取得两者的最佳值

if(!this.link.isEmpty()&& setNode!=null){

for(int i=0;i< this.link.size(); i++)

{

if(setNode.getPos()==((Node)this.link.elementAt(i)).getPos()){

if(setNode.getStep()<((Node)this.link.elementAt(i)).getStep()){

setNode=(Node)this.link.elementAt(i);

this.link.remove(i);

}

else

return null;

break;

}

}

}

return setNode;

}

public boolean isEmpty(){

return this.link.isEmpty();

}

public Node getBestNode(){//得到最好的节点

Node tmpNode= null;

if(!this.link.isEmpty()){

tmpNode=(Node)this.link.elementAt(0);

//System.out.println("tmpNodeStep:"+tmpNode.getStep());

//System.out.print("OpenNode(pos,step):");

for(int i=1;i< this.link.size(); i++)

{

//System.out.print("("+((Node)this.link.elementAt(i)).getPos()+","+((Node)this.link.elementAt(i)).getStep()+")");

if(tmpNode.getJudgeNum()>=((Node)this.link.elementAt(i)).getJudgeNum()){

tmpNode=(Node)this.link.elementAt(i);

}

}

}

return tmpNode;

}

}

public class FindBestPath{

private char[][] map= null;//地图

private int maxX,maxY;//最大的地图边界大小

Node startNode= null;//入口

Node endNode= null;//出口

private int endX,endY;

/*初始化

*@param setMap地图

*@param setX,setY边界值

//////////*@param startNode入口

//////////*param endNode出口

*@param sX,sY:开始点

*@param eX,eY:结束点

*/

public FindBestPath(char[][] setMap,int setX,int setY,int sX,int sY,int eX,int eY){

this.map= setMap;

this.maxY= setX- 1;//x,y互换

this.maxX= setY- 1;//x,y互换

//this.startNode= sNode;

//this.endNode= eNode;

Node sNode= new Node();

Node eNode= new Node();

sNode.setFarther(null);

sNode.setPos(posToNum(sX,sY));

sNode.setStep(0);

eNode.setPos(posToNum(eX,eY));

this.startNode= sNode;

this.endNode= eNode;

this.endX= eX;//numToX(eNode.getPos());

this.endY= eY;//numToY(eNode.getPos());

}

public int posToNum(int x,int y){//从xy坐标获得编号

return(x+y*(this.maxY+1));

}

public int numToX(int num){//从编号获得x坐标

return(num%(this.maxY+1));

}

public int numToY(int num){//从编号获得y坐标

return(int)(num/(this.maxY+1));

}

public boolean checkVal(int x,int y){//判断是否为障碍

//System.out.println("map["+x+"]["+y+"]="+map[x][y]);

if(this.map[x][y]=='N')

return false;

else

return true;

}

public int judge(Node nowNode){//一定要比实际距离小

//System.out.println("nowNodePos:"+nowNode.getPos());

int nowX= numToX(nowNode.getPos());

int nowY= numToY(nowNode.getPos());

int distance= Math.abs((nowX-this.endX))+Math.abs((nowY-this.endY));

// System.out.println("distance:"+distance);

return distance;

}

public Node getLeft(Node nowNode){//取得左节点

int nowX= numToX(nowNode.getPos());

int nowY= numToY(nowNode.getPos());

Node tmpNode= new Node();

if(nowY> 0){//判断节点是否到最左

if(checkVal(nowX,nowY-1)){

tmpNode.setFarther(nowNode);

tmpNode.setPos(posToNum(nowX,nowY-1));

tmpNode.setStep(nowNode.getStep()+1);

tmpNode.setJudgeNum(tmpNode.getStep()+judge(tmpNode));

return tmpNode;

}

}

return null;

}

public Node getRight(Node nowNode){//取得右节点

int nowX= numToX(nowNode.getPos());

int nowY= numToY(nowNode.getPos());

Node tmpNode= new Node();

if(nowY< this.maxX){//判断节点是否到最左

if(checkVal(nowX,nowY+1)){

tmpNode.setFarther(nowNode);

tmpNode.setPos(posToNum(nowX,nowY+1));

tmpNode.setStep(nowNode.getStep()+1);

tmpNode.setJudgeNum(tmpNode.getStep()+judge(tmpNode));

return tmpNode;

}

}

return null;

}

public Node getTop(Node nowNode){//取得上节点

int nowX= numToX(nowNode.getPos());

int nowY= numToY(nowNode.getPos());

Node tmpNode= new Node();

if(nowX> 0){//判断节点是否到最左

if(checkVal(nowX-1,nowY)){

tmpNode.setFarther(nowNode);

tmpNode.setPos(posToNum(nowX-1,nowY));

tmpNode.setStep(nowNode.getStep()+1);

tmpNode.setJudgeNum(tmpNode.getStep()+judge(tmpNode));

return tmpNode;

}

}

return null;

}

public Node getBottom(Node nowNode){//取得下节点

int nowX= numToX(nowNode.getPos());

int nowY= numToY(nowNode.getPos());

Node tmpNode= new Node();

if(nowX< this.maxY){//判断节点是否到最左

if(checkVal(nowX+1,nowY)){

tmpNode.setFarther(nowNode);

tmpNode.setPos(posToNum(nowX+1,nowY));

tmpNode.setStep(nowNode.getStep()+1);

tmpNode.setJudgeNum(tmpNode.getStep()+judge(tmpNode));

return tmpNode;

}

}

return null;

}

public Link getBestPath(){//寻找路径

Link openLink= new Link();//没有访问的路径

Link closeLink= new Link();//访问过的路径

Link path= null;//最短路径

Node bestNode= null;

Node tmpNode= null;

openLink.addNode(this.startNode);

while(!openLink.isEmpty())//openLink is not null

{

bestNode= openLink.getBestNode();//取得最好的节点

//System.out.println("bestNode:("+numToX(bestNode.getPos())+","+numToY(bestNode.getPos())+")step:"+bestNode.getJudgeNum());

if(bestNode.getPos()==this.endNode.getPos())

{

/*this.endNode.setStep(bestNode.getStep()+1);

this.endNode.setFarther(bestNode);

this.endNode.setJudgeNum(bestNode.getStep()+1);*/

path= makePath(bestNode);

break;

}

else

{

tmpNode= closeLink.checkNode(getLeft(bestNode));

if(tmpNode!= null)

//System.out.println("("+numToY(tmpNode.getPos())+","+numToX(tmpNode.getPos())+")");

openLink.addNode(tmpNode);

tmpNode= closeLink.checkNode(getRight(bestNode));

if(tmpNode!= null)

// System.out.println("("+numToY(tmpNode.getPos())+","+numToX(tmpNode.getPos())+")");

openLink.addNode(tmpNode);

tmpNode= closeLink.checkNode(getTop(bestNode));

if(tmpNode!= null)

// System.out.println("("+numToY(tmpNode.getPos())+","+numToX(tmpNode.getPos())+")");

openLink.addNode(tmpNode);

tmpNode= closeLink.checkNode(getBottom(bestNode));

if(tmpNode!= null)

// System.out.println("("+numToY(tmpNode.getPos())+","+numToX(tmpNode.getPos())+")");

openLink.addNode(tmpNode);

openLink.delNode(bestNode);

closeLink.addNode(bestNode);

}

}

return path;

}

public Link makePath(Node lastNode){//制造路径

Link tmpLink= new Link();

Node tmpNode= new Node();

int x,y;

tmpNode= lastNode;

if(tmpNode!= null){

do{

x=numToX(tmpNode.getPos());

y=numToY(tmpNode.getPos());

System.out.println("map["+x+"]["+y+"]="+map[x][y]);

tmpLink.addNode(tmpNode);

tmpNode= tmpNode.getFarther();

}while(tmpNode!= null);

}else

{

System.out.println("Couldn't find the path!");

}

return tmpLink;

}

/**

*@param args the command line arguments

*/

public static void main(String[] args){

char[][] map={

{'Y','N','z','y','x','w','v','N','N','N'},

{'Y','N','1','N','N','N','u','t','N','N'},

{'N','1','2','1','1','1','N','s','N','N'},

{'N','N','1','N','9','N','q','r','N','N'},

{'N','N','1','N','n','o','p','N','N','N'},

{'N','4','5','6','m','N','N','N','N','N'},

{'N','3','N','5','l','k','j','N','N','N'},

{'N','N','3','4','N','d','i','d','N','N'},

{'N','1','N','N','1','N','h','N','N','N'},

{'N','1','N','N','1','N','g','N','N','N'},

{'N','a','b','c','d','e','f','N','N','N'}

};

/*map[x][y]

*如上所示:maxY=10 maxX=11横的代表maxY,竖的代表maxX可以自己替换

*地图的读取是

*for(i=1;i<行的最大值;i++)

* for(j=1;j<列的最大值;j++)

* map[i][j]=地图[i][j]

*/

Link bestPath= new Link();

/*startNode.setFarther(null);

startNode.setPos(21);

startNode.setStep(0);

//endNode.setFarther(startNode);

endNode.setPos(79);

//endNode.setStep(0);*/

FindBestPath path= new FindBestPath(map, 11, 10, 10, 1, 0, 2);

//FindBestPath path= new FindBestPath(map, 11, 10, startNode, endNode);

bestPath= path.getBestPath();

//bestPath.printLink();

}

}

public class Node{

private int step;//从入口到该节点经历的步数

private int pos;//位置

private Node farther;//上一个结点

private int judgeNum;

public Node(){

}

public void setStep(int setStep){

this.step= setStep;

}

public int getStep(){

return this.step;

}

public void setPos(int setPos){

this.pos= setPos;

}

public int getPos(){

return this.pos;

}

public void setFarther(Node setNode){

this.farther= setNode;;

}

public Node getFarther(){

return this.farther;

}

public void setJudgeNum(int setInt){

this.judgeNum= setInt;;

}

public int getJudgeNum(){

return this.judgeNum;

}

}

java是实现什么功能

Java是Sun公司推出的一种编程语言。它是一种通过解释方式来执行的语言,语法规则和C++类似。同时,Java也是一种跨平台的程序设计语言。用Java语言编写的程序叫做“Applet”(小应用程序),用编译器将它编译成类文件后,将它存在WWW页面中,并在HTML档上作好相应标记,用户端只要装上Java的客户软件就可以在网上直接运行“Applet”。 Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。Java摈弃了C++中各种弊大于利的功能和许多很少用到的功能。 Jave可以运行与任何微处理器,用Java开发的程序可以在网络上传输,并运行于任何客户机上。

什么叫KJAVA

Kjava相关知识 2007-10-14 22:40:53 1.什么是KJava?KJava是一种软件开发语言。 Java是由美国Sun Microsystems公司开发的一种软件开发语言,1995年正式发布。Sun Microsystems公司在它们自己的网站上声称Java可以运行在所有的硬件平台,从服务器到蜂窝电话到智能卡。虽然未经所有人同意,但它确实已经能够运行在绝大多数平台上。而这一点,也正是Java所以流行的重要原因:Write Once, Run Anywhere. Java经过多年的发展,目前的最新版本是Java 2。在Java 2中,为了适应用户不同的需求,又被分成了J2EE,J2SE,J2ME三个不同的版本。KJava就是J2ME的一个别名,是Java 2的一个微型版本。 Kjava的名称来源于KVM虚拟机(K Virtual Machine),特指为面向基于KVM,针对手机等资源受限设备的JAVA平台解决方案。由于移动互联网业务现阶段更多的集中于移动电话上的应用,因此,其上的JAVA应用称为Kjava更为确切。Kjava具有平台开放和易于动态下载的特性,它使第三方开发者可以为掌上设备开发Kjava应用程序。如果一款手机支持Kjava,那么它的功能就是可扩展的。服务开发商为它开发增值应用后,用户就可以下载到手机里使用。由于Kjava有丰富的开发接口,服务开发商可以开发出功能比较复杂的应用,使用户的操作更方便,界面形式更生动。用户使用支持JAVA功能的手机终端,通过GPRS方式接入中国移动无线JAVA服务平台,能方便地享受类似于Internet上的各种服务,如下载各种游戏、动漫画、小小说等,也可进行各种在线应用,如联网游戏、收发邮件、证券炒股、信息查询等。 2.什么手机能进行KJava的应用?用户只有使用符合中国移动规范的Java手机终端,才能使用Java业务。无线JAVA业务(百宝箱服务)面向对象主要是中国移动全球通及省内品牌客户,神州行客户暂不开放。全球通及省内品牌客户无需申请即可开通Java业务(百宝箱服务),但需要开通GPRS数据功能。3.手机该如何设置参数,才能使用java应用呢?(1)、配置GPRS:连接名称:中国移动 GPRS数据承载方式: GPRS接入点名称: cmwap用户名:无提示输入密码:否密码:无(2)、配置下载代理服务器签定:普通网关IP地址: 10.0.0.172(暂定)端口:80 4.下载KJAVA游戏后需要在线进行游戏么?无线JAVA业务(百宝箱服务)可提供离线和在线应用两种服务方式。离线应用的KJAVA游戏占多数,对于在线应用的KJAVA游戏我们会在游戏的介绍页面上给予说明。 5. KJava的运用J2ME通常运行于移动电话、双向呼机、个人数据助理(PDA)、机顶盒、家用电器、POS等可连接网络的、硬件资源有限的设备。它给这些智能设备增加了可随时扩展功能的能力。从此我们的手机可以无需软件升级,即可自行增加新的功能。J2ME已获众多主流硬件、软件厂商支持,并已成为手机的潮流和发展方向。如果一款手机支持Kjava,那么它的功能就是可扩展的。服务开发商为它开发增值应用后,用户就可以下载到手机里使用。由于Kjava有丰富的开发接口,服务开发商可以开发出功能比较复杂的应用,使用户的操作更方便,界面形式更生动。

Tips:Kjava中K的由来

Java并不认识硬件,它如何能够运行在有限CLDC(Connected,Limited Device Configuration)及CDC(Connected Device Configuration)上呢?原来,在这些设备上都需要植入一个叫Kilo Virtual Machine的东西,这就是我们常说的K虚拟机。它是把Java编写的程序转换为机器运行指令的一个管理者。既然这个管理者叫K虚拟机,那么运行在它上面的程序就可以叫做K-Software,或者K-Program,用来编写这些K-Program的J2ME语言也就被理所当然地俗称为KJava了。

OK,关于javapos叫什么和什么叫KJAVA的内容到此结束了,希望对大家有所帮助。

什么叫java多态 java中多态性什么意思java存储二维表用什么数据结构(数据库与数据结构的区别)