100个JAVA经典例子(41 50)初学者的利器高手的宝典JAVASE

100个JAVA经典例子(41 50)初学者的利器高手的宝典JAVASE
100个JAVA经典例子(41 50)初学者的利器高手的宝典JAVASE

100个Java经典例子(41-50)初学者的利器高手的宝典JavaSE

1.package test41;

2.

3.import java.io.*;

4./**

5.*Title:运行系统命令

6.*Description:运行一个系统的命令,演示使用Runtime类。

7.*Filename:CmdExec.java

8.*/

9.public class CmdExec{

10./**

11.*方法说明:构造器,运行系统命令

12.*输入参数:String cmdline命令字符

13.*返回类型:

14.*/

15.public CmdExec(String cmdline){

16.try{

17.String line;

18.//运行系统命令

19.Process p=Runtime.getRuntime().exec(cmdline);

20.//使用缓存输入流获取屏幕输出。

21.BufferedReader input=

22.new BufferedReader

23.(new InputStreamReader(p.getInputStream()));

24.//读取屏幕输出

25.while((line=input.readLine())!=null){

26.System.out.println("java print:"+line);

27.}

28.//关闭输入流

29.input.close();

30.}

31.catch(Exception err){

32.err.printStackTrace();

33.}

34.}

35./**

36.*方法说明:主方法

37.*输入参数:

38.*返回类型:

39.*/

40.public static void main(String argv[]){

41.new CmdExec("myprog.bat");

42.}

43.}

[java]view plaincopyprint?

1.package test43;

2.

3.import java.io.*;

4.import https://www.360docs.net/doc/fe13701626.html,.*;

5./**

6.*Title:简单服务器客户端

7.*Description:本程序是一个简单的客户端,用来和服务器连接

8.*Filename:SampleClient.java

9.*/

10.public class SampleClient{

11.public static void main(String[]arges){

12.try{

13.//获取一个IP。null表示本机

14.InetAddress addr=InetAddress.getByName(null);

15.//打开8888端口,与服务器建立连接

16.Socket sk=new Socket(addr,8888);

17.//缓存输入

18.BufferedReader in=new BufferedReader(new InputStreamReader(sk

19..getInputStream()));

20.//缓存输出

21.PrintWriter out=new PrintWriter(new BufferedWriter(

22.new OutputStreamWriter(sk.getOutputStream())),true);

23.//向服务器发送信息

24.out.println("你好!");

25.//接收服务器信息

26.System.out.println(in.readLine());

27.}catch(Exception e){

28.System.out.println(e);

29.}

30.}

31.}

[java]view plaincopyprint?

1.package test43;

2.

3.import https://www.360docs.net/doc/fe13701626.html,.*;

4.import java.io.*;

5./**

6.*Title:简单服务器服务端

7.*Description:这是一个简单的服务器端程序

8.*Filename:SampleServer.java

9.*/

10.public class SampleServer{

11.public static void main(String[]arges){

12.try{

13.int port=8888;

14.//使用8888端口创建一个ServerSocket

15.ServerSocket mySocket=new ServerSocket(port);

16.//等待监听是否有客户端连接

17.Socket sk=mySocket.accept();

18.//输入缓存

19.BufferedReader in=new BufferedReader(new InputStreamReader(sk

20..getInputStream()));

21.//输出缓存

22.PrintWriter out=new PrintWriter(new BufferedWriter(

23.new OutputStreamWriter(sk.getOutputStream())),true);

24.//打印接收到的客户端发送过来的信息

25.System.out.println("客户端信息:"+in.readLine());

26.//向客户端回信息

27.out.println("你好,我是服务器。我使用的端口号:"+port);

28.}catch(Exception e){

29.System.out.println(e);

30.}

31.}

32.}

[java]view plaincopyprint?

1.package test44;

2.//文件名:moreServer.java

3.import java.io.*;

4.import https://www.360docs.net/doc/fe13701626.html,.*;

5./**

6.*Title:多线程服务器

7.*Description:本实例使用多线程实现多服务功能。

8.*Filename:

9.*/

10.class moreServer

11.{

12.public static void main(String[]args)throws IOException

13.{

14.System.out.println("Server starting...\n");

15.//使用8000端口提供服务

16.ServerSocket server=new ServerSocket(8000);

17.while(true)

18.{

19.//阻塞,直到有客户连接

20.Socket sk=server.accept();

21.System.out.println("Accepting Connection...\n");

22.//启动服务线程

23.new ServerThread(sk).start();

24.}

25.}

26.}

27.//使用线程,为多个客户端服务

28.class ServerThread extends Thread

