当前位置:首页 » 编程语言 » 经典java程序

经典java程序

发布时间: 2025-08-05 08:16:11

㈠ 25道经典java算法

本文精选部分经典算法题,旨在帮助开发者提升解决问题的能力。以下是25道经典Java算法题及参考答案。



程序1:兔子问题


描述:假设一对兔子从第3个月开始每月生一对兔子,新生的兔子又在第3个月生下一对兔子,求每个月的兔子总数。


代码实现略



程序2:素数统计


描述:统计101-200之间的素数数量,并输出所有素数。


代码实现略



程序3:水仙花数打印


描述:打印所有三位数中,其各位数字的立方和等于该数本身的数字。


代码实现略



程序4:质因数分解


描述:输入一个正整数,输出其所有质因数。


代码实现略



程序5:成绩等级转换


描述:使用条件运算符嵌套,将成绩等级转换为'A'、'B'、'C'。


代码实现略



程序6:最大公约数和最小公倍数


描述:输入两个整数,计算并输出它们的最大公约数和最小公倍数。


代码实现略



程序7:统计字符类型


描述:输入一行字符,统计其中英文字母、空格、数字和其他字符的数量。


代码实现略



程序8:数字序列累加


描述:输入两个数字m和n,计算s=a+aa+aaa+...+aa(a重复n次)的值。


代码实现略



程序9:完数查找


描述:找出1000以内的所有完数。


代码实现略



程序10:球落反弹


描述:球从100米高度自由落下,每次落地后反跳回原高度的一半,求第10次落地时经过的总米数和第10次反弹的高度。


代码实现略



程序11:三位数组合计数


描述:使用4个数字1、2、3、4,能组成多少个互不相同且无重复数字的三位数?并输出这些数。


代码实现略



程序12:奖金计算


描述:根据利润计算奖金,利润不同,奖金计算规则也不同。


代码实现略



程序13:寻找特殊整数


描述:寻找一个整数,使得它加上100后是一个完全平方数,再加上168后又是完全平方数。


代码实现略



程序14:判断特定日期


描述:输入年、月、日,判断这一天是这一年的第几天。


代码实现略



程序15:按升序输出三数


描述:输入三个整数x、y、z,将这三个数按从小到大的顺序输出。


代码实现略



程序16:打印9*9乘法表


描述:输出9*9乘法表。


代码实现略



程序17:猴子吃桃问题


描述:猴子吃桃问题,通过循环计算求解。


代码实现略



程序18:队伍排序问题


描述:通过循环和嵌套循环进行队伍排序。


代码实现略



程序19:打印菱形图案


描述:通过循环打印菱形图案。


代码实现略



程序20:分数序列求和


描述:计算特定分数序列的前20项之和。


代码实现略



程序21:求1到20的阶乘和


描述:求1到20的阶乘之和。


代码实现略



程序22:递归计算阶乘


描述:递归方法计算5的阶乘。


代码实现略



程序23:年龄推算


描述:通过循环计算五个人的年龄。


代码实现略



程序24:输入整数计数和逆序打印


描述:输入不多于5位的正整数,计算其位数并逆序打印各位数字。


代码实现略



程序25:判断回文数


描述:判断一个5位数是否为回文数。


代码实现略

㈡ 求一个简单又经典的Java与数据库例子,要有源代码哦!

//下面的是连接mysql的例子
package com.song.struts.mySql;

import javax.swing.JComponent;
import java.sql.*;
import java.util.*;
// import com.borland.dx.sql.dataset.*;

