Java语言简介

  • 一、Java语言简介
    • 1.1 认识Java(Java发展简介)
    • 1.2 Java语言特点
    • 1.3 Java可移植性

本系列内容为阿里云大学 java学习路线里的内容
阿里云大学 java学习路线传送门.

一、Java语言简介

1.1 认识Java(Java发展简介)

Java是现在最流行的编程语言之一,并且自身拥有庞大且完善的生态系统,可以实现你的任何需求(但是你不可能要求一门语言实现的功能过多,所以有些时候java不擅长的部分会被其他的语言所顶替),在国内而言,之所以java使用广泛,更多的主要原因有许多的大户都在使用java实现其各自的的核心业务。

java是由sun公司开发的一套编程语言,其前身并不a是java。

​在1991年时候,当时有一个Green项目,这个项目的核心功能在于使用Email控制家电产品的运行 (智能家居),在80年代Email流行时侯,当时可以发送email是一件很牛的事情,最初SUN公司打算竞争此项目,但考虑但c++的复杂性,所以利用c++开发了一套OAK(橡树)平台,并利用此平台进行了项目竞标,但是失败了。但是这个时候世界上有一个最早的最牛x的软件公司诞生了:网景(第一家依靠技术上市的公司,1年内上市。第二家ba,orcle收购)。受浏览器技术的启发,推出了一个HotJava的浏览器。那么后来在1995.5.2时候正式推出了Java编程语言,同时推出了JDK1.0开发包(1996年开始陆续下载使用,1997年传到了中国,电脑报)。

​(OAK不能申请版权,java可以。所以后面用了java)

​ SUN(Standford University NetWork)公司是一家从事与硬件开发的技术公司,SUN最早的带早点代表性产品:小型机(被广泛应用在了amazon)。世界上三种OS(win unix 类unix),最初的电子商务由IBM提出来的(第一代电商当当,卓越。淘宝03年),后来由于网络经济发展问题(任何经济模式一定会由瓶颈)但是对于90年代末的互联网低潮而言,这就是一个严重的伤害(典型李嘉诚的tom网,新浪搜狐美上市失败,8848衰落)。而SUN公司经过一个发展后,未能恢复往日的经济市里,后来被orcle公司收购,在oracle之前最希望收购的是ibm,当时生产线上技术语言基础是java(SUN并没有用java赚多少钱,真正赚钱的是IBM及后面靠版权欺诈的oracle)。

​Java语言依然是一个 程序开发任务

​而从最初的时代到到现在Java语言也出现了一些技术的不同发展:

java标准开发 (J2SE JAVASE )提供底层支持,实现桌面程序的开发
java嵌入式开发(J2ME. JAVA ME )sun公司最早就是想做嵌入式开发,后面被当年nokia折腾够了,后来被andriod替代了,再后来由于Oracle和google的撕逼大战,导致Android发展遇到了瓶颈,后来google使用了自己的专属语言进行Android开发(Kotlin)
Java企业开发(J2EE JAVA EE):主要进行企业平台的搭建,现在已经主要开发是互联网平台。

1.2 Java语言特点

Java之所以可以得到持续发展和良好生态系统,取决于Java的生态特征:

行业内通用的技术实现标准:

Java本身也算是一个半开源产品,很多厂商可以接触到Java底层,使得Java开发的更加透明。(对比.net)
一门面向对象的编程语言:是的Java语言语法结构更加方便开发者接受,这些面对对象的设计思想还在不断地进行着扩充

提供方便的内存回收处理机制:想一些编程语言里里面需要明确的手工进行对象的回收和释放,否则你的程序将无法正常提供支持,Java提供自动的内存回收操作,这样处理更方便一些(牵扯到优化问题—)

避免了复杂的指针问题i,而使用更加简单的引用来代替指针:指针虽然以一种高效的内存处理模式,需要较强的逻辑分析,而Java在设计的时候充分的考虑到了这一点,多以开发者直接利用引用就可以简化指针的处理,而引用是初学过程中最为难以理解的部分;

Java是位数不多hi吃多线程编程的开发语言,可以是的单位时间内,处理的性能得到提升(提升不是绝对的),多线程也是Java开发之中最为难以理解的部分,而正确的多线程处理次啊是提升处理能力的核心所在;

Java提供有高效的网络处理能力,可以基于NIO实现更加高效的数据的传输处理

Java具有良好的可移植性,可以提升一个程序的适用范围;

Java语言足够简单。

1.3 Java可移植性

​ Java语言之中最大的特点在于其可移植性的支持,所谓可移植性指的是同一个程序可以在不同操作系统之间进行部署,减少开发的难度,在Java里实现可移植性的控制,主要依靠jvm,是一个由软件和硬件模拟出来的计算机,所由的程序只要由Java虚拟机的支持,那么就可以实现程序的执行,不通的操作系统上有不通jvm,所以实现了在不同系统的执行。

​ 所有Java程序的解释都要放在java虚拟机执行。

所有的*.java的源代码需要编译完成侯才可执行,但是编译完成侯的程序不是绑定机器的,是可在任何机器和系统上上执行的,是一种通用性程序,而这种通用性的程序就是JVM所能够识别的代码。

