仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 759|回复: 18
打印 上一主题 下一主题

[学习教程] 了解下JAVA的回忆runnable

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:35:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
在本章早些时分,我曾倡议人人在将一个程序片或主Frame看成Runnable的完成情势之前,必定要好好地想想。若接纳那种体例,就只能在本人的程序中利用个中的一个线程。这便限定了天真性,一旦必要用到属于那品种型的多个线程,就会碰到不用要的贫苦。
固然,假如必需从一个类承继,并且想使类具有线程处置才能,则Runnable是一种准确的计划。本章最初一个例子对这一点举行了分析,制造了一个RunnableCanvas类,用于为本人刻画分歧的色彩(Canvas是“画布”的意义)。这个使用被计划成从命令行取得参数值,以决意色彩网格有多年夜,和色彩产生变更之间的sleep()有多长。经由过程使用这些值,人人能体验到线程一些风趣并且大概使人隐晦的特征:
  1. //:ColorBoxes.java
  2. //UsingtheRunnableinterface
  3. importjava.awt.*;
  4. importjava.awt.event.*;
  5. classCBoxextendsCanvasimplementsRunnable{
  6. privateThreadt;
  7. privateintpause;
  8. privatestaticfinalColor[]colors={
  9. Color.black,Color.blue,Color.cyan,
  10. Color.darkGray,Color.gray,Color.green,
  11. Color.lightGray,Color.magenta,
  12. Color.orange,Color.pink,Color.red,
  13. Color.white,Color.yellow
  14. };
  15. privateColorcColor=newColor();
  16. privatestaticfinalColornewColor(){
  17. returncolors[
  18. (int)(Math.random()*colors.length)
  19. ];
  20. }
  21. publicvoidpaint(Graphicsg){
  22. g.setColor(cColor);
  23. Dimensions=getSize();
  24. g.fillRect(0,0,s.width,s.height);
  25. }
  26. publicCBox(intpause){
  27. this.pause=pause;
  28. t=newThread(this);
  29. t.start();
  30. }
  31. publicvoidrun(){
  32. while(true){
  33. cColor=newColor();
  34. repaint();
  35. try{
  36. t.sleep(pause);
  37. }catch(InterruptedExceptione){}
  38. }
  39. }
  40. }
  41. publicclassColorBoxesextendsFrame{
  42. publicColorBoxes(intpause,intgrid){
  43. setTitle("ColorBoxes");
  44. setLayout(newGridLayout(grid,grid));
  45. for(inti=0;i<grid*grid;i++)
  46. add(newCBox(pause));
  47. addWindowListener(newWindowAdapter(){
  48. publicvoidwindowClosing(WindowEvente){
  49. System.exit(0);
  50. }
  51. });
  52. }
  53. publicstaticvoidmain(String[]args){
  54. intpause=50;
  55. intgrid=8;
  56. if(args.length>0)
  57. pause=Integer.parseInt(args[0]);
  58. if(args.length>1)
  59. grid=Integer.parseInt(args[1]);
  60. Framef=newColorBoxes(pause,grid);
  61. f.setSize(500,400);
  62. f.setVisible(true);
  63. }
  64. }///:~
复制代码
ColorBoxes是一个典范的使用(程序),有一个构建器用于设置GUI。这个构建器接纳intgrid的一个参数,用它设置GridLayout(网格结构),使每维里都有一个grid单位。随后,它增加得当数目的CBox对象,用它们添补网格,并为每个都传送pause值。在main()中,我们可看到怎样对pause和grid的默许值举行修正(假如用命令行参数传送)。
CBox是举行正式事情的中央。它是从Canvas承继的,并完成了Runnable接口,使每一个Canvas也能是一个Thread。记着在完成Runnable的时分,并没有实践发生一个Thread对象,只是一个具有run()办法的类。因而,我们必需明白地创立一个Thread对象,并将Runnable对象传送给构建器,随后挪用start()(在构建器里举行)。在CBox里,这个线程的名字叫作t。
请寄望数组colors,它对Color类中的一切色彩举行了枚举(列举)。它在newColor()顶用于发生一种随机选择的色彩。以后的单位(格)色彩是cColor。
paint()则相称复杂——只是将色彩设为cColor,然后用那种色彩添补整张画布(Canvas)。
在run()中,我们看到一个无穷轮回,它将cColor设为一种随机色彩,然后挪用repaint()把它显现出来。随后,对线程实行sleep(),使其“休眠”由命令行指定的工夫长度。
因为这类计划计划十分天真,并且线程处置同每一个Canvas元素都严密分离在一同,以是在实际上能够天生恣意多的线程(但在实践使用中,这要遭到JVM可以沉着凑合的线程数目的限定)。
这个程序也为我们供应了一个风趣的评测基准,由于它展现了分歧JVM机制在速率上酿成的戏剧性的差别。
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-20 21:15:48 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
乐观 该用户已被删除
板凳
发表于 2015-1-22 10:50:26 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
地板
发表于 2015-1-24 11:16:41 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-1-30 23:41:15 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-3 12:48:18 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
兰色精灵 该用户已被删除
7#
发表于 2015-2-3 21:10:14 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
小女巫 该用户已被删除
8#
发表于 2015-2-9 05:05:25 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
小魔女 该用户已被删除
9#
发表于 2015-2-10 02:21:43 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
若天明 该用户已被删除
10#
发表于 2015-3-6 09:16:23 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
冷月葬花魂 该用户已被删除
11#
 楼主| 发表于 2015-3-12 23:05:29 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-16 17:34:30 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
小妖女 该用户已被删除
13#
发表于 2015-3-21 05:42:28 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
海妖 该用户已被删除
14#
发表于 2015-3-28 20:50:05 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
变相怪杰 该用户已被删除
15#
发表于 2015-4-1 08:08:39 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
谁可相欹 该用户已被删除
16#
发表于 2015-4-3 05:18:17 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
柔情似水 该用户已被删除
17#
发表于 2015-4-13 00:08:48 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
再现理想 该用户已被删除
18#
发表于 2015-4-16 16:09:24 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
爱飞 该用户已被删除
19#
发表于 2015-4-16 21:14:44 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表