Java概述与开发环境搭建

Java编程入门:从HelloWorld到Java开发环境搭建
本文介绍了Java语言的基本概念,包括Java的版本、特点、应用领域和开发环境搭建流程。从HelloWorld程序入手,详细阐述了Java编程环境的搭建过程,包括JDK的下载、安装、配置环境变量以及使用Java命令工具。本文旨在帮助初学者快速掌握Java编程的基础知识。

本章没有涉及Java语法知识,主要介绍Java语言的特点、版本、环境搭建等,并给出了第一个简单的Java程序——Hello World,让大家对Java有一个最基本的认识。


****************************************************************

Java语言概述

Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初主要应用在小型消费电子产品上, 后来随着互联网的兴起,Java语言迅速崛起, 成为大型互联网项目的首选语言。2009年04月20日,美国甲骨文公司74亿美元收购Sun,取得java的版权。
更多关于Java的历史发展信息请参考: http://baike.baidu.com/view/29.htm#2

Java语言的崛起,与它的跨平台特性有着密切的关系。 这里所说的”平台“主要是指不同的操作系统, 所谓跨平台,是指通过Java语言编写的应用程序可以在不同的系统平台上平稳运行。
更多特性请参考: Java的特点

那么,跨平台是怎样实现的呢?这就要谈及 Java虚拟机(Java Virtual Machine,简称 JVM)

Java虚拟机可以理解为软件模拟的计算机,可以在任何处理器上(无论是在计算机中还是在其它电子设备中)安全并且兼容的执行程序。我们编写的Java源代码,编译以后会生成一种 .class 的文件,称为 字节码文件。java虚拟机就是负责将字节码文件翻译成特定的机器码然后运行,也就是说,只要在不同平台上安装相应的JVM,就可以运行字节码文件,运行我们编写的Java程序。

而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。
关于JVM的更多解释,请查看: http://baike.baidu.com/view/160708.htm

总结:JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。

如下图所示,正是因为有了JVM,同一个Java程序才可以在三个不同的操作系统中执行。这样就就实现了Java程序的跨平台性,也称Java具有良好的可移植性。

图解JVM实现跨平台的过程
图解JVM实现跨平台的过程


********************************************************************

Java在哪些方面有应用

Java 的应用可以简单分为以下几个方面:
  1. Java 的桌面应用
    桌面应用一般仅仅需要 JRE 的支持就足够了。
  2. Java Web 应用
    Java 的 Web 应用至少需要安装 JDK 和一个 Web 容器(例如 Tomcat),以及一个多用户数据库,Web 应用至少分为 3 层:
    • Browser 层:浏览器显示用户页面。
    • Web 层:运行 Servlet/JSP。
    • DB 层:后端数据库,向 Java 程序提供数据访问服务。
  3. Java 企业级应用
    企业级应用比较复杂,可以扩展到 n 层,最简单情况会分为 4 层:
    • Browser 层:浏览器显示用户页面。
    • Client 层:Java 客户端图形程序(或者嵌入式设备的程序)直接和 Web 层或者 EJB层交互。
    • Web 层:运行 Servlet/JSP。
    • EJB 层:运行 EJB,完成业务逻辑运算。
    • DB 层:后端数据库,向 Java 程序提供数据访问服务。
  4. Java 嵌入式应用
    Java 嵌入式应用是一个方兴未艾的领域。嵌入式开发,需要从下载 J2ME 开发包。J2ME包含了嵌入式设备专用虚拟机 KVM,和普通的 JDK 中包含的 JVM 有所不同,另外还需要到特定的嵌入式厂商那里下载模拟器。


**********************************************************

Java的不同版本:J2EE、J2SE、J2ME的区别

