(兔C残篇)第一章:Java 简介

我们先来学习 java的基础知识,第一章内容分为以下小节:

导言:

咨上所述是对应的书中目录内容。以下内容 则是我在学习过程后的 书中摘要和个人理解分享

Java是一门编程语言,而语言的发展也有其本身的规律可寻,让我们掌握以下知识内容找寻悟其规律本身。


1.Java 简介

Java是一门编程语言,发展至今已成为真正意义上的语言标准,现一些技术开发公司为方便用户进行程序编写,往往选用Java作为应用层封装的标准,通过Java调用一些底层的操作。例如:Android开发就是用Java调用Linux内核操作形成。

优点:
与大多编程语言的语法结构类似,如:C,C++,因此优势,Java得以迅速发展,并成为主流。

1.1发展历史

1991年,GREEN 项目在Email 盛行时被提出,其目的使用Email控制各家电产品的运行,类似物联网。最早SUN公司的工程师打算使用C++进行项目开发,因考虑C++复杂性,固用C++开发了一个新的平台,即 OAK平台。

OAK —> 一种用于网络的精巧 安全 的语言,主要设计师:詹姆斯·高斯林。

而后,投标交互式电视项目,被SGI公司打败,导致身无归处。
项目组成员 又受启发于马克·安德里斯开发的 Mosaic 马赛克 和 Netscape 网景项目,用Java编写了 HotJava浏览器,得到了其自己公司首席执行官的支持,触发了 Java进军 Internet。

1.2 SUN 公司简介

斯坦福大学校园网,于1982年成立,主要从事硬件生产,因2000年的世界互联网低潮之后一直处于亏损状态,于2009年被Oracle以每股9.5美元收购。共计 74亿美元。

1.3 Java语言发展史

1995年 SUN公司推广 Java编程语言,正式将OAK 更名为 Java,并随互联网络发展而更多地出现在互联网的开发中,Java发展史归纳为以下三个阶段:

  1. 第一阶段(完善期):95年推出Java1.0,98年推出1.2,Java更名为 Java2
  2. 第二阶段(平稳期):1.3版本,1.4版本
  3. 第三阶段(发展期):2005年推出1.5, 1.7版本被Oracle收购时推出
1.4 Oracle 为什么要收购 SUN公司?

书中注:这是一个面试题。
答:从市场上商用体系程序开发来讲,开发结构分为四层:操作系统,数据库,中间件,编程语言。而Oracle为对抗微软 Microsoft 所以才收购SUN公司。

以下是两家公司的服务支持对比图:

No.对比OracleMicorsoft
1.操作系统UNIXWindows
2.数据库Oracle 大型数据库SQL Server 中小型数据库
3.中间件OAS,收购 BEA 得到 WebLogicIIS
4.编程语言PLSQL,收购SUN得到Java.NET
1.5 Java的分支结构

Java语言从生产至今,除了可以应用在互联网上,在硬件上也有很好的支持,其分支分为:

Java EE 企业级开发
	涵盖:该分支包含 JavaSE中所有类,还包含用于开发企业级应用的类,
	如:EJB,Servlet,JSP,XML,事务控制,也是现在Java应用的主要方向。

Java SE 标准版
	该分支主要涵盖Java语言核心的类,如:数据库连接,接口定义,
	数据结构,输入/输出,网络编程

Java ME 嵌入式开发
	该分支用于消费类电子产品的软件开发,如:呼机,智能卡,手机
	PDA,机顶盒

注意: Java SE 为整个技术架构的核心
	不管是 EE 还是ME 技术,都以 SE 为基础支撑,所以整个学习过程中,
	SE掌握的程度直接影响到日后的相关技术学习。

以上内容多半摘录于书中,个人认为学习的开始知道背景故事是有帮助的,以下特性的几点说明,也源于书中,下述内容为个人理解和书中摘录

