【Java基础上】一、简述Java
一、简述Java
Java是一种高级的面向对象的程序语言,在此处,不需要了解什么叫做面向对象,因为后面的文章中自然会谈到这方面的论述。那么,Java就是一个计算机的编程语言。
1.1 Java的历史
- Java最初叫做OAK,由Java之父詹姆斯·戈士林博士设计。
- 于1995年由Sun公司推出,并更名为Java
- 1998年JDK1.2时,更名为Java 2 Platform
从宏观的角度去看,大体上可以将计算机的编程语言分为三大类,分别是机器语言、汇编语言以及高级语言。机器语言也就是我们通常说的由多个”0“和”1“构成的二进制语言,不像十进制逢十进一,二进制一般逢二进一。当然,这不是我们讨论的重点。汇编语言我们通常会理解成面向机器的程序设计语言,因为形如”100011“这样的编码我们没法直接能够明白这个代码是用来干什么的,于是创造出了助记符与机器码一一对应。
汇编语言我们通常会理解成面向机器的程序设计语言,因为形如”100011“这样的编码我们没法直接能够明白这个代码是用来干什么的。用一些容易理解和记忆的字母、单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。
在经历了机器语言和汇编语言后,人们发现每种机器都需要根据其机器结构进行编程,这样,任何软件都没有可能进行推广。这个时候就需要设计一个不依赖于硬件,能够在不同机器上运行的程序。使得免去编程的重复过程,提高效率,同时,这种程序又能够进行再次开发出其他的程序,那么新一代的语言就此诞生——计算机的高级语言。当时的计算机造价不菲,但是每天的计算量有限,如何有效的利用计算机有限的计算能力成为了当时人们面对的问题。
Java就是一种高级语言,Java在1995年由Sun公司推出的一种极富创造力的面对对象的程序设计语言,它由Java之父詹姆斯·戈士林博士设计。作为Sun研究院院士,詹姆斯·戈士林亲手设计了Java语言,并完成了Java技术的原始编译器和虚拟机。Java最初的名字是OAK,在1995年被重命名为Java。
Java是一个高度跨平台的编程语言,由于用其编写的程序运行在JVM(Java Virtual Machine)上,所以在各种能够安装JVM的机器上都能够运行,例如Windows、Unix、Linux、MacOS,真正意义上的实现了”一次编程,到处运行”的理念。Java非常适合于企业网络和Internet环境,并且已成为Internet中最有影响力、最受欢迎的编程语言之一。
1.2 Java的应用领域
借助Java,程序开发人员可以自由地使用现有的硬件和软件平台。这是由于Java是独立于平台之上的,它还可以应用于计算机之外的领域,例如我们使用的Android手机,所用的主流开发语言便是Java。Java的用途数不胜数,Java的应用领域包括:桌面应用系统的开发、嵌入式系统的开发、电子商务应用、企业级应用开发、交互式系统开发、多媒体系统开发、分布式系统开发、Web应用系统的开发等等。
1、服务器程序
Java在金融服务业的应用非常广泛,许多跨国投资银行例如:Goldman Sachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行)以及其他银行,都用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。
大多数情况下,Java被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。
2、嵌入式领域
Java 在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用 Java 技术(在智能卡或者传感器上)。
当初,Java 被设计用来在嵌入式设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。
3、大数据技术
Hadoop以及其他大数据处理技术都是用Java或者其他,例如Apache的基于Java 的 HBase和Accumulo以及ElasticSearchas。
但是Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮大,Java 依旧还有潜力去在这个市场占据一部分。
4、网站领域
同样,Java在电子商务领域以及网站开发领域占据这大部分席位。你可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0 以及 frameworks。
即使是简单的servlet,jsp和以struts为基础的网站在政府项目中也是很受欢迎的。例如医疗救护,保险,教育,国防以及其他的不同部门网站都是以Java为基础来开发的。
总之,Java语言作为一种发展迅速的语言程序,已经深刻揭示了程序编写过程的精髓,并借助其严谨的结构与间接的编写过程,为Java语言的未来发展提供了重要保证。如今,有关Java语言方面的研究正朝着服务器端优势应用系统方面延伸,相信未来Java语言必将具有更加广泛的应用,也必将会给IT行业的发展起到更有力的促进作用。
1.3 Java的版本
虽然现如今,在笔者完成这篇文章的时候已经更新到了jdk11(LTS),但是还是简单的介绍一下Java版本的一个发展历程。
1.Java SE:JavaSE以前称为 J2SE,是整个Java的基础和核心,这是我们主要学习的一个部分,也是JavaEE和JavaME技术的基础,主要用于开发桌面应用程序。学会后可以做一些简单的桌面应用如:计算器,记事本,内网聊天室,财会应用系统等。
2.Java ME(Java Platform,Micro Edition):这个版本以前称为 J2ME,主要应用于嵌入式开发,比如手机程序的开发。我们现如今用的安卓应用最开始的时候就是基于此进行开发的。
3.Java EE(Java Platform,Enterprise Edition):这个版本以前称为 J2EE,它提供了企业级应用开发的完整解决方案,比如开发网站,还有企业的一些应用系统,是Java技术应用最广泛的领域。主要还是偏向于WEB的开发,而Java EE的基础就是Java SE,所以我们在学习Java SE的时候,基础一定要打好,因为这是最基本的,也是最核心的。
在这里需要注明一点的是,我们如果在网上搜索资料Java的版本基本上都是写的Java8,Java11。这些不能成为Java的版本,准确的说是jdk(Java se development kit)版本或者jre(Java suntime Environment)版本,而Java的分类通常也就是上述的三种,JavaSE、JavaME和JavaEE。
写到这里就想说一下jdk和jre的关系了。
JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。
JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提 供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。
JDK并不是只有Oracle公司唯一发布,最主流的JDK是Oracle和Sun公司发布的JDK,除了Oracle和Sun之外,还有很多公司和组织都开发了自己的JDK,GNU组织开发的JDK,我国华为的毕昇 JDK 8(bishengjdk-8)和阿里云开发的Alibaba Dragonwell等等。
1.4 如何学好Java
如何学好Java语言,这是所有初学者共同面对的问题,其实学什么语言都一样,需要注意以下几点:
- 明确自己的学习目标,也就是自己到底要用Java做什么,而不是为了学Java而学Java。
- 初学者不用看太多的书,找本Java零基础的书,跟着书上的程序反复练习,举一反三,做好总结。
- 可以先简单快速的将书看完,将书中的程序记录下来并做好注释,方便自己复习和查阅。
- 了解数据结构和设计模式。开发程序必须编写程序代码,这些代码必须具有高度的可读性,只有具备了可读性以后,程序才能够有调试、维护和升级的价值。学习数据结构能够帮助学习Java的很多类的形成过程,学习设计模式能够更好的把握项目的整体结构。
- 不要死记语法,在刚刚接触的时候,很多关键字容易记不清,只需要掌握好基本语法,并大概了解一些功能就可以了。借助开发工具(例如IDEA、Eclipse)的代码辅助功能,完成代码的录入,这样可以加快学习效率,降低学习成本。
【Java基础上】一、简述Java的更多相关文章
- 【Java基础】4、java中的内部类
内部类的分类:常规内部类.静态内部类.私有内部类.局部内部类.匿名内部类. 实例1:常规内部类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...
- Java基础系列1:Java基本类型与封装类型
Java基础系列1:Java基本类型与封装类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括两 ...
- 【Java基础】11、java方法中只有值传递,没有引用传递
public class Example { String testString = new String("good"); char[] testCharArray = {'a' ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- JAVA基础第一章-初识java
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 ...
- Java基础系列篇:JAVA多线程 并发编程
一:为什么要用多线程: 我相信所有的东西都是以实际使用价值而去学习的,没有实际价值的学习,学了没用,没用就不会学的好. 多线程也是一样,以前学习java并没有觉得多线程有多了不起,不用多线程我一样可以 ...
- 夯实Java基础系列1:Java面向对象三大特性(基础篇)
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...
- 夯实Java基础系列5:Java文件和Java包结构
目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...
- 夯实Java基础系列15:Java注解简介和最佳实践
Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...
随机推荐
- 数据结构与算法Python版 熟悉哈希表,了解Python字典底层实现
Hash Table 散列表(hash table)也被称为哈希表,它是一种根据键(key)来存储值(value)的特殊线性结构. 常用于迅速的无序单点查找,其查找速度可达到常数级别的O(1). 散列 ...
- 04:全局解释器锁(GIL)
1 全局解释器锁(GIL) 0 pypy(没有全局解释器锁) cpython(99.999999%) -pypy python好多模块用不了,1 全局解释器锁,GIL锁(cpython解释器的问 ...
- guavacache源码阅读笔记
guavacache源码阅读笔记 官方文档: https://github.com/google/guava/wiki/CachesExplained 中文版: https://www.jianshu ...
- 后缀数组&manachar总结
洛谷题单 后缀数组 前置芝士 后缀数组 1 后缀数组 2 后缀数组 3 例题略解 P2463 [SDOI2008]Sandy的卡片 板子题... 然而我还是不会. 大概做法就是先把所有的串差分后拼成一 ...
- Web 动画原则及技巧浅析
在 Web 动画方面,有一套非常经典的原则 -- Twelve basic principles of animation,也就是关于动画的 12 个基本原则(也称之为迪士尼动画原则),网上对它的解读 ...
- CMD批处理(5)——自动以管理员身份运行批处理脚本
在日常运维工作中,为方便对windows用户进行系统安装或配置等,使用Windows自带的批处理(bat文件)是一种最为简单快速的方法. 批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名 ...
- 把 STM32 bluepill 变成调试器(daplink)
在调一块 ARM M0 内核的板子,使用官方的 DEMO 板子来调,板子上集成了 daplink 调试器. 为了方便使用,我把目标板跟 daplink 剪开了,然后用杜邦线把 daplink 跟目标板 ...
- MySQL 到 ES 数据实时同步技术架构
MySQL 到 ES 数据实时同步技术架构 我们已经讨论了数据去规范化的几种实现方式.MySQL 到 ES 数据同步本质上是数据去规范化多种实现方式中的一种,即通过"数据迁移同步" ...
- 关于TreeView的实例
前台代码 (只需要有TreeView控件, 添加ID,其他默认生成) <form id="form1" runat="server"> <di ...
- 使用Retrofit上传图片
Retrofit使用协程发送请求参考文章 :https://www.cnblogs.com/sw-code/p/14451921.html 导入依赖 app的build文件中加入: implement ...