java小程序入门

java小程序入门,第1张

先到官网下载myeclipse或者eclipse编程软件,并配置java环境变量,在百度搜索栏依次搜索eclipse下载和搜索java环境变量的配置,就可以找到图文并茂的详细教程。下面介绍一下怎么制作小程序:

1、打开myeclispe(eclipse都一样),依次点击File->New->Java Project,然后给这个项目起一个名字(随便起),这里就叫MyFirst.然后点击Finish;

2、在myeclipse左侧找到自己建好的MyFirst项目,左键点击,下面有文件件src,点击src,右键,依次点击New->Class,然后给这个新的类起一个名字(随便起),我这里叫MyFirstClass,然后点击Finish;

3、复制粘贴下面这些代码到MyFirstClass.java文件中,然后ctrl+s,保存;

4、在MyFirstClass.java文件的空白处右键选择 Run As -->Java Application,你就会在下方的控制台看到hello worl。

扩展资料:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

参考资料:Java-百度百科

在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

【试题1】任务一:求阶乘

l 接受一个输入,输出这个数的阶乘

l 用长整型计算

任务二:输出阶梯形式的9*9口诀表,如图1.1所示。

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

图1.1 阶梯形式的9*9口诀表

要求:使用循环结构语句实现。

任务三:编程实现判断一个整数是否为“水仙花数”。所谓“水仙花数”是指一个三位的整数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。

要求:用带有一个输入参数的方法或函数实现,返回值类型为布尔类型。

【试题2】

任务一:已知某个班有M个学生,学习N门课程,已知所有学生的各科成绩,编程:分别求每个学生的平均成绩,并输出。

要求:

l 定义一个二维数组,用于存放M个学生的N门成绩。定义一个一维数组,用于存放每个学生的平均成绩。

l 做二重循环,将每个学生的成绩输入到该二维数组中。

l 做二重循环,对已经存在于二维数组的中的值进行平均分计算,将结果保存到一个一维数组中。

l 做循环输出该一维数组(即平均分)的值。

任务二:编写一个程序找出100~1000之间的所有姐妹素数。

注:姐妹素数是指相邻两个奇数均为素数。

要求:使用循环结构语句实现。

任务三:求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.txt中。例如若n为1000时,函数值应为:s=153.909064。

【试题3】

任务一:求2!+3!+4!+5!

任务二:编写一个程序,对用户输入的任意一组数字字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现的次数。例如,上面输入的字符集合中,“1”和“2”都出现了3次,均为最大出现次数,因为“1”先出现,则输出字符“1”和它出现的次数3次。

任务三:中华人民共和国2011年新的个人所得税草案规定,个税的起征点为3000元,分成7级,税率情况见表1.3, 从键盘上输入月工资,计算应交纳的个人所得税。

表1.3税率情况表

级数

全月应纳税所得额 

税率 (%)

1

不超过1500元的(即3000-4500之间)

5

2

超过1500元至4500元的部分

10

3

超过4500元至9000元的部分

20

4

超过9000元至35000元的部分

25

5

超过35000元至55000元的部分

30

6

超过55000元至80000元的部分

35

7

超过80000元的部分

45

注意:超出部分按所在税的级数计算,如:一个人的月收入为6000,应交个人所得税为:1500*0.05 +((6000-3000)-1500)*0.1=225

请在键盘上输入一个人的月收入,编程实现该公民所要交的税。

例如:输入“4000”,则输出“你要交的税为:50”。

【试题4】

任务一:请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。

任务二:孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候桃园一共有多少个桃子。

要求:用循环语句实现,从键盘随机输入参数n

任务三:输入一个5位正整数,输出它是不是回文数。回文数是这样一种数,它的逆序数和它本身相等。例如,12321的逆序数是12321,和它本身相等,所以它是回文数。又例如25128的逆序数是82152,所以它不是回文数。

要求:使用分支或循环结构语句实现。

【试题5】

任务一:判断一个年份N闰年;

输入:年份N

任务二:一个球从100m高度自由落下,每次落地后反d回原高度的一半,再落下,再反d。求它在第十次落地时,共经过多少米?第十次反d多高?