Java 拥有3个版本,分别为:J2EE、J2SE和J2ME(也就是说,J2EE、J2SE和J2ME是Java的不同版本)。以下是详细介绍:
  • J2EE(Java 2 Platform Enterprise Edition)企业版
    是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发。
  • J2SE(Java 2 Platform Standard Edition)标准版
    是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。比如Java版的扫雷。
    平时所说的JDK其实就是指J2SE,这也是本教程所要讲解的。
  • J2ME(Java 2 Platform Micro Edition)小型版
    是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。
    注意:这里的小型电子消费品不是指搭载了IOS或Android操作系统的手机,IOS和Android系统都有自己的开发组件。

两点注意:
  • Java5.0版本后,J2EE、J2SE、J2ME分别更名为JAVAEE JAVASE JAVAME。
  • 每个版本名称中都带有一个数字“2”,这个“2”是指Java2:自从 Java1.2 发布后,Java 改名为 Java2(不过我们平时仍然称为 Java)。


********************************************************

Java与C、C++的区别

如果您对C语言和C++有所了解,我想下边的对比对你有很大帮助;如果不了解,请跳过,直接进入下一节。

首先应该清楚,Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java。正是这样,Java 从根本上解决了 C++的固有缺陷,形成了一种新的完全面向对象的语言。

Java 和 C/C++的相似之处多于不同之处,有 C 基础的读者,学习 Java 会更容易。相比较而言,Java 的编程环境更为简单。因篇幅所限,这里不能完全列出不同之处,仅列出一些比较显著的区别。

指针
Java 没有指针的概念,从而有效地防止了在 C/C++语言中,容易出现的指针操作失误(如指针悬空所造成的系统崩溃)。在 C/C++中,指针操作内存时,经常会出现错误。在Java 中没有指针,更有利于 Java 程序的安全。

多重继承
C++支持多重继承,它允许多父类派生一个子类。也就是说,一个类允许继承多个父类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。所以 Java 不支持多重继承,但允许一个类实现多个接口。可见,Java 既实现了 C++多重继承的功能,又避免了 C++的许多缺陷。

数据类型
Java 是完全面向对象的语言,所有方法和数据都必须是类的一部分。除了基本数据类型之外,其余类型的数据都作为对象型数据。例如对象型数据包括字符串和数组。类将数据和方法结合起来,把它们封装在其中,这样每个对象都可实现具有自己特点的行为。而 C++将函数和变量定义为全局的,然后再来调用这些函数和变量,从而增加了程序的负担。此外,Java 还取消了 C/C++中的结构和联合,使编译程序更简洁。

自动内存管理
Java 程序中所有的对象都是用 new 操作符建立在堆栈上的,这个操作符类似于 C++的“new”操作符。Java 自动进行无用内存回收操作,不需要程序员进行删除。当 Java 中一个对象不再被用到时,无须使用内存回收器,只需要给它加上标签以示删除。无用内存的回收器在后台运行,利用空闲时间工作。而 C++中必须由程序释放内存资源,增加了程序设计者的负担。

操作符重载
Java 不支持操作符重载,操作符重载被认为是 C++的突出特征。在 Java 中虽然类可以实现这样的功能,但不支持操作符重载,这样是为了保持 Java 语言尽可能简单。

预处理功能
C/C++在编译过程中都有一个预编译阶段,即预处理器。预处理器为开发人员提供了方便,但增加了编译的复杂性。Java 允许预处理,但不支持预处理器功能,因为 Java 没有预处理器,所以为了实现预处理,它提供了引入语句(import),它与 C++预处理器的功能类似。

Java 不支持缺省函数参数,而 C++支持。
在 C 中,代码组织在函数中,函数可以访问程序的全局变量。C++增加了类,提供了类算法,该算法是与类相连的函数,C++类方法与 Java 类方法十分相似。由于 C++仍然支持 C,所以 C++程序中仍然可以使用 C 的函数,结果导致函数和方法混合使用,使得 C++程序比较混乱。