​ 所有程序不是直接运行在操作系统上,而通过jvm执行,这样一来比直接执行在操作系统上要慢,先期是一个问题,但是后面由于硬件的发展,这些问题已经可以忽略了,但是依然会存在有JVM调优问题。(内置应用发挥操作系统的全部性能)

阿里云大学 Java编程入门(一)Java语言简介相关推荐

  1. 01.Java 编程入门学习笔记20210307

    Java 编程入门学习笔记-day01 第0章:编程入门 1.计算机的概述 计算机 = 硬件 + 软件 1.1硬件:冯诺依曼体系 CPU: CPU的衡量标准:速度的计量单位是赫兹(Hz),1Hz相当于 ...

  2. 电脑编程入门自学java_电脑编程入门自学Java指南

    随着Java近些年来的强劲发展,想要转行学习Java的初学者也越来越多了.然而,入门自学Java并不是一件轻松的事情.众所周知,万事开头难,尤其是没有编程语言基础的学习者,不仅仅需要付出更多的心血和汗 ...

  3. Java编程入门与应用 P104—例4-12(学生管理系统——密码的重复验证)

    Java编程入门与应用 P104-例4-12 在第一次进入系统时要求管理员设置一个密码,出于安全考虑密码需要输入两次,如果两次输入的密码一致才生效,否则提示失败 import java.util.Sc ...

  4. Java编程入门与应用 P124——例5-4(计算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值)

    Java编程入门与应用 P124--例5-4 计算90度的正弦值.0度的余弦值.1的反正切值.120度的弧度值 因为参数里都是double值,需要以弧度代替角度来实现 /*** Java编程入门与应用 ...

  5. Java编程入门---JDK安装

    Java编程入门 初步了解方法的定义方式和相互调用 掌握递归调用 理解和使用数组 掌握常见类的基本使用,String字符串.Random随机类.Math数学库类和日期类 程序 程序=算法+数据结构 用 ...

  6. JAVA编程入门基础

    JAVA编程入门 程序=算法+数据结构 用户使用编程语言实现问题域到解域的映射,细节描述算法 1.汇编语言-贴近于硬件设备 2.高级语言-C#.Java-贴近于自然语言-需要编译过程将高级语言所编写的 ...

  7. Java编程入门与应用 P210 例8-8——演示创建实例的方法

    Java编程入门与应用 P210 例8-8--演示创建实例的方法 显式转换和隐式转换的概念 /*** Java编程入门与应用 P210 例8-8--演示创建实例的方法** 显式转换和隐式转换的概念*/ ...

  8. Java编程入门与应用 P80——例3-24(小明参加一个1000米的长跑比赛每跑完一圈,教练就会问他是否要坚持下去,如果回答yes,则继续跑,否则表示放弃。)

    Java编程入门与应用 P80--例3-24 小明参加一个1000米的长跑比赛,在100米的跑道上,他循环地跑着,每跑一圈,剩余的路程就会减去100米,要跑的圈数就是循环的次数.但是,在每跑完一圈, ...

  9. Java编程入门与应用 P93——例4-2( 使用“+”连接运算符,连接3个数组和1个字符串,学生考试信息)

    Java编程入门与应用 P93--例4-2 使用"+"连接运算符,连接3个数组和1个字符串 学生考试信息 /*** Java编程入门与应用 P93--例4-2* 使用"+ ...

最新文章

  1. 化工原理 蒸馏(下)
  2. pandas:apply(),applymap(),map()
  3. sql 左联接 全联接_通过了解自我联接将您SQL技能提升到一个新的水平
  4. 区块链教程(二):基础概念介绍
  5. 【Elasticsearch】Elasticsearch:aggregation介绍
  6. 可运行的C语言程序的拓展名,可运行的c语言程序的扩展名为什么?
  7. 经典领导选举算法:Bully 算法
  8. Zabbix监控MySQL工具
  9. 获得百词斩实体书的单词次序(咸鱼的编程初体验!)
  10. oracle recover 状态,Oracle RAC undotbs表空间recover状态的恢复
  11. 第一周学习报告(关于string)
  12. php中strpos什么意思,PHP使用strpos()和strrpos()定位文本
  13. 怎么把ogg音频格式转换为mp3
  14. 从零开始用 Windows C++ 桌面程序制作方舟同人游戏(一)
  15. [CV] 基于机器视觉和强化学习的导航
  16. Type-C接口手机你还只知道可正反随意插?这些神操作赶紧来看看
  17. 【FacebookSDK学习笔记】登录Facebook
  18. 异步复位信号的 recovery和removal
  19. 如何开放防火墙端口?
  20. 三星note2 7100国行刷机android4.4版

热门文章

  1. QT styleSheet image属性不生效问题
  2. 论比价网小程序的可实施性(2020-9-11)
  3. PostgreSQL:给定生日获取年龄
  4. 微信公众平台按钮及菜单创建
  5. 山东各大学计算机科学技术学校排名,2016山东省大学最佳专业排名
  6. c语言结构体看这篇文章就够啦(详细介绍结构体)
  7. IBM T23系列U盘启动
  8. nacos开启权限验证后,nacos config报错403
  9. [Haskell] CIS 194: Homework 5-8
  10. HTML5 - 文字跑马灯标签(marquee)屏幕滚动文字