仓酷云

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

[学习教程] JAVA编程:浅淡代码天生

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

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

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

x
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。  甚么是代码天生?
  代码天生,就是CodeGeneration,想必人人都不会生疏。我们利用VisualStudio等开辟工具的时分,良多代码框架都是主动天生。开端的印象就是,代码天生能够削减反复事情。可是,假如加倍深切的往看,就会看到,实在不但代码框架能够主动天生,连编译器都能够以为是代码天生器―从初级言语到呆板言语(这个历程太天然了,乃至于我们已不以为是代码天生了)。以是,代码天生有分歧的条理,最初级的是IDE那样的函数框架,其次是MFC那样的工程导游,再初级的一点应当是IDL如许的接口界说言语,再再然后是向微软提出的DSL(DomainSpecificLanguage)。

  为何要有代码天生?
  代码天生的级别,反应了笼统的级别。由于我们有一个很笼统的范畴模子,可是与能够实行的代码两头另有一段很长的历程。假如没有代码天生,就必要我们野生不休的弥补这个空缺。为了进步我们的开辟的效力和速率,必需能疾速无效的把范畴模子转化为实行代码,代码天生因而应运而生。
  代码天生能够有良多级别,由于一个笼统层大概不克不及一会儿到位的转化到最底层,以是必要分步骤地,先转换到两头一层,在云云一层层的往下,代码天生也是在一层层间举行。
  比来把想了好久的JSP和XAML给亲手实验了一把,对代码天生观点的了解又深切了很多。

  JSP的代码天生
  1.有一个复杂的html页面hello.htm,内容以下:
helloworld!
  这个没有甚么希奇的,用IE扫瞄就出个”helloworld!”的笔墨罢了。
  2.假如我把hello.htm更名为hello.jsp会如何?
  谜底是,用IE扫瞄的时分,仍是出”helloworld!”的笔墨,没有任何变更!
  3.可是看成绩不克不及光看外表啊,我们注重到Tomcat的work的N级子目次下有了hello_jsp.java和hello_jsp.class两个文件。翻开一看:


publicfinalclasshello_jspextendsorg.apache.jasper.runtime.HttpJspBase
implementsorg.apache.jasper.runtime.JspSourceDependent{

out.write("helloworld!");


  如今jsp经由了编译,以servlet的体例运转的!每次修正.jsp文件后,tomcat城市从头天生.java文件,并编译成.class然后运转。下次会见时,没有变动jsp,就间接运转.class。从而进步了运转的速率,而不再是注释实行的!服务端剧本因而同时兼具了编写复杂和运转疾速的特性!

  假如在.jsp文件里嵌进java代码段呢?那很复杂,就是在out.write()以后的某个地位原样拔出那些代码段!本来这些代码段是运转在如许的代码情况里的!你终究分明甚么对象和办法能够用了吧!

  之前看过ASP.NET的代码,跟Jsp也是相似的道理的代码天生。

  XAML的代码天生
  微软的WinFX的Avalon,如今叫做WindowsPresentationFoundation,用XAML来形貌界面结构,而利用CodeBehide手艺来分别页面和代码。等等,XAML不单单能够用来形貌界面结构,还能够用来界说程序的框架。

  一个复杂的窗口形貌(mypage.xml)
<Windowxmlns="http://schemas.microsoft.com/winfx/avalon/2005"
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
x:Class="MySpace.MyPage"
Text="MyPage"
/>

编译后的代码天生(mypage.g.cs)
namespaceMySpace{
publicpartialclassMyPage:System.Windows.Window,…{
….

  由于有CodeBehide手艺,你能够把代码写在另外一个文件里,不像jsp那样跟html混在一同(固然Jsp能够经由过程jsp:useBean平分离代码)。

CodeBehide代码(mypage.xml.cs)
namespaceMySpace{
publicpartialclassMyPage


  你看,统一个类在两个文件里界说了!要在之前,这多是要出成绩的!可是,如今微软竟然为了这修正了C#的言语标准,引进了partialclass的观点,同意一个类在两个分歧的文件里界说!

  方才说过了,XAML不单单是界面结构的形貌,还能够形貌使用程序。好比

  界说一个使用程序(myapp.xml)
<NavigationApplicationxmlns="http://schemas.microsoft.com/winfx/avalon/2005"
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
x:Class="MySpace.MyApp"
StartupUri="a.xaml"
StartingUp="AppStartingUp">
</NavigationApplication>

  天生的代码(myapp.g.cs)
namespaceMySpace{
publicpartialclassMyApp:System.Windows.Navigation.NavigationApplication{


CodeBehide(myapp.xml.cs)
namespaceMySpace{
publicpartialclassMyApp


  能够看到XAML不单单是界面形貌言语了,而是一种新的程序模子了,经由过程声明的体例来写软件,这就是笼统的寄义!

那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net比java好。
透明 该用户已被删除
沙发
发表于 2015-1-20 17:29:31 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
再见西城 该用户已被删除
板凳
发表于 2015-1-29 13:38:45 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
飘灵儿 该用户已被删除
地板
发表于 2015-2-2 16:59:24 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
若相依 该用户已被删除
5#
发表于 2015-2-8 01:50:56 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
海妖 该用户已被删除
6#
发表于 2015-2-24 00:12:15 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
莫相离 该用户已被删除
7#
发表于 2015-3-7 10:26:44 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-7 10:26:45 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
只想知道 该用户已被删除
9#
发表于 2015-3-14 21:50:34 | 只看该作者
是一种使用者不需花费很多时间学习的语言
分手快乐 该用户已被删除
10#
发表于 2015-3-21 14:26:14 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-28 13:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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