public class mySqlDao extends JComponent {
private String UserName="root";
private String PWD="root";
private String url;
private Connection cn;
private Statement stmt;
private ResultSet rs = null;
public mySqlDao(){
try {
Class.forName("org.gjt.mm.mysql.Driver");
}
catch(java.lang.ClassNotFoundException e){
System.err.println("mydb() org.gjt.mm.mysql.Driver: " + e.getMessage());
}
catch(Exception e) {
e.printStackTrace();
}

}
//////////////////////////////
///返回mysql 连接,connection
/////////////////////////////
public Connection Connect(String dbname,String ip){
try{
String hostip=ip;
Properties myP = new Properties();
myP.setProperty("useUnicode","true");
myP.setProperty("characterEncoding","GB2312");
url="jdbc:mysql://"+hostip+":3306/"+dbname+"?user="+UserName+"&password="+PWD+"";
if(cn!=null){
cn.close();
}
cn=DriverManager.getConnection(url,myP);
stmt= cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println("db connect success");
return cn;
}
catch(Exception e){
System.err.println("db connect err"+e.getMessage());
return null;
}
}
//////////////////////////////////
///关闭连接
/////////////////////////////////
public void close(){
try{
if(stmt!=null){
stmt.close();
}
if(cn!=null){
cn.close();
}
System.err.println("db colse success");
}
catch(Exception e){
System.err.println("db close err"+e.getMessage());
}
}
/////////////////////////////////////////////
// 用于进行记录的查询操�?,用于select 语句�?
//参数:sql语句�?
//返回:ResultSet对象
///////////////////////////////////////////
public ResultSet executeSelect(String sql) {
try {
stmt=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
return rs;
}
catch(SQLException ex) {
System.err.println("db.executeQuery: " + ex.getMessage());
return null;
}
}
//////////////////////////////////////////////
//用于进行add或�?�update,insert,del等的记录的操�?,
//入口参数:sql语句
//返回 :true,false
//////////////////////////////////////////////
public boolean executeUpdate(String sql) {
boolean bupdate=false;
try{
stmt=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int rowCount = stmt.executeUpdate(sql);
if (rowCount!=0)
bupdate=true;
}
catch(SQLException ex) {
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}
//////////////////////////////////////////////
//用于进行表结构的操作,creat drop,modify等�??
//入口参数:sql语句
//返回 :true,false
//////////////////////////////////////////////
public boolean executeTable(String sql) {
boolean bupdate=false;
try {
stmt= cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.print("对表的操作的sqlis :||"+sql+"||");
stmt.executeUpdate(sql);
bupdate=true;
}
catch(SQLException ex) {
System.err.println("db.executeTable: "+ex.getMessage());
}
return bupdate;
}
//////////////////////////
//返回数据库的信息
//////////////////////////
public Statement getLWPAIDStatement(){
try{
return cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(java.sql.SQLException e){
System.err.println("getAISPStatement():"+e.getMessage());
return null;
}
}

public DatabaseMetaData getLWPAIDMetaData(){
try{
return cn.getMetaData();
}
catch(java.sql.SQLException e){
System.err.println("getAISPMetaData():"+e.getMessage());
return null;
}
}
public static void main(String args[]){
mySqlDao a=new mySqlDao();
a.Connect("mydb", "localhost");
int b=-100;
ResultSet rs=a.executeSelect("select max(bill_id) from t_bill limit 1");
try{
while(rs.next()){
System.out.println("is in");
b=rs.getInt(1);
}
}catch(Exception e){
e.printStackTrace();
}
System.out.println(b);
// java.util.Date date=new java.util.Date();
// System.out.println(date.toString());
// a.executeTable("insert into t_user values(100,'123','1345')");
// a.executeTable("update t_user set insert_date='"+date.toString()+"' where user_id=100");
a.close();

System.out.print(new pub().asc2unicode("�?!"));
}
}

㈢ Java语言能做什么应用范围是

1. Android应用
如果你还在寻找Java在哪运用,你不用东奔西走的寻找,你的身边就是。打开的 Android 手机,随便打开一个 App 应用,他们就是完全的用 Java 语言,从 Google 上搜索 Android 的 API 文档,你就会发现它和 Java 的 JDK 文档惊人的相似。从两年前的 Android 刚刚起步,到今天许多的 Android 应用都是 Java 程序员开发者开发。虽然 Android 运用了不同的 JVM 以及不同的封装方式,但是代码还是用 Java 语言所编写。

2. 在金融业应用的服务器程序
Java 在金融服务业的应用非常广泛,许多跨国投资银行例如:Goldman Sachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行),Standard Charted(标准渣打银行)以及其他银行,都用 Java 来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java 被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。Java Swing 技术旨在开发可视化界面客户端供交易者使用,但是随着近几年 C# 的崛起使程序员在客户端开发时舍弃了繁琐的代码,C# 正慢慢取代 Swing 成为可视化开发的主流。

3. 网站
同样,Java 在电子商务领域以及网站开发领域占据这大部分席位。你可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0 以及 frameworks。即使是简单的 servlet,jsp 和以 struts 为基础的网站在政府项目中也是很受欢迎的。例如医疗救护,保险,教育,国防以及其他的不同部门网站都是以 Java 为基础来开发的。

4. 软件工具
许多常用的软件和开发工具都是运用Java来编写和开发的。比如 Eclipse,IneteliJIdea 和 Netbans IDE。我认为他们去都是用 Java 来编写的。就如上面所说,Swing 曾经在可视化桌面客户端开发非常流行,它们大多数应用与金融服务领域以及投资银行,JavaFx 虽说已经得到流行,但是依然无法取代 Swing。现在 C# 已经几乎取代了 Swing 在金融开发领域的地位。

5. 交易系统
第三方交易系统,现已是金融服务产业的一个很大的部分,它们同样也是 Java 编写。例如受欢迎的交易平台 Murex ,它也是 Java 编写,并与许多的银行前台所连接,提供服务。

6. J2ME系统
随着近几年 IOS 和 Android 的出现,几乎占据了 J2ME 市场,但仍然有低端诺基亚、三星手机使用J2ME。这个时代的大多数手机游戏,手机应用都采用 J2ME 的一部分 MIDP 和 CLDC 编写,以适应 Android 系统。但是 J2ME 依然在蓝光,磁卡,机顶盒这些产品中流行。通信应用之所以这么火是因为 Nokia 的手机依旧支持J2ME。

7. 嵌入式领域
Java 在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用 Java 技术(在智能卡或者传感器上)。最初,Java 被设计用来在嵌入书设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。

8. 大数据技术
Hadoop 以及其他大数据处理技术都是用 Java 或者其他,例如 Apache 的基于 Java 的 HBase 和Accumulo 以及 ElasticSearchas。但是 Java 在此领域并未占太大空间,如 MongoDB 就是在 C++ 技术基础上编写的。总的来说,只要 Hadoop 和 ElasticSearchas 能够成长壮大,Java 依旧还有潜力去在这个市场占据一部分。

9. 高频交易的空间
Java 平台大幅度提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java 成为的程序员编写交易平台的语言,因为虽然性能不比母语,但你可以避开它的安全性,可移植性和可维护性,以更快的速度运行,一个没有经验的 C++ 程序员会使应用程序变的更加缓慢和不可靠。

10. 科学应用
今天,Java 依然是在科学应用中最好选择,包括自然语言处理。最主要的原因是因为 Java 比 C++ 或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。

㈣ java经典编程案例有哪些

