邂逅java

来源:互联网 发布:xbox one 怎么设置网络 编辑:程序博客网 时间:2024/04/28 08:47

        正式进入Java的学习以后,发现要学习的东西好多,要整理的东西也很多,和其他的语言,知识点有很多解不开的关系,不能独立的来看待和学习(当然,几乎所有的知识都不是独立的,以前欠的债啊。。。),好了,现在就开始我的java之旅。

概念:

        Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java分为三个体系JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版),JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

        由于java是在C++的基础上进行改写的,所以,它的风格非常接近c++,而C#又是模仿java的,所以这二者又有很多相似之处,关于这些,我会在以后的博客中加以总结。言归正传:太阳微系统(Sun Microsystems)对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全、系统无关、可移植、高性能、多线程和动态的语言”,这也是几乎所有的教科书上对java语言特点的描述。只有真正使用了这门语言,才能切身体会它的特点,所以,这一部分就不在此赘述了。

实现机制

java之所以具有以上特点,最根本的还是要看它的实现机制

 

JVM(Java Virtual Machine),java虚拟机。

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。所以说,java是一种解释执行的语言。Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行,这也就是众所周知的“一次编译,到处执行”。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。java虚拟机将字节码程序与操作系统及硬件分开,使得java程序能在异构平台上执行。虚拟机执行过程有3个特点:多线程、动态链接、异常处理。
 

垃圾回收机制。

 
java语言提供了一个系统级的线程,实现对内存使用的监控,对象的创建和放置都是在存储器堆栈上面进行的。当一个对象没有任何引用的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放存储器以避免存储器泄漏。从而减轻了程序员对内存管理的负担。
 

代码的安全检验。

 

除了对一般的编译和解释方面的语法、规则和格式进行检查之外,java语言还提供了访问权限和类型转换合法性的检验,操作数堆栈溢出检验及参数类型合法检验。另外,java语言还提供了资源域概念,通过分配方案,设定不同的资源域,无需区分本地与远程。

 

java语言的体系结构。

 

JDK目录结构,我安装的是版本是jdk1.8.0_05。目录结构如下:

JDK\bin\:包括编译器、解释器、基本工具。

JDK\demo\:一些简单的示例。

JDK\include\:是Win32子目录,包括本地方法文件。

JDK\jre\:Java运行环境的根目录。

        JDK\jre\bin:包括平台运行时的工具和类库的可执行文件和动态链接库文件。

        JDK\jre\lib:包括Java运行环境的代码库、默认安装文件等。

JDK\lib:类库文件。

JDK\src.zip:源代码压缩文件。

JDK\javafx-src.zip:JavaFX脚本是一种声明式、静态类型编程语言。

JDK\db:JDK自带的数据库 - Derby。

 

Java核心包。

java.lang包:Java语言包,主要包含与语言、数据类型相关的类。程序运行时,编译器自动引入该包。它封装了所有编写Java程序所需要的基本类,包括Object、Class、System等。其中,Object是所有类的根类,任何类都是继承该类而建立的;Class类是由编译器动态生成对象的一个伴随每一个类的特殊类,它的对象包含所对应的类的所有信息;System类是一个final类,主要提供标准I/O和对系统环境信息的访问等,该类不能被实例化。

java.awt包和javax.swing包:窗口工具包,提供操作图形用户界面的基本功能。包括创建图形界面元素的类,通过这些类,可以控制应用程序的外观界面。

java.io包:Java输入/输出包,包含与输入和输出操作相关的类,提供了不同的输入/输出设备读写的支持。

java.util包:提供应用程序类及集合类等常用工具类。包含实现不同功能的类。

java.net包:Java网络包,提供与网络操作相关的类

 

总结:

java并没有我想象当中的那么高深莫测,当然,也没有那么简单,它和其他语言有着千丝万缕的联系,在学习java的时候,总有一种纠缠不清,理不开的感觉,需要查的资料很多,需要总结对比的地方很多,越是学习,就越和以前的知识联系的多了起来,通过近一段时间的学习,让我开始以另一种视角看待学习,看待以前自己的学习方式和思维习惯,或许,这真的是一场美丽的邂逅。

 
0 0
原创粉丝点击