Java语言的特点
一、Java语言特点
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。
1面向对象
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。
继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。
2�平台无关性
Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。
Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。
另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。
Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个
Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。
3�分布式
分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。
Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。
Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。
4�可靠性和安全性
Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
上述几种机制结合起来,使得Java成为安全的编程语言。
5�多线程
线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。
C和C++采用单线程体系结构,而Java却提供了多线程支持。
Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。
二、Java小程序和应用程序
用Java可以写两种类型的程序:小程序(又叫JavaApplet)和应用程序(JavaApplication)。小程序是嵌入在HTML文档中的Java程序;而Java应用程序是从命令行运行的程序。对Java而言,Java小程序的大小和复杂性都没有限制。事实上,Java小程序有些方面比Java应用程序更强大。但是由于目前Internet通讯速度有限,因此大多数小程序规模较小。小程序和应用程序之间的技术差别在于运行环境。
Java应用程序运行在最简单的环境中,它的唯一外部输入就是命令行参数。另一方面,Java小程序则需要来自Web浏览器的大量信息:它需要知道何时启动,何时放入浏览器窗口,何处,何时激活关闭。由于这两种不同的执行环境,小程序和应用程序的最低要求不同。
由于WWW使小程序的发布十分便利,因此小程序更适合作为Internet上的应用程序。相反,非网络系统和内存较小的系统更适合用Java应用程序而较少用Java小程序实现。另外,Java应用程序也很容易以Internet为基础环境,事实上有些优秀的Java应用程序正是如此。
与垃圾回收有关,你看的对象或变量被JVM回收了。
ObjectCollectedException这个异常类在jdi包下,jdi是Java Debug Interface的缩写,是专门用来debug的一些程序。
解决方案:
其实这个是正常的,不用解决。
非要解决的话就加大JVM的Eden Space。
或者配一个spring的devtools
<dependencies><dependency>
<groupId>orgspringframeworkboot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
先看一下TIOBE12月份的开发语言排行榜
榜单中,Java语言依旧名列榜首。
Java语言的特点:
1、简单:
Java是一种面向对象的编程语言,没有指针,并且有一套完整的垃圾回收机制。
2、面向对象:
Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。
3、分布性:
Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其他对象。
4、健壮性:
Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。
5、安全性:
用于网络、分布环境下的Java必须防止病毒的入侵。Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
6、可移植性:
与平台无关的特性使Java程序可以方便地移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C语言实现,这使得Java系统本身也具有可移植性。
7、跨平台:
Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。
8、高性能:
和其他解释执行的语言如BASC、TCL不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
9、多线程
多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上的实时交互行为。
简介
Oracle认证证书只是让雇主了解到来应聘的人通过了Oracle数据库方面的技术考试。而实际上,Oracle认证也只是衡量一个应聘者的一个标准之一,其他的标准还有:
1出色的交际能力。Oracle DBA通常都要和IT行业的技术专家打交道,因此,他或她就必须能够为所有访问Oracle数据库的开发人员或程序员清晰明了的解释Oracle概念。有些时候,Oracle DBA也是一名管理人员,因此,也同样要求他在参与战略发展计划以及数据库设计上要有出色的交际能力。
2同类的专业学位。大多数成功的Oracle专业人士都要求由计算机或信息系统专业学士学位。对于更高的职位,比如Oracle DBA,很多雇主都要求由计算机专业硕士学位或MBA。
3一定的实践经验。这是有了OCP证书的新人们最担心的一件事情。很多有了OCP证书又没有工作经验的人都在抱怨没有OCP证书就不会有工作经验,没有工作经验就不会有工作。这是现在人才市场上一个很棘手的问题。
4丰富的数据库理论知识。除了要掌握OCP所要求的技术知识外,一名成功的Oracle专业人士还要有与数据库以及数据库设计相关的软件知识,包括数据库标准化理论以及采用统一建模语言(UML)的面向对象模型,当然还有其他的数据库设计方法相关知识,比如CORBA和J2EE。
归根结底,OCP并不能完全衡量一个人的实际水平,而只是为非IT行业人士进入Oracle领域提供一个方法。
DBA认证
Oracle OCP DBA认证是所有Oracle认证中最普及的一种认证,本来,Oracle认证是专为专业人士设计的,想要参加考试的人员必须要具有DBA 4年以上工作经验的书面证明材料才有资格参加考试,但是,随着对Oracle专业人才需求的迅猛增长,Oracle放松了对这项认证要求,在Oracle9I中,Oracle提供了3级认证。
辅助认证OCA
这项较低级的认证是Oracle专为那些仅通过OCP两项考试的人员设计的初级技能水平考试,是使用Oracle产品的基础。要获得OCA证书,必须通过自己选择的认证途径上的两次考试。第一次可以通过Internet进行,第二次考试则必须在授权的Pearson VUE考试中心进行。
9I专业认证OCP
Oracle专业认证要求通过4门具有一定难度的考试,以证实在Oracle数据库管理领域内的熟练程度
专家级技能和技术知识考试,通过这种考试之后,说明此人可以管理大型数据库,或者能够开发可以部署到整个企业的强大应用。要成为OCP,必须先获得OCA证书,然后才能参加OCP要求的其他考试。参加OCP认证的学员必须至少在Oracle大学或者其授权培训中心学习一门课程才能获得OCP证书。这些考试也必须在授权的国际认证考试中心进行。获得OCP证书后,您将有机会申请更高的职位,并增强老板对您的信任和支持。
专家级认证OCM
这项新的Oracle认证要求参试人员必须参加Oracle大学的Oracle培训,它是1990s时期前Oracle专家认证的一个分支,OCM要求参试人员必须完成下面的几项任务:
获得OCP
参加Oracle大学的两门高级课程。 通过Oracle试验室的实践测试。
资深专家级Oracle技能考试,通过后将成为企业内的资深专家。OCM不但有能力处理关键业务数据库系统和应用,还能帮助客户利用Oracle技术获得成功。要想获得OCM证书,必须先通过OCP考试,再学习Oracle大学开设的两门高级技术课程,并通过预考,然后在Oracle实验环境内成功地通过实习考试。实习考试的目的是培养动手能力,学员必须实际完成职业需要的真正任务。
认证过程
这一过程是专为那些想要从事Oracle管理的专业数据库管理人员设计的,适用于Oracle9I DBAs的OCP认证通过改进,删除了备份和恢复以及网络考试,而且,PL/SQL、SQL也被分成了不同的考试,Oracle9I OCP认证要通过下面的一系列考试:
Oracle9I入门:SQL——这门考试是为了测试SQL编程的一些概念,包括外部衔接、查询以及Oracle到ANSI SQL的扩展
Oracle9I数据库:基础I——这门基本数据库管理考试是为了测试数据库创建、规划对象以及网络结构的专业知识
Oracle9I数据库:基础II——这门高级Oracle DBA考试是为了测试高级数据库结构、安全性以及Oracle界面
Oracle9I数据库:性能调整——这门考试是为了测试参试人员在Oracle开发环境下规划调整、对象调整以及SQL调整的能力
网络应用
Oracle网络应用开发人员认证过程是为Oracle应用开发人员设计的,包括4门考试和两种可选途径。
入门心得
oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。
oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。
因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。
学习方法
方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记 。
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。
学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。
学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了
很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。
当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。
处理问题
首先要知道oracle的官方网站,这里有oracle的各种版本的数据库、应用工具和权威的官方文档。其次,还要知道这里是买了oracle服务或是oracle的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。然后就是一些著名网站这里有很多经验之谈。
遇到问题了。如果是概念上的问题,第一时间可以找网站,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。
oracle体系
oracle的体系很庞大,要学习它,首先要了解oracle的框架。在这里,简要的讲一下oracle的架构,让初学者对oracle有一个整体的认识。
物理结构
(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)
控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件
数据文件:存储数据的文件
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件
参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数
归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
密码文件:认证哪些用户有权限启动和关闭Oracle例程
逻辑结构
(表空间、段、区、块)
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间
区:是为数据一次性预留的一个较大的存储空间
块:ORACLE最基本的存储单位,在建立数据库的时候指定
内存分配
(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收
后台进程
(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控:负责在一个Oracle 进程失败时清理资源
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程:在每次日志切换时把已满的日志组进行备份或归档
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。
oracle例程
Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。
SCN
(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
继续深造
管理
可以考OCP证书,对oracle先有一个系统的学习,然后看Oracle Concepts、oracle online document,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。
开发
对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。 PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。 Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。
相关书籍
介绍几本oracle入门的好书
oracle官方文档:《concept》上面讲了oracle的体系和概念,很适合初学者看。
OCP的教学用书,也就是STUDY GUIDE(SG)。
Oracle8i 备份恢复手册
Oracle8高级管理与优化
Oracle8i PLSQL程序设计
Oracle8数据库管理员手册
以上书本都是机械工业出版社出版。
参加培训
首先是一个参不参加培训的问题。关于这个问题的争论一直很多。我觉得如果条件允许的情况下,建议还是参加培训,这样你对认证本身的课程可能会有一个相对来说比较直观的了解,这对你以后的学习是非常有帮助的。如果参加培训的话,找一家好的培训中心是首要任务,这该如何选择呢?首先要看培训中心的规模,其次就是看老师的水平,再就要看看培训中心的硬件设备怎么样。选择一个适合自己的培训中心对你来说绝对是大有裨益的。
再就是可以考虑一下网校培训,不仅能为你节省很多时间,还可以根据你自身的时间安排,什么时候都可以学习,在这里为大家推荐一个很好的网校——中国IT实验室网校,只需1个帐号就可以完成学习过程;结合官方标准授课环境,大量工程引用案例进行分析;课程零基础学起,中文式教学,理论讲解深入浅出;学习不受时间、空间影响,只要有电脑,随时可以学习;充足的实验时间,拥有30小时的远程实验机时,根据拓扑结构图可以完成CCNA所有实验,自动机时预定系统,7×24远程实验服务;题库系统涵盖最新高度仿真的Actual Exam Questions,网校虚拟考场10次中能通过6~8,认证考试将无问题;学员专用FTP服务器,24小时提供最新动向和考试内部资料。
职业前景
在Oracle的官方同站上,Oracle公司详细列举了获得OCP认证的种种好处,虽然有自卖自夸之嫌,但总的来说还是很有道理的。
总的来说,IT业对专家的要求很高,职业竞争压力很大。无论是新进入这个行业的人,还是此行业中的老手,都需要知道他们的那些技术背景能真正吸引到雇主的眼光。同时,雇主们也需要一个标准帮助他们挑选出那些技术上真正过硬的雇员。OCP认证就能够帮助IT业界建立起面向特定职位的选择标准。OCP认证是一个有价值的、业界承认的标准,这个标准可以证明持证者的知识和能力水平。
认证作用
Oracle认证对技术专家的好处:OCP认证可以给你一个鲜明的优势。OCP认证可以表明你对某一职位及相关的Oracle产品有着深刻的理解。成为一个OCP认证专家可以帮助你被更多的雇主注意到,并且增加你获得IT业最具挑战性机遇的机会。OCP认证专家们证实了OCP认证的价值:97%的 OCP认为他们获益于OCP认证;89%的OCP认为获得认证后,他们在Oracle专家的职位上更具信心;96%的OCP认为他们会建议职业学校(professional College,普遍存在于美国的一种职业教育方式)开相应的课程。
Oracle认证对IT雇主的好处:OCP认证同时可以帮助IT业的人事经理在应聘者中挑选出符合挑战性职位的员工。对于那些每年把员工送去培训的公司,认证可以保证他们在培训上的钱没有白花--他们的员工获得了对于深入理解和必要的知识。公司也可以把认证和员工的职业发展联合起来,这样可以增强员工的忠诚度及他们在职业岗位上的表现。同时,雇用获得认证的专家可以直接提高公司的实力,国际数据公司的一项研究显示了这一点。这项研究指出获得认证的专家比那些没有通过认证的平均每人每天多处理40%的支持电话;雇用认证专家的公司比那些没有雇用的公司宕机的时间少49%;对大多数公司的调查显示,在不到9个月内,认证专家为他们节约的费用就超过了他们送专家去培训并获得认证的费用。
提供ORACLE认证考试的机构
荣新IT培训中心
上海中侨职业技术学院
AVTECH中国培训中心
群柏数码科技有限公司
上海欣才信息咨询有限公司
上海亮普计算机有限公司
海央邦计算机科技有限公司
上海南洋软件系统集成有限公司
上海亚威科技
上海交大慧科南洋计算机教育中心
NIIT信息技术(上海)有限公司
上海华浦人才培训中心
学习方法
方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记 。
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。
学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。
学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了
很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。
当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。
处理问题
首先要知道oracle的官方网站,这里有oracle的各种版本的数据库、应用工具和权威的官方文档。其次,还要知道这里是买了oracle服务或是oracle的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。然后就是一些著名网站这里有很多经验之谈。
遇到问题了。如果是概念上的问题,第一时间可以找网站,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。
注:上面的参考http://baikebaiducom/view/1089138htm
JVM就是常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行。
JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域。 JVM 通过抽象操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方 法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收 算法,线程调度算法(可能不同 OS 有不同的实现)。JVM 的主要工作是解释自己的指令集(即字节码)到 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰。 JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的 组成包括 JVM 指令集,符号表以及一些补助信息。
JRE是指java运行环境。光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 在JDK的安装目 录里你可以找到jre目录,里面有两个文件夹bin和lib,在 这里可以认为bin里的就是jvm,lib中则是jvm工 作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成class之后,你可以把这个class文件 和jre一起打包发给朋友,这样你的朋友就 可以运行你写程序了。(jre里有运行class的javaexe)
JRE 是 Sun 公司发布的一个更大的系统,它里面就有一个 JVM 。 JRE 就与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本。同 JVM 一起组成 JRE 的还有一些 API (如 awt , swing 等)。 JRE 是运行 Java 程序必不可少的。
JRE ( Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成exe可执行文件……),JRE的 地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。
JRE里面有一个 JVM , JRE 与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,,同 JVM 一起组成 JRE 的还有 一些 API (如 awt , swing 等), JRE 是 运行 Java 程序必不可少的
JDK是java开发工具包,基本上每个学java的人都会先在机器 上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的 是以下四个文件夹:bin、include、lib、 jre。现在可以看出这样一个关系,JDK包含JRE,而JRE包 含JVM。
bin:最主要的是编译器(javacexe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境
(注意:这里的bin、lib文件夹和jre里的bin、lib是 不同的)总的来说JDK是用于java程序的开发,而jre则 是只能运行class而没有编译的功能,eclipse、idea等 其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求选中jre路径就ok了。
三者联系:
Java 喊出的带有标志性的口号“ Write Once , Run Anywhere (一次编写,到处运行)”,正是建立在 JRE 的基础之上。何以实现?就是在 Java 应用程序和操作系统之间增加了一虚拟层—— JRE 。
程序源代码不是直 接编译、链接成机器代码,而是先转化到字节码( bytecode ) 这种特殊的中间形式,字节码再转换成机器码或系统调用。前者是传统的编译方法,生成的机器代码就不可避免地跟特殊的操作系统和特殊的机器结构相关。而 Java 程序的字节码文件可以放到任意装有 JRE 的计算机运行,再由不同 JRE 的将它们转化成相应的机器代码,这就实现了 Java 程序的可移植性。这样程序员也不用去 关心程序运行的具体环境,而可以专心编写软件。这种分层抽象、隐藏细节的思想在计算机科学中处处可见,比如机器组织结构的设计、网络协议的实现等。 Pascal 语言的发明者 Niklaus Wirth ,就富有预见性地指出应该有这样一种可移植的语言,其生成的中间代码可以在一台假想的机器( a hypothetical machine )上运行。
而 Java 虚拟机( Java virtual machine 或 JVM )就是这样的一台机器,它模拟实际处理器的结构,解释字节码。 怎么一会说是 JRE ,一会儿又成了 JVM ,两者是否同物不同名? 回答是否定的。
JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。
要运行Applet,在客户端必须安装有 JRE,即“运行时”,容易一点理解,就象所谓的“插件”,要开发JAVA应用程序\Web应用,就必须在服务器端安装相应的 JVM+JDK 了(开发应用 Java web应用 时,客户端不需要安装任何的JVM)如果使用JAVA开发应用,就需要安装 JRE+JDK,就是 J2SE 。 如果在客户端运行Applet,客户端浏览器必须嵌有JAVA JVM,如果没有,就需要安装,即: 在客户端创建JRE(运行时,包含JVM),而客户端是不需要做开发的,所以,JDK就没有必要安装 了。 不同版本的Applet在不同的JVM下可能无法正常运行,而Microsoft JVM只是Sun JVM的“低版本”,微软在windows xp/2003中干脆将JVM去掉了
JAVA的技术特点是什么
Java由美国SUN公司(被oracle公司收购)发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。
那么Java这么高的评价它的特点有哪些,下面我来为题主解答:
一、跨平台/可移植性
这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为class; 最后利用虚拟机(解释器,java)解释执行。如下图所示:
二、安全性
Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。比如Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的。
三、面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。
四、简单性
Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
五、高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接近C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
六、分布式
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
七、多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
八、健壮性
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
以上几种特性你了解到啦吗? 记得给个赞!
当然这些还没完,Java除啦这些特性还有一些其他的特点我也来给你讲一讲!!
1java的风格类似C++,从某种意义上讲,java是C++的一个变种。但是java摒弃了C、C++中的容易引发错误和难以理解的指针,结构,以及内存管理等;
2java是一种强类型的语言,比C/C++检查还要严格,java区分大小写字母;
3java禁止非法访问内存,因为java没有指针,内存的申请和释放;
4对于不同的操作系统,会有不同的java虚拟机,这也就决定了java的可移植性;
5java提供了自动垃圾回收机制gc,有效避免了C、C++的内存泄漏问题;
记得给个赞!
0条评论