仓酷云

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

[学习教程] JAVA网页设计Java 进修杂谈(二)仓酷云

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

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

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

x
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),鉴于上回写的一点感受人人不厌弃,都勉励小弟持续写下往,十分困难比及国庆黄金周,练习总算有一个歇息的阶段,因而这就入手下手写第二篇了。但愿此次写的仍旧对同舟共济的伴侣们有所匡助。上回讲了Java静态加载机制、classLoader道理和关于jdk和jre三个成绩。此次持续着讲一些详细的类库——

1.关于汇合框架类
信任学过Java的列位对这个名词其实不生疏,对java.util.*这个package一定也不生疏。不晓得人人查询API的时分怎样往审阅大概剖析个中的一个package,每一个包最主要的两个部分就是interfaces和classes,接口代表了它能做甚么,完成类则代表了它怎样往做。存眷完成类之前,我们应当先了解分明它的来历接口,不论在j2se仍是j2ee中,都应当是如许。那末我们先看这三个接口:List、Set、Map。
大概有些人不太熟习这三个名字,但信任年夜部分人都熟习ArrayList,LinkedList,TreeSet,HashSet,HashMap,Hashtable等完成类的名字。它们的区分也是满简单了解的,List放能够反复的对象汇合,Set放不成反复的对象组合,而Map则放<Key,Value>如许的名值对,Key不成反复,Value能够。这里有几个简单搅浑的成绩:

究竟Vector和ArrayList,Hashtable和HashMap有甚么区分?
良多口试官喜好问这个成绩,实在更专业一点应当如许问:新汇合框架和旧汇合框架有哪些区分?新汇合框架人人能够在这些包中找sincejdk1.2的,之前的如vector和Hashtable都是旧的汇合框架包含的类。那末区分是?
a.新汇合框架的定名加倍迷信公道。比方List下的ArrayList和LinkedList
b.新汇合框架下全体都长短线程平安的。倡议往jdk内里包括的源代码内里本人往亲身看看vector和ArrayList的区分吧。固然假如是jdk5.0以后的会对照丢脸一点,由于又到场了泛型的语法,相似c++的template语法。

那末人人是不是想过为何要从旧汇合框架默许全体加锁避免多线程会见更新到新汇合框架全体作废锁,默许体例撑持多线程?(固然必要的时分可使用collections的静态办法加锁到达线程平安)
笔者的概念是任何手艺的开展都一定是遵守它们的初志的,良多严重改动是遭到客不雅情况的影响的。人人晓得Java的初志是为何而开辟的麽?是为嵌进式程序开辟的。记得上一篇讲到classLoader机制麽?那恰是为了勤俭嵌进式开辟情况下内存而计划的。而走到明天,Java成了人们心中为互联网出生的言语。互联网意味着甚么?多线程是一定的趋向。客不雅情况在变,Java手艺也跟着飞速开展,招致愈来愈离开它的初志。听说Sun公司实在主打的是J2se,了局又是因为客不雅情况影响,J2se几近忘记,留在人人议论核心的一向是j2ee。

手艺的细节这里就未几说了,只要用了才干真正了解。注释这些恰是为了匡助人人了解正在学的和将要学的任何手艺。以后讲j2ee的时分还会再会商。
多扯句题外话:几十年前的IT伟人是IBM,Mainframe市场无人可比。微软怎样打败IBM?恰是因为硬件飞速开展,对团体PC的需求这个客不雅情况,让微软经由过程OS称为了第二个伟人。下一个打败微软的呢?Google。怎样做到的?假如微软其实不和IBM争年夜型机,Google借着互联网飞速开展这个客不雅情况作为决意性要素,避开跟微软争OS,而是走搜刮引擎这条路,称为第3个伟人。那末第4个伟人是谁呢?良多专家预言将在亚洲大概中国呈现,Whatever,客不雅情况变更趋向才是决意小气向的关头。固然笔者也但愿会呈现在中国,^_^~~