29.{

30.private Socket sk;

31.

32.ServerThread(Socket sk)

33.{

34.this.sk=sk;

35.}

36.//线程运行实体

37.public void run()

38.{

39.BufferedReader in=null;

40.PrintWriter out=null;

41.try{

42.InputStreamReader isr;

43.isr=new InputStreamReader(sk.getInputStream());

44.in=new BufferedReader(isr);

45.out=new PrintWriter(

46.new BufferedWriter(

47.new OutputStreamWriter(

48.sk.getOutputStream())),true);

49.

50.while(true){

51.//接收来自客户端的请求,根据不同的命令返回不同的信息。

52.String cmd=in.readLine();

53.System.out.println(cmd);

54.if(cmd==null)

55.break;

56.cmd=cmd.toUpperCase();

57.if(cmd.startsWith("BYE")){

58.out.println("BYE");

59.break;

60.}else{

61.out.println("你好,我是服务器!");

62.}

63.}

64.}catch(IOException e)

65.{

66.System.out.println(e.toString());

67.}

68.finally

69.{

70.System.out.println("Closing Connection...\n");

71.//最后释放资源

72.try{

73.if(in!=null)

74.in.close();

75.if(out!=null)

76.out.close();

77.if(sk!=null)

78.sk.close();

79.}

80.catch(IOException e)

81.{

82.System.out.println("close err"+e);

83.}

84.}

85.}

86.}

[java]view plaincopyprint?

1.package test44;

2.

3.//文件名:SocketClient.java

4.import java.io.*;

5.import https://www.360docs.net/doc/fe13701626.html,.*;

6.

7.class SocketThreadClient extends Thread{

8.public static int count=0;

9.

10.//构造器,实现服务

11.public SocketThreadClient(InetAddress addr){

12.count++;

13.BufferedReader in=null;

14.PrintWriter out=null;

15.Socket sk=null;

16.try{

17.//使用8000端口

18.sk=new Socket(addr,8000);

19.InputStreamReader isr;

20.isr=new InputStreamReader(sk.getInputStream());

21.in=new BufferedReader(isr);

22.//建立输出

23.out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(

sk

24..getOutputStream())),true);

25.//向服务器发送请求

26.System.out.println("count:"+count);

27.out.println("Hello");

28.System.out.println(in.readLine());

29.out.println("BYE");

30.System.out.println(in.readLine());

31.

32.}catch(IOException e){

33.System.out.println(e.toString());

34.}finally{

35.out.println("END");

36.//释放资源

37.try{

38.if(in!=null)

39.in.close();

40.if(out!=null)

41.out.close();

42.if(sk!=null)

43.sk.close();

44.}catch(IOException e){

45.}

46.}

47.}

48.}

49.

50.//客户端

51.public class SocketClient{

52.@SuppressWarnings("static-access")

53.public static void main(String[]args)throws IOException,

54.InterruptedException{

55.InetAddress addr=InetAddress.getByName(null);

56.for(int i=0;i<10;i++)

57.new SocketThreadClient(addr);

58.Thread.currentThread().sleep(1000);

59.}

60.}

[java]view plaincopyprint?

1.package test45;

2.

3.import https://www.360docs.net/doc/fe13701626.html,.*;

4.import java.io.*;

5./**

6.*Title:使用SMTP发送邮件

7.*Description:本实例通过使用socket方式,根据SMTP协议发送邮件

8.*Copyright:Copyright(c)2003

9.*Filename:sendSMTPMail.java

10.*/