任务三:Redraiment的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。

今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,依次下去,每次都比上一次晚一天。

Redraiment可是软件专业的学生,怎么离得开计算机。如果停电,就“英雄无用武之地”了。所以他开始盘算起自己回家的日子了,他想知道自己到家后到底要经历多少天倒霉的停电。你能帮他算一算吗?

要求:从键盘输入放假日期,开学日期,日期限定在7、8月份,且开学日期大于放假日期。

提示:可以用数组标记停电的日期

【试题6】

任务一:定义一个电脑类,包含电脑的品牌,价格,型号。

任务二:某班同学上体育课,从1开始报数,共38人,老师要求按1,2,3重复报数,报数为1的同学往前走一步,而报数为2的同学往后退一步,试分别将往前走一步和往后退一步的同学的序号打印出来。

要求:用循环语句实现

任务三:一个人很倒霉,不小心打碎了一位妇女的一篮子鸡蛋。为了赔偿便询问篮子里有多少鸡蛋。那妇女说,她也不清楚,只记得每次拿两个则剩一个,每次拿3个则剩2个,每次拿5个则剩4个,若每个鸡蛋1元,请你帮忙编程,计算最少应赔多少钱?

要求:用循环语句实现,直接打印出结果不给分

【试题7】

任务一:从键盘接收一个整数N,统计出1~N之间能被7整除的整数的个数,以及这些能被7整除的数的和。

屏幕提示样例:

请输入一个整数:20

1~20之间能被7整除的数的个数:2

1~20之间能被7整除的所有数之和:21

任务二:从键盘输入一个整数N,打印出有N*2-1行的菱形。

例如输入整数4,则屏幕输出如下菱形。

要求:使用循环结构语句实现。

任务三:编程实现判断一个整数是否为素数。所谓素整是一个大于1的正整数,除了1和它本身,该数不能被其它的正整数整除。

要求:用带有一个输入参数的方法或函数实现,返回值类型为布尔类型。

【试题8】

任务一:设计一个学生类,包括学号,姓名,班次,系别,联系电话,并包含一个构造方法。

要求:构造方法必须有5个参数,能对学生类中的属性进行赋初值。

任务二:使用冒泡排序法对数组中的整数按升序进行排序,如下所示:

原始数组:a[]={1,9,3,7,4,2,5,0,6,8}

排序后: a[]={0,1,2,3,4,5,6,7,8,9}

要求:使用循环结构语句实现。

任务三:编程实现以下要求。n个人围坐成一卷,从第一个人开始计数,数到m,第m个人出列,接下来继续计数,直到所有人都出列。例如:共有5个人,数到3出列,则顺序为3,1,5,2,4。

要求:用带有两个输入参数(一个总人数n,一个为计数m)的方法或函数实现,返回值类型为数组。

【试题9】

任务一:输入一行字符,输出其中的数字的个数。例如输入“fwEt2f44F2k8”,输出结果为5。

任务二:用循环打印杨辉三角到N层

输入:自然数N

任务三:删去一维数组中相同的数

输入 2 3 3 3 4 5 2 9 10 9 3 2 4

输出23 4 5 9 10

【试题10】

任务一:定义一个矩形类,包括长,宽两个属性,计算周长方法和计算面积方法。

任务二:编写程序实现:输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:

能同时被3、5、7整除

能同时被3、5整除

能同时被3、7整除

能同时被5、7整除

只能被3、5、7中的一个整除

不能被3、5、7任一个整除

要求:使用分支结构语句实现。

任务三:寻找最大数经常在计算机应用程序中使用。例如:确定销售竞赛优胜者的程序要输入每个销售员的销售量,销量最大的员工为销售竞赛的优胜者,写一个程序:从键盘输入10个数,打印出其中最大的数。

要求:程序应正确使用如下两个变量:number:当前输入程序的数,largest:到目前为止的最大数。

给你30个题 慢慢做吧


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

原文地址: http://outofmemory.cn/yw/12126795.html

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

发表评论

登录后才能评论

评论列表(0条)

保存