Java 没有函数,作为一个比 C++更纯的面向对象的语言。Java 强迫开发人员把所有例行程序包括在类中。事实上,用方法实现例行程序可激励开发人员更好地组织编码。

字符串
C 和 C++不支持字符串变量,在 C 和 C++程序中使用“Null”终止符代表字符串的结束,在 Java 中字符串是用类对象(String 和 StringBuffer)来实现的,在整个系统中建立字符串和访问字符串元素的方法是一致的。Java 字符串类是作为 Java 语言的一部分定义的,而不是作为外加的延伸部分。此外,Java 还可以对字符串用“+”进行连接操作。

goto 语句
“可怕”的 goto 语句是 C 和 C++的“遗物”。它是该语言技术上的合法部分,引用 goto语句造成了程序结构的混乱,不易理解。goto 语句一般用于无条件转移子程序和多结构分支技术。Java 不提供 goto 语句,其虽然指定 goto 作为关键字,但不支持它的使用,这使程序更简洁易读。

类型转换
在 C 和 C++中,有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在 C++中可将一个浮点值赋予整型变量,并去掉其尾数。Java 不支持 C++中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。


*********************************************************************

Java编程环境的搭建

开发环境,就是一套能够让程序编译和执行的组件,可以包含运行环境、编译器和基础类库等。在Java中,安装了JDK就能够让Java程序顺利编译和执行。

JDK(Java Development Kit,简称Java开发工具箱) 是整个 Java 的核心,包括了 Java 运行环境(Java Runtime Envirnment)、基础类库、编译器、打包工具等。不论是什么样的 Java 应用服务器,实质都是内置了某个版本的 JDK,因此掌握 JDK 是学好 Java 的第一步。

最主流的 JDK 是 Sun 公司发布的 JDK,除了 Sun 之外,还有很多公司和组织都开发了自己的 JDK,例如 IBM 公司开发的 JDK、BEA 公司的 Jrocket,还有 GNU 组织开发的 JDK等等。IBM 的 JDK 包含的 JVM(Java Virtual Machine)运行效率要比 Sun JDK 包含的 JVM高出许多,而专门运行在 x86 平台的 Jrocket,在服务端运行效率也要比 Sun JDK 好很多,但不管怎么说,还是需要先把 Sun JDK 掌握好。

JDK 的下载和安装

Java 1.2 以后,相应的JDK 又叫做 J2SE(Java2 SDK Standard Edition),可以从 Oracle 的 官方网站上下载到。最新下载地址和下载方法请参考: JDK最新下载地址【含下载方法】

下载好的 JDK 是一个可执行安装程序,默认安装完毕后会在 C:\Program Files\Java\目录下安装 JDK和JRE两个目录(当然是可以更改的)。详细安装方法请参考: JDK安装方法【最新】

环境变量的配置

配置好环境变量,我们可以不用进入JDK的安装目录,就可以执行javac.exe和java.exe,同时方便类库的加载。详细步骤请参考: Java/JDK环境变量的配置

JDK 的命令工具

JDK 的最重要命令行工具:
  • java:启动 JVM 执行 class。
  • javac:Java 编译器。
  • jar:Java 打包工具。
  • javadoc:Java 文档生成器。
这些命令行必须要非常熟悉,后续章节会结合Java程序向大家展示具体使用方法。


******************************************************************

第一个Java程序示例——Hello World!

这节我们来体验一下用java编写的程序。也让大家过把代码瘾。目前世界上大部分的软件教程有一个习惯,最开始时总要输出一个字符串“Hello World”。我们也是不能免俗啊,也要输出这么一段话。

一.Java编写代码

