Java语言概述

目录

Java语言概述

java简介、java历史、java特点:

是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。
是一种面向Internet的编程语言。
随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。


Java语言的三种技术架构

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)(主要学习—基础)

    是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。比如Java版的扫雷。

  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)手机用安卓Android开发

    是为开发企业环境下的应用程序提供的一套解决方案。(浏览器访问)

    该技术体系中包含的技术如 Servlet Jsp等,主要针对于Web应用程序开发。

  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

    是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。

Java语言的特点:

Java语言的特点:简单性、解释性、面向对象、高性能、分布式处理、多线程、健壮性、动态、结构中立、安全性、开源、跨平台

跨平台:跨的是操作系统平台,比如win的不能再Linux上,但是通过Java语言编写的应用程序在不同的系统平台上都可以运行(win的可以在Linux上运行)
原理:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。(虚拟机JVM不跨平台)

Java跨平台和C跨平台的区别

java C语言
一次编译,到处运行 多次编译,到处运行
在互联网情况下,平台各异,Java的跨平台更具有优势 速度更快
需要将class文件解释成机器码再执行 执行执行机器码

简单

  • 不再有#include 和#define 等预处理功能
  • 不再有struct,union及typedef
  • 不再有函数、
  • 不再有指针、不再有多重继承
  • 不再有goto
  • 不再有操作符重载(Operatior Overloading)
  • 不再有全局变量 取消自动类型转换,要求强制转换
  • 不再有手动内存管理

安全

  • Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
  • java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
  • Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
  • 而在运行环境提供了四级安全性保障机制:
  • 字节码校验器 -类装载器 -运行时内存布局 -文件访问限制

完全面向对象

  • Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。
  • 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。

健壮

  • Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
  • 对指针的丢弃是Java的明智选择。
  • Java的安全检查机制使得Java更具健壮性。

JVM,JRE,JDK

JVM

  • 保证Java语言跨平台

JRE(Java Runtime Environment Java运行环境)

  • Java程序的运行环境.

  • 结构:JVM+类库

  • 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK(Java Development Kit Java开发工具包)

  • Java程序的开发环境.
  • 结构:JRE(JVM+类库)+工具
  • JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。

安装了JDK,就不用在单独安装JRE了
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
有了JDK就不用安装JRE了,JDK(JRE(JVM))

环境变量

path:是windows程序文件的目录,

classpath:是java类文件的目录,保证class文件可以在任意目录下运行

JVM查找类文件的顺序

  1. 如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。
  2. 如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。
  3. 值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次。
  4. 值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。

建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”表示

path和classpath的区别

  1. path环境变量里面记录的是可执行性文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path环境变量中配置的路径去找
  2. classpath环境变量里记录的是java类的运行文件所在的目录

编程步骤

Java程序的开发执行流程

  • 编写java源程序(.java)
  • 通过javac命令编译生成.class文件
  • 通过java命令运行.class文件

具体操作:

  1. 输入javac Demo.java (编译 Demo.java文件,生成Demo.class。)没有提示,说明已经成功编译!
  2. 输入 java Demo,运行编译好的java程序
上一篇:【go】Unmarshal时候报错提示proto.Unmarshal: missing method ProtoReflect


下一篇:Java三个环境变量的作用