Java的核心技术有哪些
第一:Java虚拟机 Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。不同的Java虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码。另一种执行引擎更快,但是也更消耗内存,叫做“即时编译器(just-in-time compiler)“。在这种情况下,第一次被执行的字节码会被编译成本地机器代码。编译出的本地机器代码会被缓存,当方法以后被调用的时候可以重用。第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解释字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得不是很频繁,继续保留为字节码-由虚拟机继续解释它们。一个自适应的优化器可以使得Java虚拟机在80%~90%的时间里执行被优化过的本地代码,而只需要编译10%~20%的对性能有影响的代码。 当Java虚拟机是由主机操作系统上的软件实现的时候,Java程序通过调用本地方法(native method)和主机交互。Java中有两种方法: Java方法和本地方法。Java方法是由Java语言编写,编译成字节码文件,存储在class文件中的。本地方法是由其他语言(比如c,c++或汇编语言)编写的,编译成何处理器相关的机器代码。本地方法保存在动态链接库中,格式是各个平台专有的。运行中Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。本地方法是联系Java程序和底层主机操作系统的连接方法。
第二:类装载器的体系结构 一个Java应用程序可以使用两种类装载器:“启动(bootstrap)“类装载器和用户定义的类装载器。启动类装载器(这是系统中唯一的)是Java虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括Java API类(启动类装载器也被称为原始类装载器、系统类装载器或者默认类装载器)。 Java应用程序能够在运行时安装用户定义的类装载器,这种类装载器能够使用自定义的方式来装载类。例如,从网络下载class文件。尽管启动类装载器是虚拟机实现的本质部分,而用户定义的类装载器不是,但用户定义的类装载器能够用Java来编写,能够被编译成class文件,能够被虚拟机装载,还能够像其它对象一样实例化。 由于有用户定义类装载器,所以不必再编译的时候就知道运行中的Java应用程序中最终会加入的所有的类。用户定义的类装载器使得在运行扩展Java应用程序成为可能。当它运行时,应用程序能够解决它需要哪些额外的类,能够决定是使用一个或是更多的用户定义的类装载器来装载。由于类装载器是用Java编写的,所以用任何在Java代码中可以表述的风格来进行类装载。这些类可以通过网络下载,可以从某些数据库中获取,甚至可以动态生成。 每一个类被装载的时候,Java虚拟机都监视这个类,看到它到底是被启动类装载器还是被用户定义类装载器装载。当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器装载引用的类。例如,如果虚拟机使用一个特定的类装载器装载Volcano这个类,它就会使用这个类装载器装载Volcano类使用的所有类。 由于Java虚拟机采取这种方式进行类的装载,所以被装载的类默认情况下只能看到被同一个类装载器装载的别的类。通过这种方法,Java的体系结构允许在一个Java应用程序中建立多个命名空间。运行时的Java程序中的每一个类装载器都有自己的命名空间。 Java应用程序可以创建多少个(或多少种)被不同的类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序显示地允许这么做。当编写一个Java应用程序的时候,从不同源文件装载的类可以分隔在不同的命名空间中。通过这种方法,就能够使用Java类装载器的体系结构来控制任何不同源文件中装载的代码之间的相互影响,特别是能够阻止恶意代码获取访问或破坏善意代码的权限。 Web浏览器是一个动态扩展的例子,Web浏览器使用用户定义的类装载器从网络下载用于Java applet的class文件。Web浏览器使用一个用来安装用户定义类装载器的Java应用程序。这个用户定义的类装载器通常被称为Java Applet类装载器,它知道如何向HTTP服务器请求class文件。Java Applet可以作为动态扩展的例子,因为Java应用程序并不知道它什么时候会开始从网络下载浏览器请求的class文件。只有当浏览器遇到有Java applet的页面时,才决定是否需要下载class文件。 Web浏览器启动的Java应用程序通常为每个提供class文件的网络地址分别创建不同的用户定义类装载器,因此,不同的用户定义类装载器装载不同来源的class文件。这就可以把它们分别放置在Java主机应用程序的不同命名空间之下。由于不同来源的Java applet文件放置在不同的命名空间中,恶意的Java applet代码就不会直接访问从别的地方下载的class文件。这就能够限制或阻止不同来源的代码之间的相互访问。
第三:Java class文件 Java class文件主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。这种途径途径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件时可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。 当编译和连接一个C++程序时,所获得的可执行二进制文件只能在指定的硬件平台和操作系统上运行,因为这个二进制文件包含了对目标处理器的机器语言。而Java编译器把Java源文件的指令翻译成字节码,这种字节码就是Java虚拟机的“机器语言“。class文件设计得紧凑,因此它们可以快速地在网络上传送。其次,由于Java程序是动态连接和动态扩展的,class文件可以在需要的时候才下载。这个特点使得Java应用程序能够安排从网络上下载class文件的时间,从而可以最大限度地减少终端用户的等待时间。-编程技术有哪些
第四:Java API Java API通过支持平台无关性和安全性,使得Java适应于网络应用。Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了再Java虚拟机上运行的整个程序。 在一个平台能偶支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。 Java API在Java安全性模型方面也有贡献。当Java API的方法进行任何有潜在危险的操作(比如进行本地磁盘写操作)之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作。-编程技术有哪些
网页游戏 用了 哪些 编程技术
网页游戏程序构成分为三大部分:
第一是数据流程。第二是美术。第三是程序。
1)数据流程
数据流程其中,数据流程包括了功能。也只有在功能中才能体现数据流程。
比如最简单的卖买产品。要实现这个功能,那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。
表的问题都简单了,关键是这个物品有什么用,这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。最后,这些数据得绕成一个圈。
绕圈是一件困难的事情,特别是功能和道具多了起来的时候。难度是2的n次方。
2)美术:
UI:简洁漂亮的界面总会有好处。
小图标:道具,地图,装备,一类至少10个吧?大体上百把个是需要的。
3)程序分5个部分:
服务器定时器:(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql语句的。
功能页面、功能函数。主要就是数据存取,判断,数据走向。
ajax函数:(可选)某些需要伪即时的功能要用到。
javascript函数:(可选)模拟客户端的数据计算。也就是webgame的与时间相关的数据。分为两部分。一部分是真实数据,是由服务器端的定时器计算的。另一部分是只有初始值,客户端显示用的。不需要即时同步,仅仅需要模拟同步就行。
数据库:一大堆基础数据表和详细数据表。基础数据表:比如等级1到等级100的用户的属性初始值。详细数据表:每个用户的具体属性。
网页游戏的开发工具和技术
网页游戏的开发技术有很多,但常用的开发工具和技术主要有以下几个:
1)ASP技术 Actieserver Paga(ASP)意为“动态服务器页面”。ASP是微软公司开发用来代替CGI脚本城府的编程工具,当用于设计动态网站。ASP脚本集成于HTML中,无需编译即可直接解释执行,独立于浏览器(能解释LTML码的浏览器即可浏览ASP网页),保护源码(ASP脚本在服务器上执行,传到浏览器端的只是ASP执行结果所生成的常规HLML代码)。
2)Flex技术Flex是Adobe的服务器端产品。该技术提供了一个新的,基于标准的语言和编程模型,其编程模型支持常用的设计模式,能够使企业创建许多有吸引力的,交互的快速应用,争强了用户对网页的体验。传统网页游戏开发的局限是表现层受到一定的约束,而Flex技术能轻松地解决这一技术难题。网游Small World就是基于Flex技术开发的。
3)Ajax技术 Asynchronousjavascript and xml(Akax)意为“异步 JavaScript和XML”。Ajax是一种创建交互式网页应用的网页开发技术,它不是一个新的编程语言,而是一个编程技术。Ajax的自大优点就是能再吧刷新整个页面的前提下更新数据,使得Web应用程序更为迅速的响应用户的交互需求。
4)JSP技术Java ServerPages(JSP)是一种动态网页技术标准,它可在传统的网页HTML文件(*.htm,*.html)中插入java程序段和JSP标记,其生成的内容的逻辑被封装在标识和JavaBeans或者Enterprise JavaBeans TM组件)能够执行应用程序所要求的更为复杂的处理。由于Java在移植性、扩展性、多线程方面的特点使它成为目前网页游戏的开发语言。由Java技术开发的高端网页游戏,能处理各类与服务器的交互和复杂图形,开发大型网络游戏。
5)PHP技术 HypertextPreprocessor(PHP)意义“超级文本预处理语言”。PHP是一种在服务器端执行的嵌入HRML文档的脚本语言,风格类似C语言,应用广泛。PHP于CGI或Perl相比,能更快速地执行动态网页。PHP是将程序嵌入到HTML文档中去执行,跨平台性强,程序开发快,执行相率高,可编译以达到加密和优化代码,支持几乎所有流行的数据库,以及操作系统。
-编程技术有哪些
小程序开发需要哪些技术
小程序开发需要用到的技术如下:
1、微信小程序wxml,这个语言的编程理念和html网页的编程技术是类似的。
2、微信小程序之wxss,就是微信的css。微信把网页编程里运用的css,换成了自己的开发语言,wxss,其实主要的实现思想理念也和网页的开发技术基本没什么不同,也是一些标签的简单替换,大部分和原先的css、基本不误。
3、微信小程序之js,如果你想开发一款微信小程序学会微信小程序的js是必须要精通的。
4、微信小程序之json,简单来说json就是微信小程序的一门主次的界面,工程师们可以通过json控制上下菜单栏、主次的页面展示顺序,不过用的频率不高,只是在基本的小程序的框架构架才会应用到。
其实,小程序类似于H5面,提供了视图层描述语言,需要掌握WXML 和 WXSS 以及基于JavaScript的逻辑层框架,这里wxml相当于html,wxss相当于css。
-编程技术有哪些