在E盘下新建一个文件夹,命名为javacode。在javacode文件夹下新建一个文件,命名为hello.java,内容如下。
public class hello{
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

二.对代码进行编译

保存代码后,进入DOS环境,再进入E:\javacode文件夹,输入javac hello.java对代码进行编译,如图所示:


再打开E盘下的javacode文件夹,发现多了一个hello.class文件,说明编译成功了。

三.运行程序

接下来,运行程序。在DOS下输入java hello,运行成功,输出“Hello World!”,如下图所示:

四.程序分析

分析上述的程序段,从结构开始介绍。
    public class hello
定义了一个类,类是 “public” 公共类型的,类名为“hello”,另外,Java 中主类名应该和要保存的 Java 文件名相同,也就是说,这里定义的类名是“hello”,则文件应该保存为“hello.java”。
    public static void main(String[] args)
Java 中的主运行方法(public static void main(String〔〕 args)),它和 C/C++中的main()作用是一样的,就是所有的程序都从“main()”中开始执行。要执行 Java 程序,必须有一个包括主运行方法的类。至于“public static void”的含义,读者可以尝试着去掉,看看编译器会提示什么错误。
    System.out.println("Hello world");
“System.out.println()”是 Java.lang.*的一个方法,将字串“Hello world”送到命令行窗口。


************************************************************************

【附】Java基础知识总结


  • 开发Java语言的公司?
    美国Sun (Sun Microsystems)公司开发。
     
  • Java的3个版本?
    J2SE(Java2 Standard Edition) 标准版
    J2EE(Java 2 Platform,Enterprise Edition) 企业版
    J2ME(Java 2 Micro Edition) 微小版
    在5.0以后新版本中称作:JavaSE JavaEE JavaME
     
  • Java语言的几个主要特点?
    平台无关性:能运行于不同的平台上
    安全性:去掉了指针操作,内存由操作系统分配
    面向对象:利用类使程序更加利于维护
    分布式:可以使用网络文件和使用本机文件一样容易
    健壮性:检查程序编译和运行的错误
     
  • Java的三大核心机制
    虚拟机机制:利用虚拟机解释字节码执行java程序实现跨平台
    垃圾收集机制:自动内存回收
    代码安全性机制:加载代码后校验代码后再执行代码。
     
  • JDK是什么?
    JDK(Java Development Kit)Java开发工具包。包括了JRE,是开发Java的人员必备的开发运行Java程序的工具。
     
  • JRE是什么?
    JRE(Java Runtime Environment)Java运行环境,运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
     
  • JVM是什么?
    JVM (Java Virtual Machine) Java虚拟机,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
     
  • 安装JDK的操作系统问题?
    必须针对于不同的操作系统下载安装不同的JDK,例如windows下安装针对于windows的JDK,linux下安装针对于linux的JDK。
     
  • 需要配置的相关环境变量?
    path:用于搜索外部命令,例如编译程序的javac命令,执行程序的java命令
    classpath:用于搜索类,即class文件,例如可以在不同的位置执行类文件
  • 可以编写Java程序的常见开发工具?
    记事本,Eclipse,MyEclipse,Jcreate
     
  • Java文件的类型?
    有两种:
    扩展名为java的文件:是Java源文件,属于编译之前的纯文本文件,存储java源代码。
    扩展名为class的文件:是Java类文件,属于编译之后的二进制文件,存储字节码。
     
  • Java的编译运行原理?
    首先编写java源文件,然后编译成class类文件,然后通过虚拟机解释成机器码到硬件执行。
     