1.6 Java语言的特性
  1. 简洁有效
    前面的知识点,我们提到过Java是用C++写的,简洁有效也是相对于C++而言,
    Java省略了难以理解容易混淆的特性:头文件,指针,结构,单元,运算符重载,虚拟基础类。
  1. 可移植性
    一次编译多处运行。
  1. 面向对象
    面向对象不在将目光聚焦在面向过程上。
  1. 解释型
    Java写出来的程序效率低,执行速度慢,但可以在不同平台上进行解释,达到一次编译多处运行的优点,那相对的,为达此目标,固牺牲效率。
  1. 适合分布式计算
    Java应用程序可以像访问本地文件一样,通过URL 访问远程对象,而且它还十分适用于公共网关接口CGI脚本的开发,另外还可以使用Java小应用程序,Java服务器页面,Servlet等手段来构建更丰富的网页。
    其实理解的不是很明白,读完这个特性,就自认为:很灵活,范围很广,特别是可以通过URL 访问远程对象,此效果优美到就像访问本地文件一样。
  1. 拥有较好的性能
    Java虽然是解释型语言,效率较慢,但它具备两种能力,让自己才华出众,1 是编写完成后,进行伪编译,将其转换为中间码,也称为字节码,然后在进行解释。2是 Java提供了准实时的JIT编译器,当需要更快的速度时,Java需要就可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样效率更快。
  1. 健壮性,防患于未然
    此特性是因为编译器,在编程阶段可通过编译器检测问题,将问题扼杀在摇篮之中,相对于其他编程语言而言,需要进行运行才能体现出问题所在,顾而具有健壮性。
  1. 具有较好的多线程能力
    线程,是一种轻量级进程。是现代程序设计中必不可缺的一种特性,多喜爱昵称处理能力使得程序能够具有更好的交互性,实时性。
  1. 较高的安全性
    java语言在设计时,在安全性方面考虑的非常仔细,而且做了很多探究。所以是目前最安全的语言之一。<— 书中放了这么个屁。。
  1. 动态语言
    体现在两个方面:1 可简单 直观的观察到运行中的信息 2 正在运行时的程序可加入新的代码
  1. 中性结构
    java语言进行编译之后,会先生成一种中性的对象文件格式,也就说为编译之后,会生成一个与任何计算机体系无关的"中性" 字节码。这种字节码文件,在任何计算机上都易与翻译成机器代码。
1.7 运行机制

//计算机高级语言分为:解释型,编译型。Java是两种类型的集合。

运行机制 如图:
在这里插入图片描述

所有的java程序文件的后缀都为 .java,而任何一个.java 进行编译之后,都会生成一个与其相对应的.class 文件(字节码文件),然后在到计算机上执行。但是解释程序的计算机并不是真正意义上的一台计算机,而是一台由软件和硬件进行模拟出来的虚拟机。—> Java Virtual Machine JVM.


//java中 所有程序都在 JVM 上运行,然后读取并处理经过编译的与平台无关的字节码文件。

JVM 的基本原理就是将编译后的可执行文件,进行执行,然后可执行到与其对应的系统上的JVM上。
例如:
我编写了一个 .java的程序,然后编译后生成 对应的 .class 的中性 字节码文件。
如果我需要在 windows 上执行, 就放在 windows 上的JVM上进行执行。
如果是Linux,同理。都有其系统相对应版本的JVM。

这样的好处体现在,只要 系统对JVM的支持没有变化,程序就可以在不同的系统上运行。即 一处编译 多处运行。

2.JDK 的安装与配置

有了对理论知识的铺垫和理解,就可以进行起步操作了。
所谓起步操作就是安装JDK,不理解是什么没关系,我没接下来慢慢进行介绍和讲解。暂且理解为: 例如想打LOL,就需要先安装LOL客户端应用,否则无法登录游戏,进行游戏。
上述内容为铺垫理解。


以上述理解为例,如果想进行Java的程序开发,就必须安装开发工具包,Java Development Kit, 简称 JDK。本次学习旅途,选用JDK 1.8进行学习。

至于JDK的下载,可直接登录至官网:www.oracle.com进行下载。
此过程可到我的个人主页,翻阅往期博客,或在我的个人主页进行关键字搜索。


