开发JAVA应用程序有哪些步骤

开发JAVA应用程序有哪些步骤,第1张

需要以下步骤:

定义问题:主要是指“想开发什么样的程序”、“这个程序用来解决什么问题”。满足目标客户的要求是最重要的。

2 是否具有可行性:要对这个程序是否具有实用性、利益性、以及对技术和法律方面的要求,都进行考虑。

3 需求分析。弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。

4 开发阶段:设计、实现、测试,是开发时最为重要的三个步骤。这三个步骤需要把程序员自己的理解及想法,和客户的需求都要得到体现。

5 对程序的维护:维护相当于售后服务,这个非常重要。因为程序在运营时,可能遇到各种各样的突发事件,面对这些突发情况,必须要进行紧急的处理。维护包括四个方面"改正性维护、适应性维护、完善性维护、预防性维护"。

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现均支持Java applet。

ava分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。

public class EatFood {

public EatFood()

{

Person p = new Person();

peatFood(new Apple());

peatFood(new Chicken());

peatFood(new Beef());

}

public static void main(String[] args)

{

new EatFood();

}

public class Person

{

public void eatFood(Food f)

{

Systemoutprint("Person is eating ");

fgotEaten();

}

}

interface Food

{

public void gotEaten();

}

class Apple implements Food

{

@Override

public void gotEaten()

{

Systemoutprintln("Apple");

}

}

class Chicken implements Food

{

@Override

public void gotEaten()

{

Systemoutprintln("Chicken");

}

}

class Beef implements Food

{

@Override

public void gotEaten()

{

Systemoutprintln("Beef");

}

}

}

在Java语言产生前 传统的程序设计语言的程序同一时刻只能单任务 *** 作 效率非常低 例如程序往往在接收数据输入时发生阻塞 只有等到程序获得数据后才能继续运行 随着Internet的迅猛发展 这种状况越来越不能让人们忍受 如果网络接收数据阻塞 后台程序就处于等待状态而不继续任何 *** 作 而这种阻塞是经常会碰到的 此时CPU资源被白白的闲置起来 如果在后台程序中能够同时处理多个任务 该多好啊!应Internet技术而生的Java语言解决了这个问题 多线程程序是Java语言的一个很重要的特点 在一个Java程序中 我们可以同时并行运行多个相对独立的线程 例如 我们如果创建一个线程来进行数据输入输出 而创建另一个线程在后台进行其它的数据处理 如果输入输出线程在接收数据时阻塞 而处理数据的线程仍然在运行 多线程程序设计大大提高了程序执行效率和处理能力

线程的创建

我们知道Java是面向对象的程序语言 用Java进行程序设计就是设计和使用类 Java为我们提供了线程类Thread来创建线程 创建线程与创建普通的类的对象的 *** 作是一样的 而线程就是Thread类或其子类的实例对象 下面是一个创建启动一个线程的语句

Thread thread =new Thread(); file://声明一个对象实例 即创建一个线程

Thread run(); file://用Thread类中的run()方法启动线程

从这个例子 我们可以通过Thread()构造方法创建一个线程 并启动该线程 事实上 启动线程 也就是启动线程的run()方法 而Thread类中的run()方法没有任何 *** 作语句 所以这个线程没有任何 *** 作 要使线程实现预定功能 必须定义自己的run()方法 Java中通常有两种方式定义run()方法

通过定义一个Thread类的子类 在该子类中重写run()方法 Thread子类的实例对象就是一个线程 显然 该线程有我们自己设计的线程体run()方法 启动线程就启动了子类中重写的run()方法

通过Runnable接口 在该接口中定义run()方法的接口 所谓接口跟类非常类似 主要用来实现特殊功能 如复杂关系的多重继承功能 在此 我们定义一个实现Runnable() 接口的类 在该类中定义自己的run()方法 然后以该类的实例对象为参数调用Thread类的构造方法来创建一个线程

线程被实际创建后处于待命状态 激活(启动)线程就是启动线程的run()方法 这是通过调用线程的start()方法来实现的

下面一个例子实践了如何通过上述两种方法创建线程并启动它们

