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/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.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 = "retr 1";

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;

39. https://www.360docs.net/doc/6e17314659.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) {

63. https://www.360docs.net/doc/6e17314659.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/6e17314659.html,");

186. sendmail.setUserName("du_jiang");

187. sendmail.setPassWord("31415926");

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

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

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

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

192. // Mail sendmail = new

193. // Mail("dujiang@https://www.360docs.net/doc/6e17314659.html,","du_jiang@https://www.360docs.net/doc/6e17314659.html,","https://www.360docs.net/doc/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.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/6e17314659.html,puter(10,10); //非法 monkey.crySpeak("我喜欢这个运动"); People people=(People)monkey; //把上转型对象强制转化为子类的对象 https://www.360docs.net/doc/6e17314659.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(); 下述说法正确的是()。

相关文档
最新文档