java技术栈:一、java编程语言概述

Java是一种编程语言,起源于20世纪90年代初Sun公司的一个叫Green的项目,该项目主要目的是是开发嵌入家用电器的分布式软件系统,从而使电器更加智能化。因为项目小组成员皆为C++的高手(那个年代正式C++流行的年代),于是采用C++进行系统开发,但在开发过程中发现C++语言本身的特性所导致的问题无法有效的解决,比如:过于复杂、安全性差等。于是项目小组只好另辟蹊径,在“简单的、可靠的、紧凑的并易于移植的”的框架内开发了一个小型的计算机语言,用于编写消费者的电子产品中的程序,当时这款语言命名为Oak。

后来,Sun公司为Green项目成立First Person公司,在93年,WWW开始席卷全球的背景下。First Person公司决定重新定位Oak。将其转向到网络应用领域。Oak注册登记时,发现该名已被占用,遂更名为Java。为什么起java这个名字,到现在都众说纷纭,大家可以自行搜索。

Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式,即面向对象编程。java不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念(多继承,以及指针的优缺点),因此Java语言具有功能强大和简单易用两个特征。

简述java发展历程:

  • 1991年成立了一个称为Green的项目小组,开发了一种称为Oak的面向对象语言。
  • 1994年6、7月间,将Oak应用于万维网。
  • 1995年,互联网的蓬勃发展给了Oak机会。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java
  • 1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。
  • 1997年2月,JDK 1.1面世。
  • 1998年12月8日,第二代Java平台的企业版J2EE发布。
  • 1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。
  • 1999年4月27日,HotSpot虚拟机发布。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。
  • 2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司Mac OS X的工业标准的支持。
  • 2001年9月24日,J2EE1.3发布。
  • 2002年2月26日,J2SE1.4发布。
  • 2004年9月30日,J2SE1.5发布。
  • 2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
  • 2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费软件对外发布。
  • 2009年,甲骨文公司宣布收购Sun 。
  • 2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职。
  • 2011年,甲骨文公司举行了全球性的活动,以庆祝Java7的推出,随后Java7正式发布。
  • 2014年,甲骨文公司发布了Java8正式版。(发展历史详情)

常用java编程工具:

  • Eclipse:一个开放源代码的、基于Java的可扩展开发平台[16] 。
  • NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
  • IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。[17]
  • MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境[18] 。
  • EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序。(分析比较)

java编程语言特点:

  • 简单性:不支持go to语句,代之以提供break和continue语句以及异常处理;剔除C++的多继承特征以及指针;不使用主文件,免去了预处理程序;自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
  • 面向对象:Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。是用类来组织的。
  • 分布性:Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
  • 编译和解释性:Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
  • 稳健性:Java是一个强类型语言,允许扩展编译时检查潜在类型不匹配问题的功能;要求显式的方法声明,从而保证编译程序能捕捉调用错误;不支持指针,消除重写存储和讹误数据的可能性;自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误;Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内;异常处理,使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
  • 安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。
  • 可移植性:Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。
  • 高性能:Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。
  • 多线程:Java是多线索语言,它提供支持多线索的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。
  • 动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
时间: 2025-01-14 01:52:06

java技术栈:一、java编程语言概述的相关文章

java技术栈

java技术栈 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序 1.2 二叉查找树.红黑树.B树.B+树.LSM树(分别有对应的应用,数据库.HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 1.equals方法用于比较对象的内容是否相等(覆盖以后) 2.hashcode方法只有在集合中

《深入理解Java虚拟机》第一部分(Java技术体系,Java虚拟机,Java技术趋势)

第一部分 走进Java 1.Java技术体系 Sun官方定义的Java技术体系包括一下几个组成部分: Java程序设语言 各种硬件平台上的Java虚拟机 Class文件格式 Java API类库 第三方Java类库 JDK是用于支持Java程序开发的最小环境,Java程序设计语言.Java虚拟机.JavaAPI类库统称为JDKJRE是支持Java程序运行的标准环境,JavaAPI类库中的JavaSEAPI子集和Java虚拟机统称为JRE 按照Java技术关注的重点业务领域来分,Java技术体系可

Java开发技术栈:Java基础语法(一)标识符与关键字

Java标识符 定义 给包,类,方法,变量起名字的符号. 组成规则 标识符由字母.数字.下划线.美元符号组成. 命名原则:见名知意 包名:全部小写,多级包用.隔开. 举例:com.jourwon 类.接口:一个单词首字母大写,多个单词每个单词的首字母大写. 举例:Student,Car,HelloWorld 方法和变量:一个单词首字母小写,多个单词从第二个单词开始每个单词的首字母大写. 举例:age,maxAge,show(),getAge() 常量:如果是一个单词,所有字母大写,如果是多个单词

(转)如何学习Java技术?谈Java学习之路

51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领域其他技能的学习. [在原先<学好Java之我见>的基础上重新整理而成] Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”.“倚天剑”. Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助. 1. 思考一下 学习Java之前,先别

【转】Java技术栈

1 java基础: 1.1 算法 1.1 排序算法:直接插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序 1.2 二叉查找树.红黑树.B树.B+树.LSM树(分别有对应的应用,数据库.HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型.异常.反射 2.5 string的hash算法 2.6 hash冲突的解决办法:拉链法 2.7 f

微信公众号java技术栈,里面的关于注解spring的总结

Spring的"零配置"支持 搜索Bean类: Spring提供如下几个Annotation来标注Spring Bean @Component: 标注一个普通的Spring Bean类 @Controller: 标注一个控制器组件类 @Service: 标注一个业务逻辑组件类 @Repository: 标注一个DAO组件类 在Spring配置文件中做如下配置,指定自动扫描的包 <context:component-scan base-package="edu.shu.s

教你一步一步构建java技术栈--企业级架构方案实战

定制适合自己业务os镜像 定制tomcat镜像 定制mysql镜像 定制haproxy/nginx 镜像 定制 elk 镜像 定制 redis 镜像 解决启动tomcat 网络端口问题,挂在war包问题,应用日志收集问题 解决mysql 数据库表结构导入问题 解决tomcat 与 mysql 连接问题

高级java技术栈图

原文地址:https://www.cnblogs.com/yhood/p/11549966.html

Java技术 | 细谈Java中UUID的简单了解与使用

什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = 2^128,约等于3.4 x 10^38.也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完. UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符,如:550e8400-e29b-41d4-a716-446655440000. U