  1. java编程的记事本:

    import java.util.*;
    public class JieChengExample
    {
    public static void main(String args[])
    {
    Scanner input=new Scanner(System.in);
    int n,sum;
    Jiecheng jie=new Jiecheng();
    System.out.print("输入n的值:");//输入有几个阶乘相加
    n=input.nextInt();
    sum=0;
    for(int i=1;i<=n;i++)
    {
    sum=sum+jie.jiecheng(i);//这是n个阶乘相加
    }
    System.out.println("1!+2!+3!+....+n!的和是:"+sum);
    }
    }
    class Jiecheng
    {
    public int jiecheng(int temp)//算阶乘的方法
    {
    int sum=1;
    for(int i=1;i<=temp;i++)
    {
    sum=sum*i; //计算阶乘
    }
    return sum;//将一个阶乘返回
    }
    }

2.java赛马游戏:

import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){

}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
S...import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){

}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
System.out.println("Greenwin"+green);
}
if(red == green){
System.out.println("equal");*/

JAVA的介绍:

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

㈤ 使用Java实现Comet风格的Web应用(一)

开始

在本文中 我将展示如何使用各种不同的 Java 技术构建一些简单的 Comet 风格的 Web 应用程序 读者对 Java Servlet Ajax 和 JavaScript 应该有一定的了解 我们将考察 Tomcat 和 Jetty 中一些支持 Comet 的特性 因此需要使用这两个产品的最新版本 本文使用 Tomcat 和 Jetty 另外还需要一个支持 Java 或更高版本的 JDK 本文使用 JDK 此外还需要看看 Jetty 的预发布版 因为它实现了 Servlet 规范 我们将在本文中研究该规范

理解 Comet

您可能已经听说过 Comet 因为它最近受到了一定的关注 Comet 有时也称反向 Ajax 或服务器端推技术(server side push) 其思想很简单 将数据直接从服务器推到浏览器 而不必等到浏览器请求数据 听起来简单 但是如果熟悉 Web 应用程序 尤其是 HTTP 协议 那么您就会知道 这绝不简单 实现 Comet 风格的 Web 应用程序 同时保证在浏览器和服务器上的可伸缩性 这只是在最近几年才成为可能 在本文的后面 我们将看看一些流行的 Java Web 服务器如何支持可伸缩的 Comet 架构 但首先我们来看看为什么要创建 Comet 应用程序 以及用于实现它们的常见设计模式

使用 Comet 的动机

HTTP 协议的成功毋庸置疑 它是 Internet 上大部分信息交换的基础 然而 它也有一些局限性 特别是 它是无状态 单向的协议 请求被发送到 Web 服务器 服务器处理请求并发回一个响应 — 仅此而已 请求必须由客户机发出 而服务器则只能在对请求的响应中发送数据 这至少会影响很多类型的 Web 应用程序的实用性 典型的例子就是聊天程序 另外还有一些例子 例如比赛的比分 股票行情或电子邮件程序

HTTP 的这些局限性也是它取得一定成功的原因 请求/响应周期使它成为了经典的模型 即每个连接使用一个线程 只要能够快速为请求提供服务 这种方法就有巨大的可伸缩性 每秒钟可以处理大量的请求 只需使用少量的服务器就可以处理很大数量的用户 对于很多经典的 Web 应用程序 例如内容管理系统 搜索应用程序和电子商务站点等等而言 这非常适合 在以上任何一种 Web 应用程序中 服务器提供用户请求的数据 然后关闭连接 并释放那个线程 使之可以为其他请求服务 如果提供初始数据之后仍可能存在交互 那么将连接保持为打开状态 因此线程就不能释放出来 服务器也就不能为很多用户服务

但是 如果想在对请求做出响应并发送初始数据之后 仍然保持与用户的交互呢?在 Web 早期 这一点常使用 meta 刷新实现 这将自动指示浏览器在指定秒数之后重新装载页面 从而支持简陋的轮询(polling) 这不仅是一种糟糕的用户体验 而且通常效率非常低下 如果没有新的数据要显示在页面上呢?这时不得不重新呈现同样的页面 如果对页面的更改很少 并且页面的大部分没有变化呢?同样 不管是否有必要 都得重新请求和获取页面上的一切内容

Ajax 的发明和流行改变了上述状况 现在 服务器可以异步通信 因此不必重新请求整个页面 现在可以进行增量式的更新 只需使用 XMLHttpRequest 轮询服务器 这项技术通常被称作 Comet 这项技术存在一些变体 每种变体具有不同的性能和可伸缩性 我们来看看这些不同风格的 Comet

Comet 风格

Ajax 的出现使 Comet 成为可能 HTTP 的单向性质可以有效地加以规避 实际上有一些不同的方法可以绕过这一点 您可能已经猜到 支持 Comet 的最容易的方式是轮询(poll) 使用 XMLHttpRequest 向服务器发出调用 返回后 等待一段固定的时间(通常使用 JavaScript 的 setTimeout 函数) 然后再次调用 这是一项非常常见的技术 例如 大多数 webmail 应用程序就是通过这种技术在电子邮件到达时显示电子邮件的

这项技术有优点也有缺点 在这种情况下 您期望快速返回响应 就像任何其他 Ajax 请求一样 在请求之间必须有一段暂停 否则 连续不断的请求会冲垮服务器 并且这种情况下显然不具有可伸缩性 这段暂停使应用程序产生一个延时 暂停的时间越长 服务器上的新数据就需要越多的时间才能到达客户机 如果缩短暂停时间 又将重新面临冲垮服务器的风险 但是另一方面 这显然是最简单的实现 Comet 的方式

现在应该指出 很多人认为轮询并不属于 Comet 相反 他们认为 Comet 是对轮询的局限性的一个解决方案 最常见的 真正的 Comet 技术是轮询的一种变体 即长轮询(long polling) 轮询与长轮询之间的主要区别在于服务器花多长的时间作出响应 长轮询通常将连接保持一段较长的时间 — 通常是数秒钟 但是也可能是一分钟甚至更长 当服务器上发生某个事件时 响应被发送并随即关闭 轮询立即重新开始

长轮询相对于一般轮询的优点在于 数据一旦可用 便立即从服务器发送到客户机 请求可能等待较长的时间 期间没有任何数据返回 但是一旦有了新的数据 它将立即被发送到客户机 因此没有延时 如果您使用过基于 Web 的聊天程序 或者声称 实时 的任何程序 那么它很可能就是使用了这种技术

长轮询有一种变体 这是第三种风格的 Comet 这通常被称为流(streaming) 按照这种风格 服务器将数据推回客户机 但是不关闭连接 连接将一直保持开启 直到过期 并导致重新发出请求 XMLHttpRequest 规范表明 可以检查 readyState 的值是否为 或 Receiving(而不是 或 Loaded) 并获取正从服务器 流出 的数据 和长轮询一样 这种方式也没有延时 当服务器上的数据就绪时 该数据被发送到客户机 这种方式的另一个优点是可以大大减少发送到服务器的请求 从而避免了与设置服务器连接相关的开销和延时 不幸的是 XMLHttpRequest 在不同的浏览器中有很多不同的实现 这项技术只能在较新版本的 Mozilla Firefox 中可靠地使用 对于 Internet Explorer 或 Safari 仍需使用长轮询

至此 您可能会想 长轮询和流都有一个很大的问题 请求需要在服务器上存在一段较长的时间 这打破了每个请求使用一个线程的模型 因为用于一个请求的线程一直没有被释放 更糟糕的是 除非要发回数据 否则该线程一直处于空闲状态 这显然不具有可伸缩性 幸运的是 现代 Java Web 服务器有很多方式可以解决这个问题

Java 中的 Comet

现在有很多 Web 服务器是用 Java 构建的 一个原因是 Java 有一个丰富的本地线程模型 因此实现典型的每个连接一个线程的模型便非常简单 该模型对于 Comet 不大适用 但是 Java 对此同样有解决的办法 为了有效地处理 Comet 需要非阻塞 IO Java 通过它的 NIO 库提供非阻塞 IO 两种最流行的开源服务器 Apache Tomcat 和 Jetty 都利用 NIO 增加非阻塞 IO 从而支持 Comet 然而 这两种服务器中的实现却各不相同 我们来看看 Tomcat 和 Jetty 对 Comet 的支持

Tomcat 和 Comet

对于 Apache Tomcat 要使用 Comet 主要需要做两件事 首先 需要对 Tomcat 的配置文件 server XML 稍作修改 默认情况下启用的是更典型的同步 IO 连接器 现在只需将它切换成异步版本 如清单 所示

清单 修改 Tomcat 的 server xml <! ThisistheusualConnector mentitoutandaddtheNIOone ><! ConnectorURIEncoding= utf connectionTimeout= port= protocol= HTTP/ redirectPort= / ><ConnectorconnectionTimeout= port= protocol= apache coyote redirectPort= />

Servlet 这显然是 Tomcat 特有的一个接口 清单 显示了一个这样的例子

lishixin/Article/program/Java/hx/201311/26770

㈥ 求java经典小程序代码

  • 代码如下:

public class HelloWorld {

public static void main(String []args) {

int a = 3, b = 7 ;

System.out.println("Hello World!");

}

public static int f(int a, int b){

return a*a + a*b + b*b;

}

}

  • 结果如下:

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:586
制作脚本网站 发布:2025-10-20 08:17:34 浏览:882
python中的init方法 发布:2025-10-20 08:17:33 浏览:574
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:761
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:678
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1006
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:251
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:108
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:799
python股票数据获取 发布:2025-10-20 07:39:44 浏览:705