1. 《深入理解java虚拟机JVM高级特性与最佳实践》epub下载在线阅读全文,求百度网盘云资源
《深入理解Java虚拟机(第3版)》(周志明)电子书网盘下载免费在线阅读
链接: https://pan..com/s/1FEqccxQQH-AIQJE3Ishwxg
书名:深入理解Java虚拟机(第3版)
作者:周志明
豆瓣评分:9.5
出版社:机械工业出版社
出版年份:2019-12
页数:540
内容简介:
内容介绍
这是一部从工作原理和工程实践两个维度深入剖析JVM的着作,是计算机领域公认的经典,繁体版在台湾也颇受欢迎。
自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,两家主要网络书店的评论近90000条,内容上近乎零差评,是原创计算机图书领域不可逾越的丰碑。
作者简介:
资深Java技术、机器学习和企业级开发技术专家,现任远光软件研究院院长,人工智能博士在读,着有知名畅销书《深入理解Java虚拟机:JVM高级特性与最佳实践》。
开源技术的积极倡导者和推动者,对计算机科学和相关的多个领域都有深刻的见解,尤其是人工智能、Java开发和敏捷开发等领域。曾受邀在InfoQ和IBM DeveloperWorks等网站撰写技术专栏。
着作颇丰,着有《深入理解Java虚拟机》《深入理解OSGi》,翻译了《Java虚拟机规范》等着作。其中《深入理解Java虚拟机》第1版出版于2011年,已经出至第2版,不仅销量好,而且口碑更好,累计印刷超过30次,仍长销不衰,是中文计算机图书领域公认的、难得一见的佳作。
2. 虚拟机是什么,有什么好处
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。
(2)开源java虚拟机扩展阅读:
虚拟机技术最早由 IBM 于上世纪六七十年代提出,被定义为硬件设备的软件模拟实现,通常的使用模式是分时共享昂贵的大型机。 虚拟机监视器(Virtual Machine Monitor,VMM)是虚拟机技术的核心,它是一层位于操作系统和计算机硬件之间的代码,用来将硬件平台分割成多个虚拟机。
VMM 运行在特权模式,主要作用是隔离并且管理上层运行的多个虚拟机,仲裁它们对底层硬件的访问,并为每个客户操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,I/O 设备)。VMM 采用某种调度算法在各个虚拟机之间共享 CPU,如采用时间片轮转调度算法
3. 虚拟机有哪些
1、linux虚拟机
一种安装在Windows上的虚拟linux操作环境,就被称为linux虚拟机。它实际上只是个文件而已,是虚拟的linux环境,而非真正意义上的操作系统。但是它们的实际效果是一样的。所以安装在虚拟机上使用好。
2、Java虚拟机
Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
虚拟机主要用处
1、演示环境,可以安装各种演示环境,便于做各种例子。
2、保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行。
3、避免每次重新安装,银行等常用工具,不经常使用,而且要求保密比较好的,单独在一个环境下面运行。
4、想测试一下不熟悉的应用,在虚拟机中随便安装和彻底删除。
5、体验不同版本的操作系统,如Linux、Mac等。
以上内容参考网络-虚拟机
4. 如何用C++自行加载Java虚拟机(转载)
2、你想把DOS窗口里面显示的内容记录到文件里面,以便你以后分析。这是个很有用的功能。通常很多异常堆栈,和系统发生的异常消息都是在DOS窗口中输出的,有时输出内容太多时,DOS窗口以前显示的内容就看不见了,DOS窗口关掉后,你也没法再看到以前显示的内容了。 3、在windows下面,你想把java程序做成一个后台服务,就像tomcat那样,这样就可以让windows操作系统帮你管理java程序的启动和停止了。 4、 你在开发象IE这样的程序,在必要的时候才启动虚拟机运行一段Java程序 本文就教你如何做到这一点。 C++加载虚拟机的两种方法比较 加载虚拟机可以采用以下两种方法: 1、用创建子进程的方法调用java.exe来启动,在windows下面可以用CreateProcess方法,在Linux下面可以用execvp方法,调用的方式和用脚本调用差不多,这种方法比较简单我就不详细介绍了,详细的方式可以参考开源项目 Java Service Wrapper。用创建子进程的方式用以下优点: 1) 开发简单,兼容性好,对于java虚拟机的不同版本调用方式都是一样的 2) 创建出来的java进程和C++程序的进程分离,不会相互影响,你不会因为C程序出现什么内存错误崩溃导致java进程也一起完蛋(当然分离进程也带来了其他问题,详见我后面的分析)。但是我不太喜欢这种方法,因为有以下缺点: 1)生成分离的java进程后,在系统里会看到另外一个java.exe的进程,当启动了很多这样的进程时,你会看到很多名称为java的进程,你无法区分哪个是哪个。 2) 生成了分离的Java 进程后,你就不好对它进行控制,比如说要关闭它,如果直接kill掉java进程,可能java进程里面一些关闭时需要做的清理工作还来不及做。如果想让java程序执行清理工作再退出,你就需要建立和java程序之间的通讯机制,以向java程序发出退出的消息,这通常还需要在java程序里面加载专门的类,以及需要java程序的开发人员进行相关的接口开发工作。 2、加载java虚拟机的另外一种方法是加载jvm的动态库,并通过动态库的接口来在本进程内启动java虚拟机。"); return false; } } Linux平台的加载方法 Linux平台下的虚拟机的加载方法跟windows平台基本一致,不同的地方仅在于加载动态库的方法不同,在linux平台的JDK中,jvm动态库所在的路径为 $JAVA_HOME/jre/lib/i386/client/libjvm.so $JAVA_HOME/jre/lib/i386/server/libjvm.so 在Linux下装载动态库的示例代码如下: #include #include #include typedef void* (*JNICREATEPROC)(JavaVM **, JNIEnv **, void *); bool startJVM() { JNIEnv *env; JavaVM *jvm; jclass cls; jmethodID mid; jobjectArray args; //jvm动态库的路径 const char szJvmPath[] = "/usr/jdk1.5.0_01/jre/lib/i386/server/libjvm.so"; //启动类 const char szStartClass[] = "test/JTest"; //启动方法 const char szStartMethod[] = "main"; //Java启动参数 int nOptionCount = 2; JavaVMOption options[2]; options[1].optionString = "-Xmx256M"; options[0].optionString = "-Djava.class.path=./Test.jar;./Test1.jar"; JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_4; vm_args.options = options; vm_args.nOptions = nOptionCount; vm_args.ignoreUnrecognized = JNI_TRUE; //命令行参数 int nParamCount = 2; const char *szParams[2] = {"arg1","arg2"}; //装载动态库 void* lib_handle = 0; lib_handle = dlopen(szJvmPath, RTLD_NOW); if (!lib_handle) { fprintf(stderr, "dlopen failed\n"); return false; } JNICREATEPROC lib_func = 0; //查找JNI_CreateJavaVM过程 lib_func = (JNICREATEPROC)dlsym(lib_handle, "JNI_CreateJavaVM"); lib_func(&jvm,&env,&vm_args); //后面与windows平台处理流程完全一样 cls = env->FindClass(szStartClass); if (cls == 0) { fprintf(stderr, "Can't find class:%s\n",szStartClass); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); } return false; } mid = env->GetStaticMethodID(cls, szStartMethod,"([Ljava/lang/String;)V"); if (mid == 0) { fprintf(stderr, "Can't find Method:%s\n",szStartMethod); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); } return false; } jclass stringClass = env->FindClass("java/lang/String"); if (env->ExceptionCheck() == JNI_TRUE || stringClass == NULL) { fprintf(stderr, "find String class error"); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); } return false; } args = env->NewObjectArray(nParamCount, stringClass, NULL); if (args == 0) { fprintf(stderr, "Out of memory\n"); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); } return false; } jstring jstr; for (int i=0; iNewStringUTF(szParams[i]); if (jstr == 0) { fprintf(stderr, "Out of memory\n"); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); } jvm->DestroyJavaVM(); return false; } env->SetObjectArrayElement(args, i, jstr); if (env->ExceptionCheck() == JNI_TRUE) { fprintf(stderr, "set param error\n"); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); } jvm->DestroyJavaVM(); return -1; } } env->CallStaticVoidMethod(cls, mid, args); if (env->ExceptionOccurred()) { env->ExceptionDescribe(); return false; } return true; } typedef jint (JNICALL *JNICREATEPROC)(JavaVM **, void **, void *); bool setStream(JNIEnv *env, constchar* pszFileName, constchar* pszMethod); //启动java虚拟机方法 bool startJvm() { //jvm动态库的路径 constchar szJvmPath[] = "c:\\jdk1.5.0_01\\jre\\bin\\server\\jvm.dll"; //java 虚拟机的启动参数,每个参数写一项,不能合在一起写 int nOptionCount = 2; JavaVMOption options[2]; options[1].optionString = "-Xmx256M"; //设置classpath options[0].optionString = "-Djava.class.path=./Test.jar;./Test1.jar"; JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_4; vm_args.options = options; vm_args.nOptions = nOptionCount; vm_args.ignoreUnrecognized = JNI_TRUE; //启动类,注意分割符是/,例如启动类test.JTest应该写成 test/JTest constchar szStartClass[] = "test/JTest"; //启动方法,通常是main函数,你也可以设定成其他函数 constchar szStartMethod[] = "main"; //重导向文件 constchar szStdoutFileName = "stdout.txt"; constchar szStderrFileName = "stderr.txt"; //java程序的命令行参数 int nParamCount = 2; constchar *szParams[2] = {"arg1","arg2"}; //加载JVM。
5. java虚拟机和java环境有什么关系,如果有关系请说明,如果没关系请分别解释下它,谢谢
所谓java运行环境 就是搭建的一个能给java程序运行的环境。
包括java虚拟机、一套标准java类库、一些被java虚拟机或类库调用的本地方法等组成。
虚拟机只是虚拟一个硬件平台,可以让java运行,所以java才能跨平台。
虚拟机和其他部分组合起来,才是一个完整的运行环境
6. Java没有虚拟机什么都干不了,为什么还有人用呢
这可能要从操作系统上来说
服务器操作系统有很多
收费的系统有 unix ,windows等
免费的主要是 linux.
一般来说 windows 对的数据库是mssql 这两者的使用费用都相当昂贵. 具体来说都是好几十万的算.
unix的话 最稳定,一般国家基础电信系统都是unix. unix是最贵的操作系统了听说是百万级别的(money)
所以一般上了一定的规模 但是不想因为使用windows盗版而引来官司的话 都是使用linux+mysql 数据作为程序的基础支撑. 但是一般开发上用的多的系统都是windows 所以就存在了程序的跨平台问题,java就是看准了这个问题才出来的,借助于java vm的支持 能让java程序在所有环境下运行(官方语言),程序发展(web)最终使用的平台都是unix 所以java就能在之间一直运行.
很显然java的模式其实很大程度上模拟了dll的实现,但是dll的话只能在windows平台下运行.java只能在jvm上运行.原理是一样不知道您能不能理解,要知道sun也是做操作系统的 只是没有在市场中占到领导位置,所以退到了二线来做java虚拟机.但是发现这个很有远景,所以微软也改写了dll的规范 提出了.net的构思,在.net2.0的框架里面这个有很大的优化,但是微软一直是一个垄断公司他的目标都是销售他的操作系统,这是他的最终目标,所以他不会考虑跨平台的问题,所以java在很大程度上有优势也有益于我们的系统,但是要知道服务器系统最终都是走向unix所以都需要花钱的 哈哈. 不过说了这么多我也没说明白java的好处,
但是要知道java在j2ee上很有前途.毕竟发展了好多年啊.基础构件都比.net优秀.但是在窗体开发上java并不优秀.j2ms的话抄做的比较厉害,实际做的人不多.
7. 什么是java开源项目谁能简单地给我讲一下!目的过程成果用途
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。
Java分为三个体系J2SE(Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。
[编辑本段]Java语言特点
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?
Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。
在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
[编辑本段]Java主要特性
1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
[编辑本段]Java相关技术
1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口。
2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。
4、Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无缝的互操作性。这使得Java能集成异构的商务信息资源。
5、JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无缝的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。
6、JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。
7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。
8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。
在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。现在,EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构,这个模型支持多层的分布式对象应用。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围。
[编辑本段]Java开源项目
Spring Framework
Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。 Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。.
WebWork
WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。 Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成 Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.
Struts
Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
Hibernate
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:
Quartz
Quartz 是OpenSymphony开源组织在Job scheling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。
Velocity
Velocity 是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
IBATIS
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。
Compiere ERP&CRM
Compiere ERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。
Roller Weblogger
这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。
Eclipse
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。
NetBeans
NetBeans IDE 是一个为软件开发者提供的自由、开源的集成开发环境。您可以从中获得您所需要的所有工具,用 Java、C/C++ 甚至是 Ruby 来创建专业的桌面应用程序、企业应用程序、web 和移动应用程序。此 IDE 可以在多种平台上运行,包括 Windows、Linux、Mac OS X 以及 Solaris;它易于安装且非常方便使用。
XPlanner
XPlanner 一个基于Web的XP团队计划和跟踪工具。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。 XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。
HSQLDB
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92 标准 SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。
Liferay
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。
JetSpeed
Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现,使用的技术是Java和XML。用户可以使用浏览器,支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息。Jetspeed扮演着信息集中器的角色,它能够把信息集中起来并且很容易地提供给用户。
JOnAS
JOnAS 是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
JFox3.0
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的。
[编辑本段]Java版本历史
1995年5月23日,Java语言诞生
1996年1月,第一个JDK-JDK1.0诞生
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月,JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2006年12月,SUN公司发布JRE6.0
目前JDK7.0已经在研发中,已经有测试版在 https://jdk7.dev.java.net/ 可以下载使用
[编辑本段]Java与Internet
我们知道,早先的www仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。
Java并不是为Internet、www而设计的,它也可以用来编写独立的应用程序。Java是一种面向对象语言,Java语言类似于C++语言,所以已熟练掌握C++语言的编程人员,再学习Java语言就容易得多!Java程序需要编译,它被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。实际上有两种Java程序:一种Java应用程序是一个完整的程序,如Web浏览器。另一种Java小应用程序是运行于Web浏览器中的一个程序。
Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音,你还能播放页面里的动画,Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。
[编辑本段]Java与电子商务
电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。
[编辑本段]Java的八大基本数据类型及其包装类
原始类型 包装类
short Short
int Integer
long Long
float Float
double Double
byte Byte
char Character
boolean Boolean
[编辑本段]第一个JAVA程序HelloWorld
//文件名 HelloWorld.java
//声明一个类
public class HelloWorld {
//声明一个方法
public static void main(String[] args){
//输出
System.out.println("hello world!");
}
}
8. 关于java
Java的Sun Microsystems的Java编程语言介绍了1995年5月(以下简称为Java语言)和Java平台的总称的。 HotJava浏览器(Java实现支持Java小程序)Java的魅力:跨平台,动态的Web,Internet计算。从那时起,Java被广泛接受和推广网络的快速发展,常用的浏览器现在支持Java applets。另一方面,Java技术是不断更新的。
Java平台的Java虚拟机(Java虚拟机)和Java应用程序编程接口(应用程序编程接口,或API)构成。独立的操作系统提供一个标准接口,可分为用于Java应用程序的Java应用程序编程接口的基本部分和扩展。 Java应用程序可以运行在Java平台上安装的硬件或操作系统平台。现在Java平台已经嵌入在几乎所有的操作系统。因此,Java程序可以只编译一次,并可以运行在不同的系统。 Java应用编程接口已经发展从1.1倍版本到1.2版本。 Java平台基于Java1.4,最近版本为Java1.7。
Java是分为三个系统JavaSE中(Java2平台标准版(32位x86)的Java平台,标准版),JavaEE服务器(Java 2平台企业版Java平台,企业版),和JavaME(Java 2平台Micro版平台的Java微型版)。
2009年的甲骨文(Oracle)宣布收购的太阳。
[编辑本段] JAVA的名字起源
一天,几个Java组的成员正在讨论如何命名这个新的语言,他们是爪哇(Java)的咖啡馆喝着咖啡,称为Java这项建议已得到别人的想法,Java名称的传播。没有去看看原来的Sun Java徽标认为,现在看,这不就是一杯热气腾腾的咖啡吗?
[编辑本段] Java语言特性
Java是一个简单的,面向对象的,分布式的,解释了安全,可靠的结构中立的,可移植的,高性能的多线程的动态语言。
当SUN的Java语言于1995年推出后,眼中的世界是神奇的语言吸引。 Java中到底有什么神奇的?
Java语言其实出生于1991年,最初称为OAK语言,SUN公司为一些消费性电子产品和通用设计环境。他们最初的目的只是为了开发一种独立于平台的软件技术,可以说是未知的,它几乎夭折,并在网络出现之前,OAK。然而,互联网的出现改变了OAK的命运。
的Java来临之前,在互联网上的信息内容都是一些无聊的刚性HTML文件。这是针对那些痴迷的WEB浏览器的人简直是无法忍受的。他们迫切希望看到的网络互动内容开发创建一个类,不需要考虑硬件和软件平台,可以执行应用程序的WEB是非常可取的,当然,这些程序也有一个很大的安全。对于用户来说,这样的要求,传统的编程语言是无能为力的。 SUN的工程师敏锐地认识到,从1994年起,他们开始OAK在WEB和HotJava的第一个版本所采用的技术。 SUN 1995年正式推出的Java的名义,几乎所有的Web开发人员心中感叹:哦,这正是我想要的!因此,Java已经成为一颗耀眼的明星,丑小鸭变成白天鹅的整个事情。
[编辑本段] Java的主要特点
Java语言是简单的。 Java语言的语法与C语言和C + +语言很接近大多数程序员很容易学习和使用Java。另一方面,Java已经丢弃了C + +中很少使用,这是很难理解的,令人困惑的功能,比如操作符重载,多继承,自动投。特别是,Java语言不使用指针,并提供了自动的废料收集,这样程序员就不必担心内存管理。
2,Java语言是一种面向对象的。 Java语言的类,接口和继承原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多重继承,并支持实施机制之间的类和接口(关键字实现)。 Java语言全面支持动态绑定,而C + +虚函数使用动态绑定。总之,Java语言是一种纯粹的面向对象编程语言。
3,Java语言是分布式的。 Java语言支持开发互联网应用,在基本的Java应用程序编程接口,它提供了网络应用编程的类库,包括URL,URL连接,套接字,ServerSocket的网络应用程序编程接口(java.net)。 Java的RMI(远程方法激活)机制是开发分布式应用程序的重要手段。
4,Java语言是健壮的。 Java的强类型,异常处理,自动垃圾收集的Java程序健壮性的重要保证。指针下降的Java明智的选择。 Java的安全检查机制使得Java更强的鲁棒性。
5,Java语言是安全的。 Java是经常被用来在网络环境中,Java提供了一个安全机制,以防止恶意代码的攻击。除了许多Java语言的安全功能,通过网络下载Java类的安全机制(类加载器)分配一个不同的名称空间,以防止其他本地类相同的名称,字节代码检查,并提供安全管理机制(类SecurityManager的)允许Java应用程序设置安全哨兵。
6,Java语言是体系结构中立的。 Java程序(后缀为java文件)被编译Java平台的体系结构中立的字节码格式的(类文件后缀),然后你就可以在Java平台上运行的任何系统。这种方法适用于异构的网络环境和软件分发。
7,Java语言是可移植的。这种可移植性体系结构中立此外,Java有严格的规定,每个基本数据类型的长度。 Java系统本身具有很强的可移植性,Java编译器是用Java实现的,Java的运行时环境中实现ANSI C.
8,Java语言的解释。正如前面提到的在Java平台上被编译成字节码格式,然后可以运行在任何系统中的Java平台,Java程序。在运行时,Java平台,Java解释器解释执行这些字节码类实施过程中需要加载到操作系统环境的耦合阶段。
9,Java是一种高性能。与解释型的脚本语言相比,Java是确实是一个高性能。事实上,Java的运行速度,搭配-IN-TIME(JIT)编译器技术的发展,越来越多的接近C + +。
10,Java语言是多线程的。线程是Java语言中的一种特殊的对象,它必须创建Thread类的子类(星期日)。通常有两种方法创建一个线程:首先,使用形式的几何结构,主题(可运行)构造函数将一个实现Runnable接口的对象包装成一个线程,第二子类派生从Thread类并重写run方法中,创建使用子类对象的线程。值得注意的是Thread类实现Runnable接口,因此,任何一个线程都有它的run方法,run方法包含的线程中运行的代码。的线程的活动来控制由一组方法。 Java语言支持同时执行多个线程之间的同步机制的多线程(关键字为synchronized)。
11,Java语言是动态的。 Java语言的设计目标之一的是,适于在环境中的动态变化。类的Java程序需要动态加载的经营环境,但也通过网络来加载所需的类。这也有利于软件的升级。此外,Java类的运行时类型检查的运行时表示。
Java语言的优秀功能,使Java应用程序具有无与伦比的耐用性和可靠性,这也降低了应用系统的维护成本。 Java嵌入式对象技术和Java平台API的支持可以缩短应用开发时间并降低成本。 Java编译,到处运行的特性使得它能够提供一个开放的架构可在任何地方,和低成本的方式来传递信息之间的多平台。特别是Java企业应用编程接口(Java企业API)为企业计算及电子商务应用提供相关的技术和丰富的类库。 [编辑本段] Java的相关技术
JDBC(Java数据库连接)提供了一个统一的接口来连接各种关系数据库,可提供统一的访问各种关系数据库,它由一组用JAVA语言编写的类和接口。 JDBC标准的API,JDBC为工具/数据库开发人员,你可以构建更高级的工具和接口,数据库开发人员用纯Java API来编写数据库应用程序,是一个商标名称。
2,EJB(企业JavaBeans)可以让开发人员能够轻松地创建,部署和管理跨平台的基于组件的企业应用程序。
3,用于开发分布式Java应用程序的Java的Java远程方法调用(RMI)。 Java对象,可以远程Java虚拟机调用。在这种方式中,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要这两个应用程序都是用Java编写的。
4,Java的Java接口定义语言IDL()提供CORBA(公共对象请求代理体系结构)的无缝互操作性。这使得Java可以集成异构的业务信息资源。
5,JNDI(Java命名和目录接口)提供了一个统一的Java平台无缝连接。这个接口屏蔽了企业网络中使用的各种命名和目录服务。
6,JMAPI(Java管理API)提供了一套丰富的对象和方法的异构网络系统,网络和服务管理的发展。
7,JMS(Java消息服务),提供企业短信服务,如可靠的消息队列,发布和订阅通信,以及推 - 拉(推/拉)技术。
8,JTS(Java事务服务)提供开放的标准访问事务资源,包括事务处理应用程序,事务处理,管理和监测这些事务处理资源。
关注JavaBean,它是一个开放的标准的组件体系结构,它是独立于平台,但使用Java语言的Java技术,。一个JavaBean,以满足JavaBeans规范的Java类通常定义了一个现实世界的事物或概念。一个JavaBean属性,方法和事件的主要特点。通常情况下,在一个开发环境,支持JavaBeans规范(如Sun的Java Studio和IBM的VisualAge for Java)中,您可以直观地操作的JavaBean,也可以使用JavaBean构建一个新的JavaBean。 JavaBean的优势在于Java的可携性。现在,EJB(企业JavaBeans)的JavaBean概念扩展到Java服务器端组件体系结构,这个模型支持多层的分布式对象应用程序。除了到JavaBean,一个典型的组件体系结构DCOM和CORBA,在这些组件的体系结构的深入讨论超出了本书的范围。
Java的
计算机科学课程列表
JNI(Java本地接口)Java本机接口。
[编辑本段]
[Java开源J2EE框架Spring框架的Java开源项目]
Spring是一个解决方案,许多在J2EE开发功能强大的框架中的常见问题。 Spring提供了一个统一的管理业务对象的方法,并鼓励他们养成良好的生活习惯注入接口编程,而不是编程的类型。 Spring框架的基础是基于使用JavaBean属性控制反转容器。然而,这是完整的图片只是其中的一部分:Spring IoC容器作为一个完成的建筑关注所有架构层的完整解决方案是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大地提高了工作效率,并减少了出错的可能性。 Spring的数据访问架构还集成了Hibernate和其他O / R映射解决方案。 Spring还提供了一个唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。 Spring AOP框架提供了一个标准的Java语言,声明式事务管理和其它企业服务 - 如果你需要 - 还能实现自己的方面的POJO。这个框架足够强大,以使应用程序能够抛开EJB的复杂性,同时享受关键服务和传统EJB。 Spring还提供了集成和IoC容器强大而灵活的MVC Web框架。 [SpringIDE:Eclipse平台支持开发的一个插件。
WebWork的组件化和代码重用【Java开源的Web框架]开发
WebWork是由OpenSymphony组织专门拉出MVC模式J2EE Web框架。 WebWork的最新版本是2.1,现在WebWork2.x的前身,里卡德奥伯格开发的WebWork的WebWork的已经被分成两个项目Xwork1和webwork2的。 Xwork简洁,灵活功能强大,它是一个标准的Command模式,并且完全从web层脱离出来。 XWork之上提供了很多核心功能:前端拦截器(Interceptor)运行时表单属性验证,类型转换,强大的表达式语言(OGNL - 对象图形标记语言)的IoC(控制反转控制反转)容器。在建立XWork的顶部webwork2的处理HTTP的响应和请求。 webwork2的使用的ServletDispatcher HTTP请求转化为行动(业务层Action类)的映射会话(session)的应用范围(应用程序),请求的请求参数映射。 webwork2的支持多视图的视图部分可以使用JSP,速度,FreeMarker的的,JasperReports,XML。在WebWork2.2增加了对AJAX的支持,这种支持是建立的基础上的DWR与Dojo框架【EclipseWork:用于WebWork的一个Eclipse插件,帮助开发人员
的Struts【Java开源的Web框架]
Struts是一个基于J2EE平台的MVC框架,主要是采用Servlet和JSP技术。 Struts应用程序开发人员可以完全满足需求,易于使用,灵活快速乱舞在过去的一年。 Struts的的Servlet,JSP,自定义标签和信息资源(信息资源)整合到一个统一的框架,开发人员可以使用它的发展不再需要自己编码实现全套MVC模式,极大的节约的时间,让是Struts是一个非常不错的应用框架。 StrutsIDE:对Struts协助开发一个Eclipse插件]
休眠[开放源码的Java持久化框架]
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象编程思维对象的封装性,使任意的Java程序员可以使用它来操纵数据库的。 Hibernate可以应用任何场合使用JDBC,无论是客户端程序在Java实用程序也可以使用一个Servlet / JSP的Web应用程序中,最具革命性的,Hibernate可以取代CMP EJB的J2EE架构的应用程序来完成数据持久化的重要任务。 Hibernate在Eclipse平台的辅助开发工具:【使用Hibernate Synchronizer】【MiddlegenIDE
石英[Java的开源作业调度】
Quartz是OpenSymphony的开源组织在该领域的工作安排的一个开源项目,它可以与J2EE,J2SE应用程序相结合也可以单独使用。 Quartz可以用来创建简单或运行十,百,甚至是数以十万计的就业机会,每天的日程是如此复杂。 Jobs可以做成标准的Java组件或EJBs。石英石英1.5.0的最新版本。
速度【Java开源模板引擎
Velocity是一个基于java的模板引擎(模板引擎)。它允许任何人仅仅简单的使用模板语言模板语言来引用由java代码定义的对象。速度应用于web开发时,界面设计和java程序开发人员同步开发遵循MVC架构的网站,也就是说,页面设计人员可以专注于显示的页面,java程序开发人员关注业务逻辑编码。速度java代码从网页中分离出来,便于长期维护的网站,同时也为我们在JSP和PHP提供了另一种解决方案。 Velocity的能力远超过网络网站的发展在这方面,例如,它可以产生SQL和PostScript的,XML模板(模板),它也可以被用来作为一个独立的工具,以产生源代码和报告,或者作为其他系统的集成组零件。速度还提供了模板服务的汽轮机的web开发框架(模板服务)。速度+涡轮机提供一个模板服务,允许Web应用程序开发一个真正的MVC模型。 【VeloEclipse:发展速度的辅助插件Eclipse平台]
IBATIS [开放源码的Java持久化框架
使用的iBatis提供的ORM机制,在人事方面,实现了业务逻辑,面对纯Java对象,这一层通过Hibernate ORM而言基本相同的具体的数据操作,Hibernate会自动生成SQL语句,ibatis的要求开发者编写具体的SQL语句。相对Hibernate的“全自动”ORM机制,ibatis的SQL开发的工作量和数据库移植性上的让步,系统设计提供了更大的自由空间。实现的有益补充,作为“全自动”ORM ibatis的外观显得特别有意义。
Compiere的ERP&CRM【Java开源的ERP和CRM系统
Compiere的ERP&CRM提供全面的解决方案,为全球小型和中小型企业,涵盖所有领域,从客户管理,供应链,财务,管理,支持多组织,多币种,多会计模式,多成本,多语种,多税收国际化的特征。易于安装,易于实施,易于使用。只需要几个小时,你可以用采购 - 采购 - 发票 - 付款报价 - 订单 - 发票 - 收款,产品定价,资产管理,客户关系,供应商关系,员工关系,的运作分析功能强大的结果。
滚子Weblogger【Java开源Blog博客]
网络博客更复杂的设计,源代码是一个很好的学习材料。它应该支持网络博客的功能,如:评论功能,所见即所得的HTML编辑器,引用,提供了页面模板,RSS聚合的blogroll,管理,并提供了一个XML-RPC接口。
Eclipse的Java的开放源代码开发工具]
Eclipse平台的开发框架,IBM捐赠给开放源代码社区,不是因为它是着名的IBM声称-4千万美元投资的发展,总数的资金,但如此巨大的投资,因为结果:一个成熟的,精心设计的,可扩展的体系结构。
的NetBeans【Java开源开发工具]
NetBeans IDE是一个软件开发提供了免费,开源的集成开发环境。你可以得到所有的工具,你需要使用Java,C / C + +甚至是Ruby来创建专业的桌面应用程序,企业应用程序,web和移动应用程序。 IDE可以在多种平台上运行,包括Windows,Linux和Mac OS X中,和Solaris,这是非常易于安装和易于使用的。
XPlanner【Java开源的项目管理
XPlanner一个基于Web的XP团队计划和跟踪工具。 XP独特的开发概念,如迭代,用户故事,,XPlanner提供了相应的管理工具,XPlanner支持XP开发流程,并解决遇到的问题的使用XP想法的开发项目。 XPlanner特点包括:简单的模型规划,虚拟笔记卡(虚拟笔记卡)迭代的用户故事和工作记录的追踪,未完成的故事会自动迭代,工作时间追踪,生成团队效率,个人考勤表,SOAP界面支持。
HSQLDB【Java开源DBMS数据库
HSQLDB(高超声速SQL)是一个纯Java的关系数据库的开发,并提供了一个JDBC驱动程序来访问数据。支持ANSI-92标准SQL语法。而且他占的空间小。大约只有160K,快速的数据库引擎。
Liferay的【Java的开源门户和
代表一个完整的J2EE应用程序,使用Web,EJB以及JMS等技术,特别是在前面部分使用Struts框架技术的接口,XML-基于portlet配置文件可以自由动态扩展,使用Web服务来支持一些远程访问的信息,Apahce Lucene的全文搜索功能。
Jetspeed的?【Java开源的门户门户]
Jetspeed是一个开放源代码的企业信息门户(EIP)的实现,使用的技术是Java和XML。信息门户的用户可以使用浏览器,支持WAP协议的手机或其他设备访问Jetspeed的架设。 Jetspeed的所扮演的角色的信息集中器,它可以把信息一起,很容易地提供给用户。
的JOnAS【Java开源的J2EE服务器]
的JOnAS是一个开放源代码的J2EE实现的ObjectWeb协会开发。集成Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。 JOnAS服务器的依赖,实现以下的Java API:JCA,JDBC,JTA,JMS,JMX,JNDI,JAAS,JavaMail的。
JFox3.0【Java开源的J2EE服务器使用
JFox是一个开源的Java EE应用服务器,致力于提供一个轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化MVC框架,以简化EJB和Web应用程序的开发!如果您正在寻找一个简单,重量轻,高效,全面的Java EE开发平台,JFox正是你需要的。
[编辑本段] Java的IDE
当今最流行的Eclipse,Myeclipse中,Jbuilder2008,Jdeveloper的,Netbeans的。 [编辑本段] Java“一书
Java编程思想(第4版)
:(美)埃克尔,陈薅怦翻译
JAVA编程思想(第四版)出版社:机械工业出版社
出版日期:2007-6-1词:版次:1页数:880印刷时间:2007/06/01开本:印象:纸张:胶版纸ISBN:9,787,111,213,826包装:平装
关于作者
Bruce Eckel的是MindView公司的总裁,该公司提供的软件,其客户的咨询和培训。他的C + +标准委员会的投票成员之一,拥有应用物理学学士和计算机工程硕士学位。除了这本书外,他是一个“C + +编程思想”的人合作撰写的“C + +编程思想,第2卷”(两本书的英文影印版和中国版引入了由机械工业出版社出版)及其他着作。他已发表了150多篇论文,还经常参加世界各地的研讨会并发表演讲。
[编辑本段] Java版本历史
Java语言诞生于1995年,
日,1996年,第一个JDK-JDK1.0出生的
1996年4月,10个最重要的操作系统供应商确认其产品中嵌入JAVA技术
1996年9月,约83,000 Web应用程序的JAVA技术,使
1997年2月18日一天,JDK1.1版本
1997年的JavaOne大会,参与者超过百万人,创下了类似的全球规模的会议记录
1997年,JavaDeveloperConnection社区成员超过10万
1998年,JDK1.1被下载超过200万次
在1998年,JAVA2企业平台发布
1999年,Sun发布了Java J2EE三个版本:标准版(J2SE),企业版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3发布 /> 2000年5月29日,JDK1.4 2001年,诺基亚公司宣布,2003年将销售100万的Java功能的手机
2月2001年9月24日,2010年,J2EE1.3
2002年, 26日,J2SE1.4,因为Java的计算能力已显着增加
9月30日,2004 18:00 PM,J2SE1.5发布,成为Java语言的发展历史的又一个里程碑。要显示版本的重要性,J2SE1.5更名为Java SE 5.0的
2005年JavaOne大会上,Sun公司公开Java SE 6中。在这一点上,各种版本的Java已经被重新命名为取消一个数字“2”:J2EE更名为Java EE,J2SE更名为更名为Java SE,J2ME的Java ME
2006年12月,Sun发布了JRE6目前JDK7.0 0.0
在研究和开发,有测试版的的 https://jdk7。 dev.java.net / 可下载
[编辑本段] Java的互联网
我们知道,以前的WWW不仅可以发送文字和图片,Java的交互式页的的出现是一个伟大的革命。
的Java,设计不是互联网,万维网,它也可以被用来编写独立的应用程序。 Java是一种面向对象的语言,Java语言是C + +语言,所以我们必须掌握C + +编程语言,再学习Java语言是很容易的! Java程序需要编译,它被放置在互联网服务器上,当用户对服务器的访问,Java程序被下载到本地用户的机器,解释的浏览器中运行。实际上有两种Java程序的Java应用程序是一个完整的程序,如Web浏览器。另一个Java应用程序运行在一个Web浏览器程序。
Java程序其浏览器Hotjava中,提供了一种方法,可以让你的浏览器中运行的程序。您可以直接从您的浏览器来播放声音,你可以播放动画,Java的也可以告诉你如何处理与一个新的类型的文件浏览器的页面。当我们能够在2400波特线来传输视频图像,Hotjava中能够显示视频。
[编辑本段] Java和电子商务
,电子商务是当今的一个热门话题,传统的编程语言,但是,不能做电子商务系统,电子商务程序代码的基本要求:安全,可靠,做生意的世界各地,在不同的平台上运行的客户机的要求。 Java的强大的安全性,平台无关的,独立的硬件结构,用简单的语言,面向对象,并在网络编程语言中占据无可比拟的优势,成为电子商务系统的首选语言。
[编辑本段] Java的8个基本数据类型和它们的包装类
int基本数据类型的包装类的原始类型的份额
短短2个字节的整数中的字节数4个字节
长8个字节
浮子的4个字节
双人大床8个字节
字节字节1个字节
CHAR字符2个字节
布尔布尔测试编译环境
[编辑本段]第一个JAVA程序的HelloWorld
/ /文件名的HelloWorld.java
/ /声明公共类一类
的HelloWorld { / /声明一个方法
公共静态无效的主要(字串[] args){/ /程序入口
/ /输出
(“世界你好!); BR />}
}
/ /例子
包的文本;
类测试(
公共静态无效的主要(字串[] args){...... />短D = 12,/ /短整型的
System.out.println(D); / / D
长,C = 144L; / /长整数添加L
系统通过out.println(C)/ /输出
诠释Z = 15; / /整数
System.out.println(Z)/ /输出
字符E ='I “/ /字符”
System.out.println(五);/ /输出è
}
)
[编辑本段] Java新手入门是非常重要的一个一些基本的概念
[1] [2] [3]最后一类:为防止他人从你的类派生出新的类,它是不可扩展的。
动态调用比静态调用花费的时间要长。
抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。
案件:公共抽象的字符串getDescripition
Java的每一个类都是从Object类扩展。和
平等和对象类的toString方法。
等于用于测试一个对象是否与另一个对象是相等的。
的toString返回一个字符串,几乎每一个类的对象将覆盖此方法,以便返回当前状态的正确表示。
(toString方法是一个很重要的方法)
泛型编程:所有的值?任何类型可以是同一对象类的变量,而不是。
数组列表:ArrayList的动态数组列表,是一个类库,定义在java.uitl包可自动调节数组的大小。
类的类对象类的getClass方法返回一个类型的实例的类,它包含的主要方法的类会被加载在程序启动时,虚拟机是所有他需要的类,每一个加载的类加载必须加载它需要的类。
9. java的开发环境是什么
最开始就只用jdk1.6就行了,在网上去找一个jdk,安装的时候就会一起安装如:jre等。安装好后,要在环境变量中配置相关的路径。
开发工具:jcreator
pro(初学者必须掌握的工具,该工具简单易用,有汉化版,几乎是免费工具,推荐使用)
netbeans(sun公司旗下,免费的工具。从事界面开发必备,使用不错。也有汉化版)
eclipse(myeclipse)收费工具,功能比较强大,使用较繁琐,需要一定年限的经验,楼主可以考虑。
但现在也有破解版的。我就用的是myeclipse,个人觉得很好用,但不适合初学者。
Jbuilder
(完全收费工具貌似还很高的呵呵,其功能也是最为强大)
到后期就还有tomcat
这些了,不过就是后话了。
希望这些能够帮到你。
10. Java技术能脱离美国的控制吗
这里所说的JAVA技术应该指的不是JAVA语言
JAVA语言设计对生态圈的影响没有那么大
生态圈JAVA那个是开源的,所以美国是控制不了的,
唯一一个能控制的项目就是JAVA虚拟机
这个东西就是拼技术实力了,但是我们国家阿里巴巴也实现了自己的,JAVA虚拟机,所以不能说最好,但是也够用
额JAVA,语言对性能要求又没有那么高,所以JAVA技术,是否脱钩影响不是那么大