仓酷云

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

[学习教程] JAVA教程之[进修条记]Thinking in Java (the 2nd ...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:47:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。条记
第13章创立窗口和程序片



第14章多线程

多线程的完成基础能够有2种办法:从Thread类承继和完成Runnable接口

1.从线程承继为创立一个线程,最复杂的办法就是从Thread类承继。这个类包括了创立和运转线程所需的统统工具。Thread最主要的办法是run()。但为了利用run(),必需对其举行过载大概掩盖,使其能充实按本人的交托行事。因而,run()属于那些会与程序中的其他线程“并发”或“同时”实行的代码。固然重载的是run(),但在运转线程的时分,必要挪用的是start()办法;见上面的例子:

publicclassSimpleThreadextendsThread{privateintcountDown=10000;privateintthreadNumber;privatestaticintthreadCount=0;publicSimpleThread(){threadNumber=++threadCount;System.out.println("Making"+threadNumber);}publicvoidrun(){while(true){System.out.println("Thread"+threadNumber+"("+countDown+")");if(--countDown==0)return;}}publicstaticvoidmain(String[]args){for(inti=0;i<5;i++)newSimpleThread().start();System.out.println("AllThreadsStarted");}}

run()办法几近一定含有某种情势的轮回——它们会一向延续到线程不再必要为止。因而,我们必需划定特定的前提,以便中止并加入这个轮回(大概在上述的例子中,复杂地从run()前往便可)。run()一般接纳一种无穷轮回的情势。也就是说,经由过程制止内部收回对线程的stop()大概destroy()挪用,它会永久运转下往(直到程序完成)。

【共享无限的资本】可将单线程程序设想成一种伶仃的实体,它能遍历我们的成绩空间,并且一次只能做一件事变。因为只要一个实体,以是永久不用忧虑会有两个实体同时试图利用不异的资本,就象两团体同时都想停到一个车位,同时都想经由过程一扇门,乃至同时发话。进进多线程情况后,它们则不再是伶仃的。大概会有两个乃至更多的线程试图同时统一个无限的资本。必需对这类潜伏资本抵触举行防备,不然便可能产生两个线程同时会见一个银行帐号,打印到统一台盘算机,和对统一个值举行调剂等等。

【一个线程能够有四种形态】(1)新(New):线程对象已创立,但还没有启动,以是不成运转。(2)可运转(Runnable):意味着一旦工夫分片机制有余暇的CPU周期供应给一个线程,谁人线程即可当即入手下手运转。因而,线程大概在、也大概不在运转傍边,但一旦前提允许,没有甚么能制止它的运转——它既没有“逝世”失落,也未被“梗塞”。(3)逝世(Dead):从本人的run()办法中前往后,一个线程便已“逝世”失落。亦可挪用stop()令其逝世失落,但会发生一个背例——属于Error的一个子类(也就是说,我们一般不捕捉它)。记着一个背例的“掷”出应该是一个特别事务,而不是一般程序运转的一部分。以是不倡议你利用stop()(在Java1.2则是坚定否决)。别的另有一个destroy()办法(它永久不会完成),应当尽量地制止挪用它,由于它十分果断,基本不会排除对象的锁定。(4)梗塞(Blocked):线程能够运转,但有某种工具拦阻了它。若线程处于梗塞形态,调剂机制能够复杂地跳过它,不给它分派任何CPU工夫。除非线程再次进进“可运转”形态,不然不会接纳任何操纵。

【为什么会梗塞】梗塞形态是前述四种形态中最风趣的,值得我们作进一步的切磋。线程被梗塞多是由下述五方面的缘故原由酿成的:(1)挪用sleep(毫秒数),使线程进进“就寝”形态。在划定的工夫内,这个线程是不会运转的。(2)用suspend()停息了线程的实行。除非线程收到resume()动静,不然不会前往“可运转”形态。(3)用wait()停息了线程的实行。除非线程收到nofify()大概notifyAll()动静,不然不会酿成“可运转”(是的,这看起来同缘故原由2十分相象,但有一个分明的区分是我们即刻要展现的)。(4)线程正在期待一些IO(输出输入)操纵完成。(5)线程试图挪用另外一个对象的“同步”办法,但谁人对象处于锁定形态,临时没法利用。

2.完成Runnable接口

第15章收集编程1.呆板标识IP以两种情势存在着:(1)人人最熟习的DNS(域名服务)情势(2)由点号(.)分开的四组数字,好比202.98.32.1112.收集最基础的精力就是让两台呆板毗连到一同,并互相“扳谈”大概“相同”。3.端口我们设置一个客户机大概服务器的时分,必需选择一个不管客户机仍是服务器都承认毗连的端口。就象我们往拜见或人时,IP地点是他寓居的屋子,而端口是他在的谁人房间。4.套接字“套接字”大概“插座”(Socket)也是一种软件情势的笼统,用于表达两台呆板间一个毗连的“终端”。针对一个特定的毗连,每台呆板上都有一个“套接字”,能够设想它们之间有一条假造的“线缆”。线缆的每端都拔出一个“套接字”大概“插座”里。固然,呆板之间的物感性硬件和电缆毗连都是完整未知的。<b>笼统的基础主旨是让我们尽量不用晓得那些细节</b>。

第16章计划形式范式分类《DesignPatterns》一书会商了23种分歧的范式,并根据三个尺度分类(一切尺度都触及那些大概产生变更的方面)。这三个尺度是:(1)创立:对象的创立体例。这一般触及对象创立细节的断绝,如许便不用依附详细范例的对象,以是在新添一种对象范例时也不用修改代码。(2)布局:计划对象,满意特定的项目限定。这触及对象与其他对象的毗连体例,以包管体系内的改动不会影响到这些毗连。(3)举动:对程序中特定范例的举动举行利用的对象。这请求我们将但愿接纳的操纵封装起来,好比注释一种言语、完成一个哀求、在一个序列中遍历(就象在承继器中那样)大概完成一种算法。本章供应了“察看器”(Observer)和“会见器”(Visitor)的范式的例子。

第17章项目//略2005-4-5

--------------------------------------------------------------

总算能够告一段落了,前前后后花了3个多月才看完,有些许劳绩,但更主要的是缺少理论的时机;下一步呢?下一步该干甚么?



多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
爱飞 该用户已被删除
沙发
发表于 2015-1-21 14:33:24 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
只想知道 该用户已被删除
板凳
发表于 2015-1-21 20:52:17 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-26 12:53:13 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
再现理想 该用户已被删除
5#
发表于 2015-2-1 10:50:01 来自手机 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
山那边是海 该用户已被删除
6#
 楼主| 发表于 2015-2-7 03:59:26 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
变相怪杰 该用户已被删除
7#
发表于 2015-2-20 11:40:38 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
蒙在股里 该用户已被删除
8#
发表于 2015-3-6 17:02:37 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
柔情似水 该用户已被删除
9#
发表于 2015-3-11 16:13:24 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘灵儿 该用户已被删除
10#
发表于 2015-3-13 11:56:47 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
莫相离 该用户已被删除
11#
发表于 2015-3-17 08:10:42 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
简单生活 该用户已被删除
12#
发表于 2015-3-25 15:44:15 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
小妖女 该用户已被删除
13#
发表于 2015-4-1 01:50:43 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
若相依 该用户已被删除
14#
发表于 2015-4-12 18:10:46 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
若天明 该用户已被删除
15#
发表于 2015-4-14 23:21:15 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
乐观 该用户已被删除
16#
发表于 2015-4-16 10:20:56 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
老尸 该用户已被删除
17#
发表于 2015-4-17 05:29:34 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
第二个灵魂 该用户已被删除
18#
发表于 2015-6-13 06:23:45 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
金色的骷髅 该用户已被删除
19#
发表于 2015-6-13 12:47:29 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
精灵巫婆 该用户已被删除
20#
发表于 2015-7-1 10:07:50 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-14 15:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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