11.public class sendSMTPMail{

12./**

13.*方法说明:主方法

14.*输入参数:1。服务器ip;2。对方邮件地址

15.*返回类型:

16.*/

17.

18.public static void main(String[]arges){

19.if(arges.length!=2){

20.System.out.println("use java sendSMTPMail hostname|mail to");

21.return;

22.}

23.sendSMTPMail t=new sendSMTPMail();

24.t.sendMail(arges[0],arges[1]);

25.}

26./**

27.*方法说明:发送邮件

28.*输入参数:String mailServer邮件接收服务器

29.*输入参数:String recipient接收邮件的地址

30.*返回类型:

31.*/

32.public void sendMail(String mailServer,String recipient){

33.try{

34.//有Socket打开25端口

35.Socket s=new Socket(mailServer,25);

36.//缓存输入和输出

37.BufferedReader in=new BufferedReader(new InputStreamReader(s

38..getInputStream(),"8859_1"));

39.BufferedWriter out=new BufferedWriter(new OutputStreamWriter(s

40..getOutputStream(),"8859_1"));

41.//发出“HELO”命令,表示对服务器的问候

42.send(in,out,"HELO theWorld");

43.//告诉服务器我的邮件地址,有些服务器要校验这个地址

44.send(in,out,"MAIL FROM:<213@https://www.360docs.net/doc/fe13701626.html,>");

45.//使用“RCPT TO”命令告诉服务器解释邮件的邮件地址

46.send(in,out,"RCPT TO:"+recipient);

47.//发送一个“DATA”表示下面将是邮件主体

48.send(in,out,"DATA");

49.//使用Subject命令标注邮件主题

50.send(out,"Subject:这是一个测试程序!");

51.//使用“From”标注邮件的来源

52.send(out,"From:riverwind<213@https://www.360docs.net/doc/fe13701626.html,>");

53.send(out,"\n");

54.//邮件主体

55.send(out,"这是一个使用SMTP协议发送的邮件!如果打扰请删除!");

56.send(out,"\n.\n");

57.//发送“QUIT”端口邮件的通讯

58.send(in,out,"QUIT");

59.s.close();

60.}catch(Exception e){

61. e.printStackTrace();

62.}

63.}

64./**

65.*方法说明:发送信息,并接收回信

66.*输入参数:

67.*返回类型:

68.*/

69.public void send(BufferedReader in,BufferedWriter out,String s){

70.try{

71.out.write(s+"\n");

72.out.flush();

73.System.out.println(s);

74.s=in.readLine();

75.System.out.println(s);

76.}catch(Exception e){

77. e.printStackTrace();

78.}

79.}

80./**

81.*方法说明:重载方法。向socket写入信息

82.*输入参数:BufferedWriter out输出缓冲器

83.*输入参数:String s写入的信息

84.*返回类型:

85.*/

86.public void send(BufferedWriter out,String s){

87.try{

88.out.write(s+"\n");

89.out.flush();

90.System.out.println(s);

91.}

92.catch(Exception e){

93. e.printStackTrace();

94.}

95.}

96.}

[java]view plaincopyprint?

1.package test46;

2.import java.io.*;

3.import https://www.360docs.net/doc/fe13701626.html,.*;

4./**

5.*Title:SMTP协议接收邮件

6.*Description:通过Socket连接POP3服务器,使用SMTP协议接收邮件服务器中的邮件

7.*Filename:

8.*/

9.class POP3Demo

