javapos叫什么(什么叫KJAVA)
大家好,今天来为大家解答javapos叫什么这个问题的一些问题点,包括什么叫KJAVA也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
用java求最短路径问题,求源程序
import java.util.Vector;
public class Link{
private Vector link= new Vector();
// private Link next= null;
public Link(){
}
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的内容到此结束了,希望对大家有所帮助。