鱼C论坛

 找回密码
 立即注册
查看: 2018|回复: 0

[技术交流] Java-001初识Java

[复制链接]
发表于 2018-12-2 11:56:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 moc 于 2018-12-6 14:47 编辑

1、Java语言简介
        Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。2009年04月20日,美国Oracle(甲骨文公司)74亿美元收购Sun,取得java的版权。
Java是典型的面向对象的语言,晚于C++发布,部分语法和思想也参考了C++:
语言
简介
C语言
19世纪70年代初问世,1978年美国电话电报公司(AT&T)贝尔实验室正式发布C语言。
C++
在C基础上,1983年贝尔实验室推出了C++。
Python
由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。
Java
由Sun公司于1995年5月推出。
        尽管人们发现C++的语法太复杂,有很多冗余,但是 Java 在设计的时候还是尽可能的接近C++,降低人们的学习成本。Java 语法是 C++ 语法的一个“纯净”版,没有头文件、指针运算(也没有指针语法)、结构、联合、运算符重载、虚基类等。有C++基础的读者,可以轻易地切换到Java。
Java 的应用:
        Web开发:        Java非常适合开发大型的企业网站,例如人人网、去哪儿网的后台都是Java。
        Android开发:        Android手机上APP几乎都是用Java开发的,例如QQ、微信、UC浏览器。
        客户端开发:        Java也可以用来开发电脑上的软件,例如Elicpse、Netbeans。
        嵌入式应用:        嵌入式应用就是在小型电子产品中运行的软件,例如老式手机上的软件、MP3上的软件。
Java 目前的主要应用方向是Web开发和Android开发,大部分IT公司招聘的Java程序员也是从事这两方面的工作。
        Java 的GUI库称不上出色,很多用户不习惯它的界面;Java编写的客户端资源消耗也比较多;更重要的是,Java程序必须借助虚拟机才能运行,操作系统默认没有安装虚拟机。直接投放市场的面向普通用户的客户端程序,用Java开发的很少。
        在嵌入式方面,Java 很难操作底层硬件,灵活性较小,而且需要虚拟机支持,占用资源较多,对于配置很低的单片机系统来说有些吃力。所以,在力求高效、小型化、执行关键任务的应用中,最好采用汇编和C语言,例如火箭控制、传感器通信或报告宇宙飞行器的方位等。

2、Java主要特性
1. 语法简单
      Java语言的语法与C语言和C++语言很接近。Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用;并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2. 面向对象
      Java语言提供类、接口和继承等面向对象的特性,为了简单,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
3. 分布式
      Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4. 健壮性
      Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5. 安全性
      Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6. 可移植性
      Java严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
7. 解释型
      Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
8. 多线程
      在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
9. 动态性
      Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java 源程序与编译型运行区别:
ZSSDMld.png

3、Java跨平台性
Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。
Java虚拟机
        Java虚拟机(Java Virtual Machine,简称 JVM)是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。
        JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。
注意:
        ① 编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。
        ② 跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。
1.png

4、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平台微型版)
        是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发。
JRE与JDK
JRE(Java Runtime Environment    Java运行环境)
        包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK(Java Development Kit    Java开发工具包)
        JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
        其中的开发工具:编译工具(javac.exe)  打包工具(jar.exe)等
简单而言:使用JDK开发完成的java程序,交给JRE去运行。

各系统下Java 开发环境配置
        传送门

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 16:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表