  • Java是编译型语言还是解释型的语言?
    既不是完全编译型,也不是完全解释型,是半编译半解释的。

标题SpringBoot智能在线预约挂号系统研究AI更换标题第1章引言介绍智能在线预约挂号系统的研究背景、意义、国内外研究现状及论文创新点。1.1研究背景意义阐述智能在线预约挂号系统对提升医疗服务效率的重要性。1.2国内外研究现状分析国内外智能在线预约挂号系统的研究应用情况。1.3研究方法及创新点概述本文采用的技术路线、研究方法及主要创新点。第2章相关理论总结智能在线预约挂号系统相关理论,包括系统架构、开发技术等。2.1系统架构设计理论介绍系统架构设计的基本原则和常用方法。2.2SpringBoot开发框架理论阐述SpringBoot框架的特点、优势及其在系统开发中的应用。2.3数据库设计管理理论介绍数据库设计原则、数据模型及数据库管理系统。2.4网络安全数据保护理论讨论网络安全威胁、数据保护技术及其在系统中的应用。第3章SpringBoot智能在线预约挂号系统设计详细介绍系统的设计方案,包括功能模块划分、数据库设计等。3.1系统功能模块设计划分系统功能模块,如用户管理、挂号管理、医生排班等。3.2数据库设计实现设计数据库表结构,确定字段类型、主键及外键关系。3.3用户界面设计设计用户友好的界面,提升用户体验。3.4系统安全设计阐述系统安全策略,包括用户认证、数据加密等。第4章系统实现测试介绍系统的实现过程,包括编码、测试及优化等。4.1系统编码实现采用SpringBoot框架进行系统编码实现。4.2系统测试方法介绍系统测试的方法、步骤及测试用例设计。4.3系统性能测试分析对系统进行性能测试,分析测试结果并提出优化建议。4.4系统优化改进根据测试结果对系统进行优化和改进,提升系统性能。第5章研究结果呈现系统实现后的效果,包括功能实现、性能提升等。5.1系统功能实现效果展示系统各功能模块的实现效果,如挂号成功界面等。5.2系统性能提升效果对比优化前后的系统性能
在金融行业中,对信用风险的判断是核心环节之一,其结果对机构的信贷政策和风险控制策略有直接影响。本文将围绕如何借助机器学习方法,尤其是Sklearn工具包,建立用于判断信用状况的预测系统。文中将涵盖逻辑回归、支持向量机等常见方法,并通过实际操作流程进行说明。 一、机器学习基本概念 机器学习属于人工智能的子领域,其基本理念是通过数据自动学习规律,而非依赖人工设定规则。在信贷分析中,该技术可用于挖掘历史数据中的潜在规律,进而对未来的信用表现进行预测。 二、Sklearn工具包概述 Sklearn(Scikit-learn)是Python语言中广泛使用的机器学习模块,提供多种数据处理和建模功能。它简化了数据清洗、特征提取、模型构建、验证优化等流程,是数据科学项目中的常用工具。 三、逻辑回归模型 逻辑回归是一种常用于分类任务的线性模型,特别适用于二类问题。在信用评估中,该模型可用于判断借款人是否可能违约。其通过逻辑函数将输出映射为0到1之间的概率值,从而表示违约的可能性。 四、支持向量机模型 支持向量机是一种用于监督学习的算法,适用于数据维度高、样本量小的情况。在信用分析中,该方法能够通过寻找最佳分割面,区分违约非违约客户。通过选用不同核函数,可应对复杂的非线性关系,提升预测精度。 五、数据预处理步骤 在建模前,需对原始数据进行清理转换,包括处理缺失值、识别异常点、标准化数值、筛选有效特征等。对于信用评分,常见的输入变量包括收入水平、负债比例、信用历史记录、职业稳定性等。预处理有助于减少噪声干扰,增强模型的适应性。 六、模型构建验证 借助Sklearn,可以将数据集划分为训练集和测试集,并通过交叉验证调整参数以提升模型性能。常用评估指标包括准确率、召回率、F1值以及AUC-ROC曲线。在处理不平衡数据时,更应关注模型的召回率特异性。 七、集成学习方法 为提升模型预测能力,可采用集成策略,如结合多个模型的预测结果。这有助于降低单一模型的偏差方差,增强整体预测的稳定性准确性。 综上,基于机器学习的信用评估系统可通过Sklearn中的多种算法,结合合理的数据处理模型优化,实现对借款人信用状况的精准判断。在实际应用中,需持续调整模型以适应市场变化,保障预测结果的长期有效性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值