2.关于Java计划形式
身旁的良多在看GOF的23种计划形式,仿佛进修它不管在黉舍仍是退职场,都成了一种盛行习尚。我不想枚举注释这23种DesignPattern,我写这些的初志一向都是谈本人的履历和意见,但愿能匡助人人了解。
起首我以为计划形式只是对一类成绩的一种通用办理举措,只需是面向对象的编程预言都能够用得上这23种。了解它们最好的办法就是亲身往写每种,哪怕是一个复杂的使用就充足了。假如代码完成也记不住的话,影象它们对应的UML图会是一个对照好的举措,固然条件是必需懂得UML。
同时最好能使用Java本身的类库匡助影象,比方对照经常使用的察看者形式,在java.util.*有现成的Observer接口和Observable这个完成类,看看源代码信任就充足了解察看者形式了。再好比粉饰器形式,人人只需写几个关于java.io.*的程序就能够完整了解甚么是粉饰器形式了。有良多人以为刚进门的时分不应打仗计划形式,好比图灵计划丛书系列很着名的那本《Java计划形式》,作者:StevenJohnMetsker,年夜部分例子厚道说令如今的我也很利诱。但我仍旧分歧意进门跟进修计划形式有任何抵触,只是我们必要晓得每种形式的观点的和典范的使用,如许我们在第一次编写FileOutputStream、BufferedReader、PrintWriter的时分就可以感到到本来计划形式离我们云云之近,并且并非何等奥秘的工具。

别的,在进修某些形式的同时,反而更能匡助我们了解java类库的某些特性。比方当你编写原型(Prototype)形式的时分,你必需懂得的是java.lang.Cloneable这个接口和一切类的基类Object的clone()这个办法。即深copy和浅copy的区分:
Object.clone()默许完成的是浅copy,也就是复制一份对象拷贝,但假如对象包括其他对象的援用,不会复制援用,以是原对象和拷贝共用谁人援用的对象。
深copy固然就是包含对象的援用都一同复制啦。如许原对象和拷贝对象,都分离具有一份援用对象。假如要完成深copy就必需起首完成java.lang.Cloneable接口,然后重写clone()办法。由于在Object中的clone()办法是protected署名的,而Cloneable接口的感化就是把protected缩小到public,如许clone()才干被重写。

那末又有个成绩了?假如援用的对象又援用了其他对象呢?如许一向判别并复制下往,是否是显得很贫苦?已经有位先辈告知我的办法是重写clone办法的时分间接把原对象序列化到磁盘上再反序列化返来,如许不必判别就能够失掉一个深copy的了局。假如人人不懂得序列化的作法倡议看一看ObjectOutputStream和ObjectInputStream

归根结柢,形式只是头脑上的工具,把它当做后人总结的履历实在一点都不为过。勉励人人下手本人往写,比方代办署理形式,能够复杂的写一个Child类,Adult类。Child要买任何工具由Adult来代办署理完成。复杂来讲就是Adult里的buy()外部实践挪用的是Child的buy(),但是表露在main函数的倒是Adult.buy()。如许一个复杂的程序就充足了解代办署理形式的基础寄义了。
来自:http://topic.csdn.net/u/20070924/21/18482496-082f-4907-8751-b80ab5d56622.html?seed=1386683868

恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
若天明 该用户已被删除
沙发
发表于 2015-1-21 10:55:30 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-21 23:54:29 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
飘灵儿 该用户已被删除
地板
发表于 2015-1-24 23:58:26 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
小魔女 该用户已被删除
5#
发表于 2015-2-2 11:49:14 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
山那边是海 该用户已被删除
6#
发表于 2015-2-6 17:04:07 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-2-17 12:35:18 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
第二个灵魂 该用户已被删除
8#
发表于 2015-2-22 14:17:00 | 只看该作者
是一种为 Internet发展的计算机语言
海妖 该用户已被删除
9#
 楼主| 发表于 2015-3-1 17:04:29 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
金色的骷髅 该用户已被删除
10#
发表于 2015-3-8 16:36:42 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
深爱那片海 该用户已被删除
11#
发表于 2015-3-16 05:40:03 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
活着的死人 该用户已被删除
12#
发表于 2015-3-18 07:17:52 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
小妖女 该用户已被删除
13#
发表于 2015-4-7 00:19:05 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
乐观 该用户已被删除
14#
发表于 2015-4-7 15:52:37 | 只看该作者
是一种使用者不需花费很多时间学习的语言
若相依 该用户已被删除
15#
发表于 2015-4-10 11:39:58 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
不帅 该用户已被删除
16#
发表于 2015-4-14 22:32:49 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
老尸 该用户已被删除
17#
发表于 2015-4-16 21:25:48 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
简单生活 该用户已被删除
18#
发表于 2015-4-21 15:52:02 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
admin 该用户已被删除
19#
发表于 2015-4-26 19:53:24 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
只想知道 该用户已被删除
20#
发表于 2015-4-30 08:35:25 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-16 02:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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