导航栏菜单

[登录]

备案域名交易

老域名购买,已备案域名出售,已备案过期域名查询,老域名注册,已备案域名抢注,老域名转让,万网已备案域名,九江网站建设

网站建设中Java里的寄存器、栈和堆

寄存器是反应最快的存储,因为它所处位置不同,在处理器里。不过寄存器的数量非常有限,所以它是由编译器分配的。你非但不能直接控制寄存器,甚至连它存在的证据也找不到。栈位于常规内存区里,处理器可以通过栈指针对它进行直接访问。栈指针向下移就创建了新的存储空间,向上移就释放内存空间。这是仅次于寄存器的最快、最有效率的分配内存的方法。由于Java编译器必须生成能控制栈指针上移和下移的代码,所以程序编译的时候,那些将被存储在栈中的数据的大小和生命周期必须是已知的。这使得程序的灵活性收到了限制,所以尽管Java把某些数据——特别是对象的reference存放在栈里,但对象本身并没有放在栈里。

网站建设编码时用reference操控对象

每种编程语言都有它自己的操控数据的方法。有时程序员必须时刻记着他们正在进行何种操控。你是在直接操控对象呢,还是通过一些间接的表示方法,用特殊的语法进行操控呢?Java把这一切都简化了,你可以用一种前后一致的语法,把一切都当对象来处理。虽让你把一切都当作对象,但实际上你所操控的那个标识符是对象的reference。你可以把它想成一个带遥控器的对象。只要你还拿着reference,你就可以随便操控对象,但是进行调换对象的时候,你操控的实际上是那个reference,然后再让它去和那个对象打交道。

Java中的数据成员

当你定义类的时候(Java编程要做的就是定义类,创建这些类的对象,然后再向这些对象发送消息),你可以往类里放两种元素:数据(field,有时也被称为数据成员),以及方法(method,有时也被称为成员函数)。数据可以是任何类型的,能通过reference进行操控的对象。它也可以是任何一种primitive数据(这时它就不是reference了)。如果它是一个对象的reference,那么你就必须用一种被称为构造函数的特殊方法对它进行初始化,这样才能确保将它连上一个真实的对象。如果这个primitive数据,那么你可以在定义的时候直接对它进行初始化。(reference也可以在定义时进行初始化)。

网站建设Java程序名字的可见性

控制名字是每个编程语言都要面对的问题。如果你在某个模块中用到了一个名字,而另一个程序员在别的什么模块里也用到了这个的名字,那么你该如果区分这两个名字,从而防止它们相互冲撞呢?这个问题在C里面特别严重,程序最后都成了无法管理的名字海洋了。C++(Java的类就是基于C++的)将函数装进了类里,这样它们就不会同属于其它类的函数相冲突了。不过C++仍然保留了全局变量和全局函数,因此冲突仍有可能发生。为了解决这个问题,C++用namespace关键词引入了名字空间的概念。Java用了一种全新的办法来解决这个问题。要想为类库找一个独一无二的名字,没有什么会比internet的域名更好了。实际上,Java的设计者就是要你把internet的域名倒过来用,因为这能保证它是独一无二的。例如域名是Bruce.com,所以在写foibles utility类库的名字就是com.bruce.utility.foibles。把域名倒过来之后,点就表示子目录了。这种机制会自动地为每个文件创建一个名字空间,而文件就生活在它自己的名字空间里。同时文件里面的类都必须使用唯一的标识符。

Java里组件的使用

只要程序用到了已经预先定义过的类,编译器就得知道该到那里去找这个类。当然,这个类可能是在同一个源文件里。碰到这种情况,只要直接用就是了——哪怕调用的时候这个类没定义都无所谓(Java解决了提前引用的问题,因此你不必担心)。那么如果类是保存在其它文件里面的,那又该怎么做呢?可能你会认为编译器是非常智能的,他会三下二下就找到这个类,但问题没有那么简单。设想一下,你要用一个类,但是编译器找到了好几个叫这个名字的类,想想看你写了个程序,但是编译完了之后你发觉,你往类库里面加了个同已有的类相冲突的类。

容器的缺点——不知道对象的类型