// 通过Thread类的子类创建的线程 class thread extends Thread { file://自定义线程的run()方法 public void run() { System out println( Thread is running… ); } } file://通过Runnable接口创建的另外一个线程 class thread implements Runnable { file://自定义线程的run()方法 public void run() { System out println( Thread is running… ); } } file://程序的主类 class Multi_Thread file://声明主类 { plubic static void mail(String args[]) file://声明主方法 { thread threadone=new thread (); file://用Thread类的子类创建线程 Thread threado=new Thread(new thread ()); file://用Runnable接口类的对象创建线程 threadone start(); threado start(); file://strat()方法启动线程 } }

运行该程序就可以看出 线程threadone和threado交替占用CPU 处于并行运行状态 可以看出 启动线程的run()方法是通过调用线程的start()方法来实现的(见上例中主类) 调用start()方法启动线程的run()方法不同于一般的调用方法 调用一般方法时 必须等到一般方法执行完毕才能够返回start()方法 而启动线程的run()方法后 start()告诉系统该线程准备就绪可以启动run()方法后 就返回start()方法执行调用start()方法语句下面的语句 这时run()方法可能还在运行 这样 线程的启动和运行并行进行 实现了多任务 *** 作

线程的优先级

对于多线程程序 每个线程的重要程度是不尽相同 如多个线程在等待获得CPU时间时 往往我们需要优先级高的线程优先抢占到CPU时间得以执行 又如多个线程交替执行时 优先级决定了级别高的线程得到CPU的次数多一些且时间多长一些 这样 高优先级的线程处理的任务效率就高一些

Java中线程的优先级从低到高以整数 ~ 表示 共分为 级 设置优先级是通过调用线程对象的setPriority()方法 如上例中 设置优先级的语句为

thread threadone=new thread (); file://用Thread类的子类创建线程

Thread threado=new Thread(new thread ()); file://用Runnable接口类的对象创建线程

threadone setPriority( ); file://设置threadone的优先级

threado setPriority( ); file://设置threado的优先级

threadone start(); threado start(); file://strat()方法启动线程

这样 线程threadone将会优先于线程threado执行 并将占有更多的CPU时间 该例中 优先级设置放在线程启动前 也可以在启动后进行设置 以满足不同的优先级需求

线程的(同步)控制

一个Java程序的多线程之间可以共享数据 当线程以异步方式访问共享数据时 有时候是不安全的或者不和逻辑的 比如 同一时刻一个线程在读取数据 另外一个线程在处理数据 当处理数据的线程没有等到读取数据的线程读取完毕就去处理数据 必然得到错误的处理结果 这和我们前面提到的读取数据和处理数据并行多任务并不矛盾 这儿指的是处理数据的线程不能处理当前还没有读取结束的数据 但是可以处理其它的数据

如果我们采用多线程同步控制机制 等到第一个线程读取完数据 第二个线程才能处理该数据 就会避免错误 可见 线程同步是多线程编程的一个相当重要的技术

在讲线程的同步控制前我们需要交代如下概念

用Java关键字synchonized同步对共享数据 *** 作的方法

在一个对象中 用synchonized声明的方法为同步方法 Java中有一个同步模型 监视器 负责管理线程对对象中的同步方法的访问 它的原理是 赋予该对象唯一一把 钥匙 当多个线程进入对象 只有取得该对象钥匙的线程才可以访问同步方法 其它线程在该对象中等待 直到该线程用wait()方法放弃这把钥匙 其它等待的线程抢占该钥匙 抢占到钥匙的线程后才可得以执行 而没有取得钥匙的线程仍被阻塞在该对象中等待

file://声明同步的一种方式 将方法声明同步

class store  {public synchonized void store_in(){… }public synchonized void store_out(){  … }}

  利用wait() notify()及notifyAll()方法发送消息实现线程间的相互联系

Java程序中多个线程通过消息来实现互动联系的 这几种方法实现了线程间的消息发送 例如定义一个对象的synchonized 方法 同一时刻只能够有一个线程访问该对象中的同步方法 其它线程被阻塞 通常可以用notify()或notifyAll()方法唤醒其它一个或所有线程 而使用wait()方法来使该线程处于阻塞状态 等待其它的线程用notify()唤醒