JDK的下载完成之后,就可以进行JDK的安装了,

提示:

  1. 安装JDK时,最好关闭防火墙,不然有可能会导致安装失败。
  2. 安装JDK时,设置好自己的安装路径。
  3. 安装JDK时,会有两个安装选择,一个为 JDK的安装,一个为JDR的安装。

大家可以参考一下我的安装路径设置:
至于二者的关系,我们下述继续进行说明和讲解

在这里插入图片描述


JRE:
运行时环境,Java Runtime EEnvironment,它包括Java虚拟机,核心类库,支持文件。它不包含开发工具(编译器,调试器,其他工具),包含开发工具和编译器的为JDK。


2.1 关于JDK 的配置

上述说完了安装的相关内容,下述我们进行环境变量的配置讨论。

关于环境变量的配置主要需要配置两个,一个是PATH环境属性,配置成功之后,可以用命令行进行测试,是否配置成功,其命令为: javac。

提示:

  1. 多个PATH变量之间需要使用 ; 号进行隔开
  2. PATH的环境变量就是对应其,JDK安装路径下的 javac.exe。因为此命令不属于windows,所以使用时 需要配置环境变量。而此命令的作用是将 *.java文件编译成 *.class 文件。

当然了这里没有解释 CLASSPATH 的环境变量配置,相信你用眼睛去看了目录内容,而且也观察到了,CLASSPATH 的相关内容,在第五小点


3.第一个Java程序:永远的"HelloWorld!"

现在我们安装好了JDK,也配置好了环境变量,可以正常的使用 javac 命令进行编译了。

不过我们还是介绍一下,Java程序分为两种类型,一种是Application 程序,而另外一种是 Applet程序,其中有main方法的是前者,而应用于网页的则对应其后者。

注意:
我们在进行java程序的编写时,所承载代码的文件后缀名必须为 *.java。


编写永垂不朽的HelloWorld

public class T_OneCode{
	public static void main(String[] args){
		System.out.println("Hello World!");
	}
}

当代码编写好之后,除了保存操作之外,就是将其对应的 .java文件 编译成 对应的 .class 文件。

其命令为:
javac T_OneCode.java


编译完成之后,会生成对应的字节码文件,此时,就可以使用 java命令 执行此文件。
java T_OneCode
↑ 这个无需在写后缀的。


3.1 如果出现错误!?

如果你执行程序的时候出现错误: UnsupportedClassVersionError
如果出现此错误,说明你之前有安装过 JDK的相关内容。而你刚才安装完整的JDK之后,你以前的安装历史,造成了冲突。此时 你就需要想办法解决问题了。

你可以删除不需要的JRE配置信息。
或者,你可以改变 PATH 变量的设置顺序,因为其变量是按照顺序进行读取的,可以调整他们的优先级,解决此问题。

4.第一个程序解释

类: 它是java的基本组成元素,你写的代码 都要写在类中。一定要将你的code放入类中进行管理。严格区分大小写。类名采用大驼峰。
简述一下: 关键字 public class 类名 大驼峰

主方法:一个程序的起点。语法固定。写有主方法的类也可以称称为主类。

系统输出语句:系统包下的 out对象的 println方法。;号结尾 是语法规范。
println 是换行的输出语句,print 是不换行的输出。


5.CLASSPATH

当我们执行一个编译完成文件时,需要用到 java 命令,而使用此命令,需要先进入到对应的文件路径下,如果不按此规则行事,则会报出 找不到这个类。

想解决此问题,需要配置 classpath环境属性。
这里可翻阅往期博客。不进行过多阐述。

5.1 classpath 与 jvm 的关系

classpath 主要指的是 类的运行路径。 实际上当我们使用java命令时,对于本地的操作系统来说就意味着开启了一个 jvm。jvm运行时需要通过 calsspath 加载到所有的类。
默认情况下是指向当前目录的类。改变之后 jvm 才会从用户指定的目录下进行加载。

往期博客:
https://blog.csdn.net/tianlei_/article/details/120836571

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值