初识Java

目录

1. Java语言概述

    1.1 Java是什么?

    1.2 Java语言的重要程度

    1.3 Java的历史

    1.4 Java语言的特性


1. Java语言概述


1.1 Java是什么?

        Java是一门非常优秀的程序设计语言,Java身上具备了很多的优点,从而让Java位居各种程序设计语言中的榜首经久不衰。它具有非常让人可以欣赏的语法以及更加易懂的语义。

        Java还具备有一系列计算机软件和规范形成的技术体系,这个体系为跨平台部署和软件开发提供了必要的环境。并且可以应用于各大场合。(嵌入式系统、移动终端、各种服务器、大型机等)

1.2 Java语言的重要程度

1、火热程度

        TIOBE编程社区指数(The TIOBE Programming Community index)是编程语言流行度的指标,该榜单每月更新一次。指数基于全球技术工程师、课程和第三方供应商的数量。包括流行的搜索引擎,如谷歌、必应、雅虎、维基百科、亚马逊、YouTube和百度都用于指数计算。

        上图就是来自 TIOBE编程社区2021年7月的排行情况,可以看出Java语言在所有语言中位居第二,与第一的C语言仅仅只差0.45% ,足以说明Java在编程语言中所占的半壁江山(哈哈哈这么说也不为过吧)。这只是2021年7月反应的情况,不过只要你是留心观察的话,那就不难发现Java的受欢迎程度一直位居前二的席位。虽然所这个受欢迎程度并不是说语言的好坏问题,只是在大家应用中的应用程度,每个语言都有所适应自己应用场景。

2、工作程度

        Java语言在IT行业中应用的非常广泛,熟练的掌握了Java语言可以从事不少相关IT的开发岗位!

a、Java与电子商务
        电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。
        Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的语言。
b、Java企业级应用开发
        JavaEE是目前开发企业级Web应用的主流框架技术,在当今企业级项目开发中与微软公司的MS.NET一起构成两大核心框架技术。JavaEE的主流应用服务器和集成开发工具。
        主要内容包括JavaEE框架核心结构、应用服务器、集成开发工具、Servlet组件编程、请求处理编程、响应处理编程、会话跟踪编程、ServletContext对象和应用、过滤器编程、器编程、JSP、EL和JSTL、JNDI服务基础和编程、JDBC服务编程、JavaMail编程和JavaEEMVC式架构应用。
c、Java网站建设

        近几年来,网站建设业务一直呈快速上升势头,行业市场越来越大。就国内情况而言,沿海发达省市比中西部省市市场需求要大,业务普及工作也很到位,许多行业形成了竞相建设企业网站,开展网络营销的局面。新技术的应用将促使企业网站建设更具魅力。
        Java编程语言,.net技术和服务器CDN技术也将使网站结构更紧密,访问更流畅,更能适应新的要求。但是以目前的市场分析Java做网站成本太高,对硬件要求比较高,中小企业会放弃,但是像大企业还是比较喜爱Java技术。
d、Java游戏编程
        对于游戏开发来说,由于涉及到比较复杂的情况,开发过程很多时候是一个不断修改的过程,可以方便地修改游戏内容是十分关键的。
        对于很多游戏引擎来说,都有自己编写的脚本解释器,用来解释一些自定义的游戏脚本身而言,另一些则提供了例如lua和rubby等的脚本语言来访问游戏引擎。由于其虚拟机特性,Java本身就可以用来编写游戏脚本,目前也有例如beanshellgroovy等脚本语言可以方便的无缝的和Java语言进行交互,这些都极大地方便了Java游戏编程。

e、Web开发领域

        Java语言在设计初期,赶上了互联网发展的风口,当时就瞄准了互联网开发,凭借稳定的性能表现和较 好的扩展性,Java语言一直是大型互联网平台的重要解决方案。

f、Android平台应用

         Android是一种智能手机操作系统,Java是一门非常流行的编程语言。Android上的应用程序就是大多是 用Java编写的,Android的SDK大部分是直接将Java SDK翻译过来的,所以具有Java基础,也可以快速 上手Android开发。

1.3 Java的历史

Java的起源与诞生

        20世纪90年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。

        SUN公司为了抢占市场先机,在1991年成 立了一个由詹姆斯·高斯林(James Gosling)领导,名为“Green”项目小组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。 那么使用何种编程语言来设计,是项目小组头疼的事。当时C++较为有优势的,项目小组首先考虑的是采用它来编写程序,但C++过于复杂和庞大,再加上由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序跨平台运行,假如用C++编写的话对程序的跨平台运行不友好。

        最后项目小组决定:既不用C++编写,也不开发全新的编程语言,而是对C++进行改造,去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,最终在1992年,他们开发了—种名为“Oak”的面向对象语言。 科当他们在向硬件生产商进行演示的时候,硬件生产商对此并不感冒,OaK语言因为缺乏硬件的支持而无法进入市场,从而被搁置一旁。

        1994年,项目小组看到了浏览器在未来的发展前景,于是决定将OaK应用于万维网。

        1995年,他们用OaK语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于Applet不仅能嵌入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了OaK这门语言,与此同时,OaK正式更名为Java。从此,Java在互联网的推动下火了。并提出了“Write once, Run anywhere" 的口号。