一个实际的例子就是生产和销售 生产单元将产品生产出来放在仓库中 销售单元则从仓库中提走产品 在这个过程中 销售单元必须在仓库中有产品时才能提货 如果仓库中没有产品 则销售单元必须等待

程序中 假如我们定义一个仓库类store 该类的实例对象就相当于仓库 在store类中定义两个成员方法 store_in() 用来模拟产品制造者往仓库中添加产品 strore_out()方法则用来模拟销售者从仓库中取走产品 然后定义两个线程类 customer类 其中的run()方法通过调用仓库类中的store_out()从仓库中取走产品 模拟销售者 另外一个线程类producer中的run()方法通过调用仓库类中的store_in()方法向仓库添加产品 模拟产品制造者 在主类中创建并启动线程 实现向仓库中添加产品或取走产品

如果仓库类中的store_in() 和store_out()方法不声明同步 这就是个一般的多线程 我们知道 一个程序中的多线程是交替执行的 运行也是无序的 这样 就可能存在这样的问题

仓库中没有产品了 销售者还在不断光顾 而且还不停的在 取 产品 这在现实中是不可思义的 在程序中就表现为负值 如果将仓库类中的stroe_in()和store_out()方法声明同步 如上例所示 就控制了同一时刻只能有一个线程访问仓库对象中的同步方法 即一个生产类线程访问被声明为同步的store_in()方法时 其它线程将不能够访问对象中的store_out()同步方法 当然也不能访问store_in()方法 必须等到该线程调用wait()方法放弃钥匙 其它线程才有机会访问同步方法

lishixinzhi/Article/program/Java/gj/201311/27301

可以按照以下的步聚来解决问题:一

首先确认USB接口是不是好的

方法:你的U口上插U盘,USB鼠标之类的设备能不能到连上,如果可以的话,那说明不是USB口问题,你可以换一条打印机线,或者在电脑上换个U口试试

反之,就是主板的问题了,需要送修电脑主板二

再确认系统服务是否开启:方法:

在“我的电脑”上点右键“管理”-“服务和应用程序”-“服务”-在里面找到“Print

Spooler”这项服务,看它是否已启动,如果没有,点“启动”再把“启动类型”选为“自动”。如果这项服务启动失败,建议你重装系统。三

接着是检查打印机状态是否正常,方法如下:打开控制面板里的“打印机和传真”在里面找到你的打印机图标,看看它的状态是什么?1

如果是灰色的,那表示你的打印机和计算机没有通信,可参照第一条和第四条来找答案;2

如果状态是“暂停”的话,那就双击图标,在“打印机”菜单里在“暂停使用”上单击把前面的“对勾”去掉。3如果状态是“脱机”的话,那就双击图标,在“打印机”菜单里在“脱机使用打印机”上单击把前面的“对勾”去掉。

接下来是检查你的打印机联机主板或打印机连接线是否损坏:

方法:在“控制面把”里把打印机驱动和驱动相关软件全部卸载掉,然后将打印机的连接线(USB或并口线)接到电脑上,打开打印机电源,然后依次点击“开始菜单”-“设置”-打开“打印机和传真机”,在里面点右键“添加打印机”-下一步-选择第一项(注意,一定要选上“自动检测并安装即插即用打印机”)。如果能检测到打印机,那就表示你的打印机没有问题。反之,那就是打印机联机主板的问题了,需要送到维修站修了~~~~~~~~~~~~~~~~~~~~~如果以上能帮你解决问题,那么再告诉你个正确安装打印机驱动的步聚吧:首先是打印机驱动,如果你没有光盘的话,你可以到你的打印机品牌相关的网站下载。1连接打印机把打印机的电源线和数据线接连好,数据线是接电脑的(分USB接口和并口两种)。

2把打印机电源关闭,安装驱动光盘。驱动可在随机带的驱动盘中安装,也可以在相应的网站上下载。安装完驱动后或者在安程过程中提示打开打印机电源时,打开打印机。

3依次点击"开始"

菜单-“控制面板”-打印机和传真机-在里面找到新安装的打印机图标,将它设置成默认打印机。

以上就是关于开发JAVA应用程序有哪些步骤全部的内容,包括:开发JAVA应用程序有哪些步骤、用JAVA编写一个food吃东西的程序,至少吃三种东西、Java多线程程序设计初步入门等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9852786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存