当前位置:首页 > CN2资讯 > 正文内容

我的世界javalangs

3天前CN2资讯


Java语言最早被称为Oak,它是为了实现嵌入式的消费类电子产品应用而产生的,它的作者是James Gosling.Ed Frank, Patrick Naughton, Jonathan Payne, Chris Warth在随后的几年时间中为Java语言加入了大量的特性,并把Java语言的目标做了一个重新的定位,定位于适合Internet的语言。

Java语言是一种多用途的语言、并发的语言、以类为基础,面向对象的语言。它的设计尽可能的做到和操作系统是无关的,也就是Java所宣传的那句话:“一次编写,到处运行。”Java的设计参考了C和C++语言,因此熟悉C和C++的程序员对Java语言上手很快,而Java设计的原则是能够利用Java语言快捷的编写应用,所以我们可以发现,在Java语言中,并没有那些C和C++中的复杂的机制。最明显的就是C中被大量使用的指针,由于它的随意性,被Java以引用来代替了。而C++中的操作符重载、模板、泛型的特性也因为使用比较复杂,Java也不予采用。但是目前Java仍然不断的推出新的特性,以满足应用的发展。例如在新推出的JDK1.4中,Java语言就能够支持Assertment机制和Perl语言中最有用的正则表达式机制。

Java语言主要由以下五种元素组成:标识符、关键字、文字、运算符和分隔符。这五种元素有着不同的语法含义和组成规则,它们互相配合,共同完成Java语言的语意表达。

1:标识符。变量,类和方法都需要一定的名称,我们将这种名称叫做标识符。

2:关键字。关键字是Java语言本身使用的标识符,它有其特定的语法含义。所有的Java关键字将不能被用作标识符。

3:数据类型。Java有着不同的数据类型。比较值得一提的是字符串数据类型,字符串数据类型是用一对双引号括起来的字符序列,字符串数据实际上是由String类所实现,而不是C语言中所用的字符数组。每一个字符串数据将产生一个String类的新的实例,用户不必对字符串与类这个概念发生关系而感到担心,由于类的特性,你不必担心如何去实现它们,它们会自己照顾好自己,需要说明的是字符串在Java里作为类只是出于安全的考虑。

4:运算符。任何语言都有自己的运算符,Java语言也不例外,如+、-、*、/等都是运算符,运算符的作用是与一定的运算数据组成表达式来完成相应的运算。对不同的数据类型,有着不同的运算符。

5:分隔符。分隔符用来使编译器确认代码在何处分隔。‘’‘’‘;’‘:’都是Java语言的分隔符。

学习 Java 语言很简单,毕竟 Java 语言也只包含五十多个关键词(keyword)与几十个算符(operator),再加上 Java 语法(syntax)也很简单,所以一般人可以很快就学会 Java 语言。

危险的是,很多人认为已经完全掌控 Java 语言,但其实对于内部的运作机制仍不能掌握,这些盲点有时候会让你无法完全掌控 Java 语言。

克服这些盲点的方式是看「The Java Language Specification, 2nd Ed.」(没有中文版)来彻底弄懂 Java 程序语言,并看「Inside the Java Virtual Machine, 2nd Ed.」来彻底掌握 Java 虚拟机器的运作方式。

学会了语言,并不代表就可以设计出好的对象导向系统架构。想要成为对象导向的专家,往往需要:

 

(1) 多看相关的书,特别是 Design Pattern 和 Refactoring 的书。

 

(2) 多观摩别人的程序(例如 Java API 的 design 与 implementation)

 

(3) 多写程序。

学会 Java 语言之后,还需要学会一些 API 才能写出有用的程序。

Java 的 API 非常多,必须规划好一个学习路径,才不会在浩瀚的 API 大海中迷失。必备的 API 包括了:IO、New IO、Collection Framework、Network、RMI、JAXP…… 等。

 

至于其它的 API,就看你的需求而定,大致上分成:

 

* GUI 类:JavaBean -> Swing -> JavaHelp -> Java2D -> Image IO -> JAI -> Java 3D ……

 

* Enterprise 类:JDBC -> JDO -> Servlet -> JSP -> EJB -> JMS -> JTA/JTS……

 

* J2ME 类(这一类不是我的专长,无法提供学习顺序建议)

 

Java语言通常都是根据Java虚拟机规范(The Java Virtual Machine Specification)中的定义,编译为字节码指令集和二进制格式。因此我们接下来就讨论Java虚拟机(JVM)

JVM

我们已经谈过Java语言的语法类似于C和C++,但是摒弃了C和C++中复杂、疑惑和不安全的特性。Java语言最早是用来构建消费类网络设备的软件的,因此它要支持多主机的架构,并要求能够提供安全的软件组件。为了满足这些需求,编译好的代码就必须能够通过网络来传播,能够在任何客户端上运行,同时还要保证客户端是足够安全的。

Java虚拟机是Java和Java 2 平台的基石。它能够保证Java语言和硬件、操作系统无关,保证编译后的代码最小,并保护用户不受恶意程序的攻击。Java虚拟机到底是什么呢。其实它就是一台不实际存在的计算机。和真实的计算机类似,它也有自己的指令集,并可以在运行环境中分配内存区域。使用虚拟机机制来实现编程语言并不是Java的创举,这已经是非常普遍的做法了,最著名的许你就莫过于UCSD Pascal的P-Code机。