10.{

11./**

12.*方法说明:主方法,接收用户输入

13.*输入参数:

14.*返回类型:

15.*/

16.@SuppressWarnings("static-access")

17.public static void main(String[]args){

18.if(args.length!=3){

19.System.out.println("USE:java POP3Demo mailhost user password");

20.}

21.new POP3Demo().receive(args[0],args[1],args[2]);

22.}

23./**

24.*方法说明:接收邮件

25.*输入参数:String popServer服务器地址

26.*输入参数:String popUser邮箱用户名

27.*输入参数:String popPassword邮箱密码

28.*返回类型:

29.*/

30.public static void receive(String popServer,String popUser,String popPa

ssword)

31.{

32.String POP3Server=popServer;

33.int POP3Port=110;

34.Socket client=null;

35.try

36.{

37.//创建一个连接到POP3服务程序的套接字。

38.client=new Socket(POP3Server,POP3Port);

39.//创建一个BufferedReader对象,以便从套接字读取输出。

40.InputStream is=client.getInputStream();

41.BufferedReader sockin;

42.sockin=new BufferedReader(new InputStreamReader(is));

43.//创建一个PrintWriter对象,以便向套接字写入内容。

44.OutputStream os=client.getOutputStream();

45.PrintWriter sockout;

46.sockout=new PrintWriter(os,true);//true for auto-flush

47.//显示POP3握手信息。

48.System.out.println("S:"+sockin.readLine());

49.

50./*--与POP3服务器握手过程--*/

51.System.out.print("C:");

52.String cmd="user"+popUser;

53.//将用户名发送到POP3服务程序。

54.System.out.println(cmd);

55.sockout.println(cmd);

56.//读取POP3服务程序的回应消息。

57.String reply=sockin.readLine();

58.System.out.println("S:"+reply);

59.

60.System.out.print("C:");

61.cmd="pass";

62.//将密码发送到POP3服务程序。

63.System.out.println(cmd+"*********");

64.sockout.println(cmd+popPassword);

65.//读取POP3服务程序的回应消息。

66.reply=sockin.readLine();

67.System.out.println("S:"+reply);

68.

69.

70.System.out.print("C:");

71.cmd="stat";

72.//获取邮件数据。

73.System.out.println(cmd);

74.sockout.println(cmd);

75.//读取POP3服务程序的回应消息。

76.reply=sockin.readLine();

77.System.out.println("S:"+reply);

78.if(reply==null)return;

79.System.out.print("C:");

80.cmd="retr1";

81.//将接收第一丰邮件命令发送到POP3服务程序。

82.System.out.println(cmd);

83.sockout.println(cmd);

84.

85.//输入了RETR命令并且返回了成功的回应码,持续从套接字读取输出,

86.//直到遇到.。这时从套接字读出的输出就是邮件的内容。

87.if(cmd.toLowerCase().startsWith("retr")&&

88.reply.charAt(0)=='+')

89.do

90.{

91.reply=sockin.readLine();

92.System.out.println("S:"+reply);

93.if(reply!=null&&reply.length()>0)

94.if(reply.charAt(0)=='.')

95.break;

96.}

97.while(true);

98.cmd="quit";

99.//将命令发送到POP3服务程序。

100.System.out.print(cmd);

101.sockout.println(cmd);

102.}

103.catch(IOException e)

104.{

105.System.out.println(e.toString());

106.}

107.finally

108.{

109.try

110.{if(client!=null)

111.client.close();

112.}

113.catch(IOException e)

114.{

115.}

117.}

118.}

[java]view plaincopyprint?

1.package test47;

2.

3.import java.util.*;

4.import javax.mail.*;

5.import javax.mail.internet.*;

6.import javax.activation.*;

7.

8./**

9.*Title:使用javamail发送邮件Description:演示如何使用javamail包发送电子邮件。

这个实例可发送多附件Filename:

10.*Mail.java

11.*/

12.public class Mail{

13.

14.String to="";//收件人

15.String from="";//发件人

16.String host="";//smtp主机

17.String username="";

18.String password="";

19.String filename="";//附件文件名

20.String subject="";//邮件主题

21.String content="";//邮件正文

22.@SuppressWarnings("unchecked")

23.Vector file=new Vector();//附件文件集合

24.

25./**

26.*方法说明:默认构造器输入参数:返回类型:

27.*/

28.public Mail(){

30.

31./**

32.*方法说明:构造器,提供直接的参数传入输入参数:返回类型:

33.*/

34.public Mail(String to,String from,String smtpServer,String username,

35.String password,String subject,String content){

36.this.to=to;

37.this.from=from;

38.this.host=smtpServer;

https://www.360docs.net/doc/fe13701626.html,ername=username;

40.this.password=password;

41.this.subject=subject;

42.this.content=content;

43.}

44.

45./**

46.*方法说明:设置邮件服务器地址输入参数:String host邮件服务器地址名称返回类

型:

47.*/

48.public void setHost(String host){

49.this.host=host;

50.}

51.

52./**

53.*方法说明:设置登录服务器校验密码输入参数:返回类型:

54.*/

55.public void setPassWord(String pwd){

56.this.password=pwd;

57.}

58.

59./**

60.*方法说明:设置登录服务器校验用户输入参数:返回类型:

61.*/

62.public void setUserName(String usn){

https://www.360docs.net/doc/fe13701626.html,ername=usn;

64.}

65.

66./**

67.*方法说明:设置邮件发送目的邮箱输入参数:返回类型:

68.*/

69.public void setTo(String to){

70.this.to=to;

71.}

72.

73./**

74.*方法说明:设置邮件发送源邮箱输入参数:返回类型:

75.*/

76.public void setFrom(String from){

77.this.from=from;

78.}

79.

80./**

81.*方法说明:设置邮件主题输入参数:返回类型:

82.*/

83.public void setSubject(String subject){

84.this.subject=subject;

85.}

86.

87./**

88.*方法说明:设置邮件内容输入参数:返回类型:

89.*/

90.public void setContent(String content){

91.this.content=content;

92.}

93.

94./**

95.*方法说明:把主题转换为中文输入参数:String strText返回类型:

96.*/

97.public String transferChinese(String strText){

98.try{

99.strText=MimeUtility.encodeText(new String(strText.getBytes(),

100."GB2312"),"GB2312","B");

101.}catch(Exception e){

102. e.printStackTrace();

103.}

104.return strText;

105.}

106.

107./**

108.*方法说明:往附件组合中添加附件输入参数:返回类型:

109.*/

110.public void attachfile(String fname){

111.file.addElement(fname);

112.}

113.

114./**

115.*方法说明:发送邮件输入参数:返回类型:boolean成功为true,反之为false 116.*/

117.public boolean sendMail(){

118.

119.//构造mail session

120.Properties props=System.getProperties();

121.props.put("mail.smtp.host",host);

122.props.put("mail.smtp.auth","true");

123.Session session=Session.getDefaultInstance(props,

124.new Authenticator(){

125.public PasswordAuthentication getPasswordAuthentication() {

126.return new PasswordAuthentication(username,password) ;

127.}

128.});

129.

130.try{

131.//构造MimeMessage并设定基本的值

132.MimeMessage msg=new MimeMessage(session);

133.msg.setFrom(new InternetAddress(from));

134.InternetAddress[]address={new InternetAddress(to)}; 135.msg.setRecipients(Message.RecipientType.TO,address); 136.subject=transferChinese(subject);

137.msg.setSubject(subject);

138.

139.//构造Multipart

140.Multipart mp=new MimeMultipart();

141.

142.//向Multipart添加正文

143.MimeBodyPart mbpContent=new MimeBodyPart();

144.mbpContent.setText(content);

145.//向MimeMessage添加(Multipart代表正文)

146.mp.addBodyPart(mbpContent);

147.

148.//向Multipart添加附件

149.Enumeration efile=file.elements();

150.while(efile.hasMoreElements()){

151.

152.MimeBodyPart mbpFile=new MimeBodyPart();

153.filename=efile.nextElement().toString();

154.FileDataSource fds=new FileDataSource(filename); 155.mbpFile.setDataHandler(new DataHandler(fds)); 156.mbpFile.setFileName(fds.getName());

157.//向MimeMessage添加(Multipart代表附件)

158.mp.addBodyPart(mbpFile);

159.

160.}

161.

162.file.removeAllElements();

163.//向Multipart添加MimeMessage

164.msg.setContent(mp);

165.msg.setSentDate(new Date());

166.//发送邮件

167.Transport.send(msg);

168.

169.}catch(MessagingException mex){

170.mex.printStackTrace();

171.Exception ex=null;

172.if((ex=mex.getNextException())!=null){

173.ex.printStackTrace();

174.}

175.return false;

176.}

177.return true;

178.}

179.

180./**

181.*方法说明:主方法,用于测试输入参数:返回类型:

182.*/

183.public static void main(String[]args){

184.Mail sendmail=new Mail();

185.sendmail.setHost("https://www.360docs.net/doc/fe13701626.html,");

186.sendmail.setUserName("du_jiang");

187.sendmail.setPassWord("31415926");

188.sendmail.setTo("dujiang@https://www.360docs.net/doc/fe13701626.html,");

189.sendmail.setFrom("du_jiang@https://www.360docs.net/doc/fe13701626.html,");

190.sendmail.setSubject("你好,这是测试!");

191.sendmail.setContent("你好这是一个带多附件的测试!");

192.//Mail sendmail=new

193.//Mail("dujiang@https://www.360docs.net/doc/fe13701626.html,","du_jiang@https://www.360docs.net/doc/fe13701626.html,","https://www.360docs.net/doc/fe13701626.html,","d u_jiang","31415926","你好","胃,你好吗?");

194.sendmail.attachfile("c:\\test.txt");

195.sendmail.attachfile("DND.jar");

196.sendmail.sendMail();

197.

JAVA经典算法案例

JA V A经典算法40例 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % i==0 ) return false; return true; } } 【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水

java源代码经典入门案例—光环java编程培训机构

java源代码经典入门案例 class Demo { public static void main(String[] args) { System.out.println("hello E盘"); } } class Demo { public static void main(String[] args) { System.out.println("hello E盘"); } } /* 需求:练习一个hello world程序。 思路: 1,定义一个类,因为java程序都定义类中,java程序都是以类的形式存在的,类的形式其实就是一个字节码文件最终体现。 2,定义一个主函数。为了让该类可以独立运行。 3,因为演示hello world,在控制台上看到该字样,所以需要使用输出语句完成。 步骤: 1,用class关键字来完成类的定义,并起一个阅读性强的类名。 2,主函数:public static void main(String[] args)这时固定格式的。jvm认识。 3,使用输出语句:System.out.println("hello world"); 代码仅仅是思想的一种体现形式。 */ class Demo

{ //定义一个主函数,为了保证程序的独立运行。 public static void main(String[] args) { System.out.println("hello world");//这是输出语句,用于将括号中的数据打印到控制台上,ln可以在数据的结尾处换行。 } } class OperateDemo { public static void main(String[] args) { //算术运算符。+ - * / %(取余,模运算) +(连接符) // ++(自增:就在原有数据基础上+1,在赋给原有数据) -- //int x = 6370; //x = x / 1000 * 1000; //System.out.println(x); // System.out.println(5%2); // System.out.println(3+"2"); //System.out.println("5+5="+(5+5));//"5+5=5"+5 "5+5=55" //int a = 4,b = 5; //System.out.println("a="+a+",b="+b);//a=4,b=5; int a = 3,b; //a++;//a = a+1; // b = a++; b = (a++)+(++a)+(a++)+a; // 3 5 5 6 System.out.println("a="+a+",b="+b); int i = 3; i = i++;

15个经典JAVA小程序集

import java.util.Scanner; public class Example1 { public static void main(String[] args) { Scanner sc=new Scanner(System.in);//输入一个数字 int score=sc.nextInt();//将数字放入整型score中 if(score>0)//if语句进行判断 { if(score>=90) { System.out.println("你很棒!"); } else if(score>=60&&score<90) { System.out.println("你很不错!"); } else System.out.println("你得加油!"); } else System.out.println("你输入的数字不正确!"); } } import java.util.Scanner; public class Example2 { public static void main(String[] args) { Scanner sc=new Scanner(System.in);//动态输入任意两个数int a=sc.nextInt();

int b=sc.nextInt(); if(a>b)//if语句比较大小 { System.out.println("你所输入的最大值:"+a); System.out.println("你所输入的最小值:"+b); } else if(a

java经典编程题二及详细答案

2.1上机练习 ?基本题 1)编程观察如下输出语句: System.out.println("hello test escape char"); 在“escape”处换上各种转义字符测试输出效果。如何实现如下输出: Hello "test" Hello ‘\test’ 2)设有如下代码段,考虑赋值转换问题: int a=234; byte b=a; System.out.println("a=" a ",b=" b); 将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。 3) 编写一个程序求半径R为10的圆的面积,结果保留2为有效小数。公式为:S=πR2 注:π可用Math类的常量PI表示(即Math.PI)。保留小数请查阅DecimalFormat类?提高题 1)设有一个边长为30的等边三角形,三角形内有一个内切圆,计算除内切圆外三角形内其它部分的面积。 【提示】先算三角形面积,再计算圆的面积,其差即为结果。h是等边三角形的高,内切圆的半径r=h/3,面积s=πh?/9。 2)调试分析以下程序的运行结果: public class test { public static void main(String a[]) { int m=10,n=517; System.out.println(n % m); System.out.println(n / m); System.out.println(m >> 2); System.out.println(m & n); System.out.println(Integer.toBinaryString(m)); System.out.println(Integer.toBinaryString(m >> 2)); } } 注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算