1.4 Java语言的特性

以下Java语言特性来自于Java白皮书:

1.4.1 简单性
        无需深奥的专业培训就可以进行的编程系统,并且符合当今的标准惯例
        尽可能地接近C++,以便系统更易于理解 Java剔除了C++中许多很少用,难以理解,易混淆的特性(这些特性带来的麻烦远远多于其带来的好处)
        支持开发能够在小型机器上独立运行的软件(基本的解释器以及类支持大约仅为40KB)
再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核)大约需要增加175KB
由于不断的扩展,类库已经相当庞大
        现在有一个独立的具有较小类库的Java微型版(Java Micro Edition),这个版本适用于嵌入式设备
1.4.2 面向对象
        面向对象设计是一种程序设计技术  它将重点放在数据(即对象)和对象的接口上
面向对象:始终关注的是所制作的椅子,第二位才是所使用的工具;
非面向对象:首先考虑的是所用的工具
        在本质上,Java的面向对象能力与C++是一样的  旗鼓相当
Java与C++的主要不同点在于多重继承,在Java中,取而代之的是更简单的接口概念
Java提供了更丰富的运行时自省空间
1.4.3 分布式
        Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议
Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样
1.4.4 健壮性
        具有多方面的可靠性
        Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性
Java编译器能够检测许多在其他语言中仅运行时才能够检测出来的问题
1.4.5 安全性 相对安全,凡事无绝对
        适用于网络/分布式环境
        可以构建防病毒,防篡改的系统
        防范各种攻击:
        运行时堆栈溢出。如蠕虫和病毒常用的攻击手段,破坏自己的进程空间之外的内存,未经授权读写文件,Java代码不论来自哪里,都不能脱离沙箱
        不可信代码在一个沙箱中执行,在这里它不会影响主系统
安全模型很复杂
        Java浏览器插件不信任远程代码,除非代码有数字签名而且用户同意执行这个代码
1.4.6 体系结构中立
        很容易地在任何机器上解释执行
        可以动态地翻译成本地机器代码
        Java虚拟机优点:
        可以检测指令序列的行为,从而增强安全性
1.4.7 可移植性
        Java规范中没有 "以来具体实现" 的地方
        基本数据类型的大小以及有关运算都做了明确的说明在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题
        二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰,int为永远的32位的整数
字符串是用标准的Unicode格式储存的,作为系统组成部分的类库,定义了可移植的接口,Java库很好地支持平台独立性
        处理文件,正则表达式,XML,日期和时间,数据库,网络连接,线程等,不仅程序是可移植的,Java API往往也比原生API质量更高
1.4.8 解释型
        Java虚拟机可以在任何安装了jre的环境中运行
        Java解释器可以在任何移植了解释器的机器上执行Java字节码
        链接是一个增量式且轻量级的过程(开发过程变得更加快捷,更加具有探索性)
1.4.9 高性能
        更加高效的性能
        字节码可以(在运行时刻)动态地翻译成对应这个应用的特定CPU的机器码 即时编译器可以监控经常执行代码,并且优化这些代码以提高速度。更为复杂的优化是消除函数调用(即 "内联") 知道哪些类已经加载 基于当前加载的类集,如果特定函数不会被覆盖,就可以使用内联 (必要时,还可以撤销优化)
1.4.10 多线程
        多线程可以带来更好的交互响应和实时行为
        并发性 摩尔定律 更多的处理器
        第一个支持并发程序设计的主流语言
        java提供接口,操作接口以便操作系统多个处理器
1.4.11 动态性
        库中可以自由地添加新方法和实例变量(对客户端却没有任何影响)
        可轻易找到运行时类型信息(十分简单)
        非常重要的特性
        引入主流程序设计语言中
注:
        J++ Java 有几乎相同的编程语言以及虚拟机
        C# Java 有很多相似之处,然而使用的却是完全不同的虚拟机

下图为Java在计算机中的主要结构:

(写在后面:我是一名学习Java的小白,本篇博客是我学习中的总结,如果你想和我一起来学习Java这门具有魅力的语言的话,请关注一下博主哦!多多评论,本编博客借鉴了百度知道里的内容,如果有什么问题请在评论中告诉我哦!我会在第一时间进行改正。)

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CuSO₄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值