只要浏览器检测到目前所处理的Web文件内容含有一个Java Applet,浏览器将会为这个Java小程序另外开一个JVM,执行这个Java应用小程序。在JVM中执行的Java小程序可以得到充分安全的保护。如同我们上面所说,JVM是一个自给自足的作业环境,就像是一台独立的计算机一样。例如,在JVM运作的Applet,无法存取主机操作系统。优点是:

1. 系统中立。Java应用程序可以在任何JVM中运作,不论该系统使用何种硬件、软件。

2. 安全。正因JVM跟操作系统没有任何接触,Java程序很难损害到其它档案或应用程序。

缺点是,由于在JVM运作的程序独立在操作系统之外,也就无法享受操作系统各项特殊功能。

Java技术之所以在今天得到了如此广阔的应用,其中它的安全性是不能不提的。不同于其它技术(例如Microsoft的ActiveX)中安全性作为附加设计和补丁,Java从设计之初便考虑到了安全性。因此Java的安全性是在语言层次实现的。Java的安全性由下列三个方面保证:

1、 语言特性(包括数组的边界检查、类型转换、取消指针型变量)。

2、 资源访问控制(包括本地文件系统访问、Socket连接访问)。

3、 代码数字签名(通过数字签名来确认代码源以及代码是否完整)。

Java的源代码是先编译成为一种字节码的中间代码,存放这种代码的文件就是class的文件。真正执行的时候是将class文件装载到JVM(虚拟机)中,然后由JVM解释执行的。所以数组的上下界检查及合法的类型转换是通过JVM得到保证的。Java通过一个类装载器类(ClassLoader)将虚拟机代码文件(即class文件)装载到JVM中,当完成装载后,一个被称做安全管理器(SecurityManager)的类开始运行,例如当一个Applet的class文件被缺省的类装载器装载到JVM中后,JVM会立即为它装载一个SecurityManager的子类AppletSecurity,由这个管理器来验证操作。代码的所有动作(例如文件读写)都要先经过验证,只有被该安全管理器接受的动作才能完成,否则就会抛出SecurityException异常。

对于JDK1.0,权限被笼统的划分为两大块。一是拥有所有的权限,一个是仅拥有"沙箱"(sandBox)权限,这也是普通的Applet所拥有的权限。这时本地文件读写或是与源主机(Orignal Server)以外的主机连接都是被禁止的。这种划分的最大问题就是缺乏灵活性。例如我们希望一个Applet在用户信任的情况下能够对本地文件系统的某个目录进行读写,但并不要通过Socket与其它主机连接。这是JDK1.0的权限划分就不能达到要求。JDK1.1后改进了权限的划分,引入了权限集(PermissionSet)的概念。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/21360.html

    分享给朋友:

    “我的世界javalangs” 的相关文章

    查看可用端口的重要性与实用方法

    查看可用端口的重要性 查看可用端口是网络管理中不可忽视的一环。这一过程涉及到对我们系统安全的理解与把控。端口是计算机与外界沟通的桥梁,更是我们网络环境中的“守门员”。做好端口监控不仅能保障服务的顺畅进行,更能有效预防潜在的安全风险。 在日常网络管理中,端口的状态直接影响了系统服务的可用性。当一个服务...

    选择最佳Gigabit VPS托管服务指南

    当我第一次听说Gigabit VPS时,我很快意识到它不仅是一个技术术语,而是一个可以极大改进在线业务性能的工具。那么,Gigabit VPS究竟是什么呢?简而言之,Gigabit VPS意指那些配备每秒10千兆位网络连接的虚拟专用服务器。这种高带宽的连接速度,显然适合那些需要流畅流媒体、快速文件传...

    如何在阿里云国际版上顺利注册与管理账户

    在数字化时代,云计算逐渐成为企业和个人不可或缺的工具。阿里云国际版(Alibaba Cloud International)便是阿里巴巴集团为全球用户推出的一项创新服务。这项服务的目标是让全球的用户,特别是非中国大陆地区的用户,能更方便地接触到高效、安全的云计算资源。 阿里云国际版的推出背景极为重要...

    RackNerd优惠活动详解:如何享受高性价比虚拟主机和VPS折扣

    RackNerd是一家在2019年成立的美国主机商。虽然成立时间不久,它却迅速在市场上崭露头角,赢得了许多VPS用户的青睐。公司的数据中心分别位于洛杉矶、圣何塞、西雅图和纽约等地,这些地理位置的选择让它的服务在各个区域都有稳定的覆盖。从我个人的体验来说,RackNerd的性价比非常高,尤其在价格和服...

    搬瓦工VPS与CN2线路解析:提升网络稳定性与性价比

    搬瓦工(BandwagonHost)是一家值得关注的国外VPS主机服务商,因其性价比高、性能优异而在用户中口耳相传。最初我对搬瓦工的了解并不多,但随着对VPS服务需求的增加,自然也对市场上比较有名的服务商产生了浓厚的兴趣。在我研究的过程中,搬瓦工的特点确实吸引了我的眼球,尤其适合需要稳定网络和较高性...

    获取国外动态IP服务的指南与优势

    在当今互联网的世界中,动态IP(Dynamic IP)逐渐成为了一个重要的概念。它指的是由互联网服务提供商(ISP)动态分配的、可变的IP地址。与固定不变的静态IP相比,每次连接互联网时,动态IP都可能发生变化。这种灵活性不仅高效利用了IP资源,还在多个领域产生了实际应用的优势。 动态IP的特点非常...