Java经典编程题50道

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加), 几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 【程序9】

JAVA算法100例_全源码

JA V A经典算法40题 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false; return true;

java经典小程序,java入门100例!

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上A级 80~89 B级 70~79 C级 60~69 D级 60分以下E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。 if(mark<0||mark>100){

java经典案例与项目

Java学习的经典的案例收集 1:九九乘法表 /* 功能:实现九九乘法表的输出 时间:2013年7月4日 */ public class jiujiuchengfabiaoDemo { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } } 结果: 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 2:输出等腰三角形 public class SanJiaoDemo { public static void main(String[] args) { for(int a=1;a<=5;a++){ for(int b=1;b<=5-a;b++){ System.out.print(" "); }

Java九大示例程序

JAVA面向对象九个经典例子程序 1 Hello world例子 (1) 2 类的基本组成示例 (1) 3静态与非静态变量及方法的使用 (3) 4 类继承的例子 (3) 5类的访问修饰符 (4) 6抽象类及其实现示例 (5) 7接口及其实现 (6) 8 抽象类与接口混合编程例子 (7) 9 接口回调与多态性 (8) 1 Hello world例子 package Example; //定义自己的包名 public class Example1 //定义一个类 { public static void main(String[] args) //系统可以执行的main方法,这里是一个公有静态无返回值的方法 { System.out.println("Hello world!"); //调用https://www.360docs.net/doc/fe13701626.html,ng包中的System类的PrintLine方法输出Hello world! } } 2 类的基本组成示例 package Example; class Person { public int age; //声明公共字段age private String name; //声明私有字段name,此时name为类的属性,下面通过公有方法进行访问 public String getName() { return name;

} public void setName(String name) { https://www.360docs.net/doc/fe13701626.html, = name; } public void eat() //定义无参数的eat方法 { System.out.println("Person can eat"); } public void eat(String s) //定义带参数的eat方法,实现方法重载 { System.out.println("Person can eat"+s); } public Person() //定义无参构造函数,注意无返回值定义,方法与类同名 { } public Person(int age, String name) //重写一个带参数构造函数,注意无返回值定义,方法与类同名 { this.age = age; //前一个age为对象的字段,由this指定,后一个age为函数形参 https://www.360docs.net/doc/fe13701626.html, = name; //前一个name为对象的属性,由this指定,因为在本类中可直接访问,后一个name为函数形参 } } public class Example2 { public static void main(String[] args) { Person person1 = new Person(); //调用类的无参构造函数 person1.age = 20; //给对象的公有字段直接赋值 person1.setName("zhangsan"); //必须使用公共方法才能给对象的属性赋值 System.out.println("第一个人信息,姓名:"+person1.getName()+"年 龄:"+person1.age); person1.eat(); //调用对象的无参方法 Person person2 = new Person(18, "lisi");//调用类的有参构造函数 System.out.println("第二个人信息,姓名:"+ person2.getName() + "年龄:"+ person2.age); person2.eat(" 馒头"); //调用对象的有参方法 } }

java递归的经典例子

java递归的经典例子 1。汉诺塔 这是递归的超经典的例子,几乎每本程序设计书上谈到递归都会介绍。具体情景不再赘述。以我上述的方法观之:(1)递归的出口在于disk数为一的时候(2)向出口逼近:如果不是一,是n ,则我们先挪动上面n-1块disk,等上面挪完,即递归返回的时候,我们挪动最底下的disk。 仅仅如此,一个貌似十分复杂的问题就解决了,因为挪动那n-1块disk的时候,会继续向上减少,直到disk的数量为一为止。下面给出java程序编码(已测试过,运行正常): import javax.swing.JOptionPane; public class Hanoi { private static final String DISK_B = "diskB"; private static final String DISK_C = "diskC"; private static final String DISK_A = "diskA"; static String from=DISK_A; static String to=DISK_C; static String mid=DISK_B; public static void main(String[] args) { String input=JOptionPane.showInputDialog("please input the number of the disks you want me move."); int num=Integer.parseInt(input); move(num,from,mid,to); } private static void move(int num, String from2, String mid2, String to2) { if(num==1){ System.out.println("move disk 1 from "+from2+" to "+to2); } else { move(num-1,from2,to2,mid2); System.out.println("move disk "+num+" from "+from2+" to "+to2); move(num-1,mid2,from2,to2); } } } 2。这是一个排列的例子,它所做的工作是将输入的一个字符串中的所有元素进行排序并输出,例如:你给出的参数是"abc" 则程序会输出:

Java面向对象经典案例10个#(精选.)

1 class Anthropoid //类人猿 { private int n=100; void crySpeak(String s) { System.out.println(s); } } class People extends Anthropoid { void computer(int a,int b) { int c=a*b; System.out.println(c); } void crySpeak(String s) { System.out.println("**"+s+"**"); } } public class Monkey { public static void main(String args[]) { Anthropoid monkey=new People(); //monkey是People对象的上转型对象 //https://www.360docs.net/doc/fe13701626.html,puter(10,10); //非法 monkey.crySpeak("我喜欢这个运动"); People people=(People)monkey; //把上转型对象强制转化为子类的对象 https://www.360docs.net/doc/fe13701626.html,puter(10,10); } } 2

class ManyArea{ public double area(double radius){ return Math.PI*radius*radius; } public double area(double len,double width){ return len*width; } public double area(int len,int width){ return len*width; } public double area(double len,double width,double height){ return len*width*height; } } public class OverLoad{ public static void main(String args[]){ ManyArea ob=new ManyArea(); System.out.println("半径为3.0的圆的面积:"+ob.area(3.0)); System.out.println("长2.0、宽3.0的面积:"+ob.area(2.0,3.0)); System.out.println("长2、宽3的面积:"+ob.area(2,3)); System.out.println("立方体的面积:"+ob.area(2.0,3.0,4.0)); } } 3 class Animal { public void shout() { } } class Dog extends Animal { public void newDog() { System.out.println("Dog的新特性"); } public void shout() {

Java编程五大经典实例(初学者版)

一、实验目的: 1、掌握 Java 基本数据类型、运算符与表达式、数组和字符串的使用方法。 2、掌握各种变量的声明方式。 3、理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 4、通过以上内容,掌握 Java 语言的编程规则。 5、了解Java程序文件名和类名的说明方法。 二、实验内容(或步骤)提要 1、输入一个学生的成绩,给出相应的等级(分别用if和switch语句实现)。 85分及以上为A级;70分及以上为B级; 60分及以上为C级;60分以下为D级。 【参考程序1】 public class Score{ public static void main(String args[]){ int s=Integer.parseInt(args[0]); if(s<60) System.out.println("D"); else if(s<70) System.out.println("C"); else if(s<85) System.out.println("B"); else System.out.println("A"); } } 【参考程序2】 public class Score{ public static void main(String args[]){ int s=Integer.parseInt(args[0]); int x=s/10; switch (x) { case 0: case 1: case 2: case 3: case 4:

case 5: System.out.println("D");break; case 6: System.out.println("C");break; case 7: case 8: if (s <85) { System.out.println("B"); break; } case 9: case 10: System.out.println("A"); } } } 2、输入某人的应纳税所得额,计算个人所得税。税率表如下: 级数全月应纳税所得额税率%速算扣除法(元) 1不超过500元的50 2超过500元至2000元的部分10 25 3超过2000元至5000元的部分15 125 4超过5000元至20000元的部分20 375 5 超过20000元至40000元的部分251375 6 超过40000元至60000元的部分30 3375 7 超过60000元至80000元的部分356375 8 超过80000元至100000元的部分40 10375 9 超过100000元的部分45 15375 计算公式是:应纳个人所得税税额=应纳税所得额×适用税率-速算扣除数 例:王某当月应纳税所得额6400元。则应纳个人所得税税额=6400×20%-375=905元。【参考程序】 import java.util.Scanner; public class TaxCompute {

50道经典java编程题

【程序1】TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 【程序2】FindPrimeNumber.java 题目:判断101-200之间有多少个素数,并输出所有素数。 【程序3】FindDaffodilNumber.java 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 【程序4】FenJie.java 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 【程序5】ConditionOperator.java 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

【程序6】GcdTest.java辗转相除法 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 【程序7】StChar.java 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 【程序8】TestAdd.java 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 【程序9】WanShu.java 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。 【程序10】TestBall.java 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

JAVA编程实例大全及详解答案(50例)

JA V A编程实例大全及详解答案(50例) 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count);

java经典小程序模板

JA V A经典小程序1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上A级 80~89 B级 70~79 C级 60~69 D级 60分以下E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。

java经典选择题100例及答案

1.使用Java语言编写的源程序保存时的文件扩展名是()。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为()。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是()。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1;a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数()。 (A)封装(B)继承 (C)覆盖(D)重载 5.在类的定义中构造函数的作用是()。 (A)保护成员变量(B)读取类的成员变量 (C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句()。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是()。 (A)类是对象的抽象(B)对象是类的抽象 (C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符()。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为() (A) .class和.java(B).java和.class (C).class和.class(D) .java和.java 12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 (A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A) package,import,class(B) class,import,package (C) import,package,class(D) package,class,import 14.下面哪个是非法的: (A) int I = 32;(B) float f = 45.0; (C) double d = 45.0;(D) char c = ‘u’;//符号错 15.Java语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB (D) Unicode 16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是 (A) public (B) protected (C) private (D) static 17.下面关于main方法说明正确的是 (A) public main(String args[ ]) (B) public static void main(String args[ ]) (C) private static void main(String args[ ]) (D) void main() 18.哪个关键字可以对对象加互斥锁?( ) (A) transient (B) synchronized (C) serialize (D) static 19.关于抽象方法的说法正确的是( ) (A)可以有方法体(B) 可以出现在非抽象类中 (C) 是没有方法体的方法(D) 抽象类中的方法都是抽象方法 20.java.io包的File类是 (A)字符流类(B) 字节流类 (C) 对象流类(D) 非流类 21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String args B、String args[] C、Char arg D、StringBuffer args[] 22.以下代码段执行后的输出结果为() int x=-3;int y=-10; System.out.println(y%x); A、-1 B、2 C、1 D、3 23.以下关于继承的叙述正确的是()。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 24. 若有定义:byte[] x={11,22,33,-66}; 其中0≤k≤3,则对x数组元素错误的引用是() A)x[5-3] B)x[k] C)x[k+5] D)x[0] 25.paint()方法使用哪种类型的参数? () A、Graphics B、Graphics2D C、String D、Color 26.以下哪个不是Java的原始数据类型() A、int B、Boolean C、float D、char 27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为() A)隐藏 B)重写 C)重载 D)Java不支持此特性 28.以下有关构造方法的说法,正确的是:() A.一个类的构造方法可以有多个 B.构造方法在类定义时被调用 C.构造方法只能由对象中的其它方法调用。 D.构造方法可以和类同名,也可以和类名不同 29.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。 A、init() B、start() C、destroy() D、stop() 30.给出下面代码,关于该程序以下哪个说法是正确的?()public class Person{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]);} } A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空 31、有以下方法的定义,请选择该方法的返回类型()。ReturnType method(byte x, double y) { return (short)x/y*2; } A、byte B、short C、int D、double 32.下列类定义中哪些是合法的抽象类的定义?() A、abstract Animal{abstract void growl();} B、class abstract Animal{abstract void growl();} C、abstract class Animal{abstract void growl();} D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};} 33.有以下程序片段,下列哪个选项不能插入到行1。() 1. 2.public class Interesting{ 3.//do sth 4. } A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ } 34. 设有下面两个赋值语句: a = Integer.parseInt(“12”); b = Integer.valueOf(“12”).intValue(); 下述说法正确的是()。

相关文档
最新文档