搜索
首页Javajava教程Java概述+环境搭建

Java概述+环境搭建

Jun 23, 2017 pm 04:27 PM
java概述环境

写在前面的话:

  Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅。此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我极力推荐大家看的两本,因为每次看都有不同的收获,两本横向看相辅相成定会让你受益匪浅,好了敬请期待吧!

第一节:Java简介

  Java是由Sun公司在1995年5月推出的一种面向对象的编程语言,极好的实现了面向对象理论,更加注重对象的本身不用太关注事件的过程。

  Java通过Java编程语言+Java类格式文件+Java虚拟机+Java应用程序接口四部分组成,我们通过IDE定义不同的类文件,通过调用类的方法(Java API)来访问资源系统,把源文件编译成.class的文件,通过Java虚拟机运行该文件。

  Java白皮书:

  • 简单性:语法简单易懂,剔除C++中难以理解的头文件指针等,类库小,但随着类库的增加和线程的支持大小有所增加 面向对象:更关注对象的本身,而不需要太关注实现的过程。

  • 网络技能:Java的网络能力简单且易于使用,用于处理像http或ftp之类的TCP/IP协议,允许通过URL打开或访问网络上的对象。

  • 健壮性:Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。Java采用指针模型可以消除重写内存和损坏数据的可能性,Java不需要使用指针构造字符串数组等机构,但如果必要Java也具有指针能力如:链表。

  • 安全性:Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。

  • 可移植性:Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。

  • 解释性:Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

  • 高性能:Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。

  • 多线程:多线程可以带来更好的交互响应和用户行为。

  • 动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。

第二节:Java发展史

  1. 1991年Sun公司准备开发一种类似于有线电视转换盒一样的设备,项目命名为:Green。代码短小紧凑且与平台无关,根据Pascal语言设计出一种虚拟的机器生成中间代码的可移植性语言,即Java虚拟机

  2. 1994年Green项目(First Pascal公司)解散

  3. 1995年5月23日Java在SunWorld上得到演示,伟大的Java语言诞生

  4. 1996年初Sun公司发布Java第一个版本,Java1.0版本却不能实际在开发中应用

  5. 1998年12月发布Java1.2版本(标准版-J2SE-JavaSE),此版本更接近Java的一次编写随处运行理念,三天后发布(微型版-J2ME-JavaME)和(企业版-J2EE-JavaEE)

  6. 2000年发布Java1.3

  7. 2002年发布Java1.4

  8. 2004年Java对语言做出了重大的改进,可以描述是又一重大里程碑,并正式命名为Java5.0版本,并增加泛型、foreach循环、枚举等概念

  9. 2006年发布Java 6 版本

  10. 2009年Sun公司曾经一度辉煌的日不落帝国终于沦陷,被Oracle收购之后Java进入一段停滞期

  11. 2011年发布Java 7 版本

  12. 2014年发布Java 8 版本

第三节:Java开发环境搭建

  • JDK(Java Development Kit):编写Java程序的程序员使用的软件

  • JRE:运行Java程序使用的软件

  • IDE:集成开发环境如:eclipse、idea等

  JDK下载地址:。注:安装默认路径是Program Files下面,最好把路径换掉或者把空格换掉,以避免不必要的麻烦。

  目录结构:


    • bin:编译器和工具

    • db:Java开发的关系型数据库文件

    • include:用于编译本地方法的文件

    • javafx-src:JavaFX脚本是一种声明式、静态类型编程语言

    • jre:Java运行环境文件

    • lib:类库文件

    • src:类库源文件 

  环境变量配置:

  JAVA_HOME:D:\Java\jdk1.8.0_31 它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

  PATH:%JAVA_HOME%\bin;  作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

  CLASSPATH:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar 作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

  环境变量验证:

  CMD验证:输入Java -version 然后回车控制台输出jdk版本号说明安装成功。

  新建HelloWorld.java文件,进入相应目录输入javac HelloWorld.java 然后回车,然后输入java HelloWorld 然后回车控制台输出Hello World 说明环境变量配置成功。

  注:javac程序是Java的编译器,它将HelloWorld.Java编译成HelloWorld.class文件并发送到Java虚拟机,虚拟机执行编译器放在class文件中的字节码。

  注:编译时需要提供待编译的文件需要后缀名即:HelloWorld.java,而运行时只需要制定类名就可以了,不需要带后缀即:HelloWorld。

以上是Java概述+环境搭建的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?Mar 17, 2025 pm 05:43 PM

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境