Java的容器有个缺点,就是往容器里面放入对象的时候,会把对象的类型信息给弄丢了。这是因为开发容器类的程序员不会知道你要用它来保存什么类型的对象,而让容器仅只保存特定类型的对象又会影响它的通用性。所以容器被做成只持有Object,也就是所有对象的根类的reference,这样它就能持有任何类型的对象了。当然这不包括primitive,因为它们不是对象,也没有继承别的对象。这是一个很了不起的方案,只是:1、由于在将对象放入容器的时候,它的类型信息被扔掉了,所以容器对“能往里面加什么类型的对象”没有限制。比方说,即使你向让它只持有cat,别人也能很轻易地把dog放进去。2、由于对象的类型信息没有了,容器只知道它持有的Object的reference,所以对象在使用之前还必须进行类型转换。

持有reference

Java.lang.ref类库里有一套能增进垃圾回收器工作的灵活性的类。一旦碰到了对象大到要耗光内存的时候,这些类就会显得格外有用。如果待处理对象只能通过这些reference进行访问的话,那么这些reference对象就会向垃圾回收器提供一些不同级别的暗示。如果对象还能访问的到,那么在程序的某个地方应该还能找到这个对象。或许栈里还有一个普通的reference直接指着这个对象,或许在你引用(reference的对象里面还有一个指向那个要找的对象的reference。;这中间可能会有很多层。但是,只要对象还能访问的到,也就是说程序还要用,垃圾回收器就不能回收。如果对象已经访问不到了,程序也就无从使用了,因此回收就应该是安全的了。

网站建设中选择实现

实际上,我们经常使用的容器只有三种组件:map,list和set,但是每种组件又有多个实现。所以如果你要用到某个组件的话,又该选择其中的那个实现呢?要回答这个问题,你必须先了解,各种实现都有它自己的特性,它所独有的强项和弱点。比方说,你可以从图表得知,hashtable,vector和stack属于老版留下来的类,目的是让老代码还能运行下去。所以,写程序的时候就不应该再用了。容器与容器的差别,归根结底还是在其背后的实现,也就是说,真正实现这个interface的数据结构是什么。比方说,arrayList和linkedList都实现了List接口,所以不论你用它们中的哪个,其基本的功能都是一样的。但是arrayList的背后是数组,而linkedList是用所谓的双向链表来实现的,也就是每个对象,除了保存数据之外,还保存着在它前面和后面的那两个对象的reference。所以,如果你要在List的中间做很多插入和删除的话,linkedList就比较合适了。

Web server与Apache

Web server是在互联网上运行的一种服务器软件。它用来处理来自客户端(访问者的浏览器就是客户端的一种)的请求,客户端有可能使用微软公司的IE浏览器,也有可能使用netscape浏览器。Web server处理请求后返回一些数据,这些数据通常是某种格式的页面,并且可能还含有文本和图像。客户端浏览器把这些数据解释成访问者能看明白的形式展现在访问者的计算机屏幕上。从概念上来讲,web server就是服务器上运行的一些非常简单的程序,它们等待来自客户端的请求并对其进行处理。Web server跟浏览器或者其它客户端进行通信时使用超文本传输协议。HTTP是用于发送和处理请求的一种标准协议,有了它之后,各类客户端跟服务器进行通信就不存在兼容性的问题了。Apache就是web server里的一种,它具有以下特点:1、它不仅免费,而且安装和配置起来都非常容易。2、它几乎每方面的功能都可以定制,功能扩展也非常简单。3、它在世界上的web server中所占的份额最大。它的使用很广泛,我们很多网站开发工具都使用apache。尤其是PHP网站开发中,apache提供了很好的服务。

PHP与数据库MySQL

PHP的标准解释是:PHP是一种运行在服务器上的脚本语言,可以把PHP看成web server的一个插件,有了它之后,访问者的浏览器向服务器发出请求时,服务器不仅能发送简单的网页,还能做更多的事情。安装了PHP后,服务器能识别一种新的文件,这就是PHP脚本文件,它能从数据库中提取出最新的信息并把信息放到网页中,然后把网页发送到客户端浏览器中去。PHP可以从数据库中提取数据,而MySQL就是数据库的一种。准确地说,MySQL是一种关系型数据库管理系统。它适用于组织和管理大批量信息,并且它和PHP脚本语言一起使用时的性能非常好。MySQL在UNIX平台上的非商业应用是不收费的。
分页:«101112131415161718192021222324»

Powered By 备案域名交易 .Theme By 备案域名 Copyright www.jxpxw.com.cn. Some Rights Reserved.