程序猿阵线联盟-汇总各类技术干货我爱编程

Java基础系列之初遇Java

2018-11-08  本文已影响172人  6bc9f71c8f0c

导语

时至今日,Java语言已历时二十多年,已经发展成为计算机史上影响最为深远的编程语言之一,在某种程度上甚至已经超过了编程语言的范畴,成为了一种开发平台,一种开发规范。更有甚者,Java已经成为了一种信仰,一种对开源和分享精神的代表。

了解Java


我们不妨在搜索引擎里面直接搜索下Java


image.png

好吧,开个玩笑,搜索出来的前几列都是广告,这恰恰证明了Java的火爆。我们还是看下百度百科对于Java的描述吧。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

这里面重点是面向对象安全性平台独立可移植性

Java的发展历史


计算机从无到有,因此,任何语言也是有发展历程的,Java也不能例外。但是有意思的是,Java的诞生更为的有意思,甚至可以说是一场意外。
1990年年末,Sun公司打算给智能家电编写一个通用的系统,因此Java之父James Gosling领导的“Green计划”团队准备为此开发。起初考虑使用C++语言,该团队很多成员发现C++和可用的Api在某些方面存在很大的问题,该团队资源有限,且C++太过复杂,缺少垃圾回收、可移植性和分布式等特性。于是乎,Gosling创造了一种新的语言Oak,Oak便是Java的前身。

  1. 1995年Sun公司发布了Java,Sun公司直接把Java放在互联网上,供大家免费使用。
  2. 1996年Sun公司发布了Java1.0,这个环境下已经包含了JRE和JDK
  3. 中间省略掉某些版本,我们直接聊聊Java1.4,这个版本是一个相对成熟的版本,目前国内还有很多公司在使用。2002年2月发布,在此期间,诞生了大量的基于Java的开源框架,如我们熟悉的三大框架Spring,Struts,Hibernate,同时也涌现了大量的企业应用服务器,Weblogic,Jboss等。
  4. 2004年10月发布了Java的里程碑版本Java1.5(更名Java5.0),把之前一直称呼的J2EE正式更名为Java EE。这个版本增加了增强for、泛型、可变参数、枚举类、注解、自动装箱和拆箱等。
  5. 2014年3月18日,Oracle公司发布了Java SE8,(Sun公司很不幸的被收购了)。这次更新带来了全新的Lambda表达式和很多其他的新特性。

Java程序的基本规则


说完发展历史,我们直接说点实在的,说说代码吧。
首先我们要理解两个概念:类和实例。
类:英文名class在Java里面随处可见,所有的Java文件编译后都是.class,程序员面向世界的第一个代码如下

public class HelloWorld{

}

这就是一个类,百度百科描述:类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。
好吧,其实说白了,就是存放我们要写的代码的容器,我们的代码都写在类里面(狭义的,后面还有接口,枚举等)。专业点的说法就是:类是Java程序的最小程序单位。
实例:英文名instance,也称之为对象,就是我们常说的面向对象的对象。是类的具体实现。如new HelloWorld();,就是一个实例。还有一种创建实例的方式,我们可以根据英文名称,去java.lang.Class类中查找下关于实例的方法,找到一个叫newInstance(),顾名思义,这也是创建实例的一种方式。

浅谈垃圾回收机制


之前说到Java安全特性,我们聊到了内存泄露和指针越界的问题,其实就引出了垃圾回收机制。
众所周知,Java的堆是一个运行时数据区,用以保存Java的实例(对象)。由于Java程序员不负责对象的回收,那么Java需要自己把无用对象回收掉,这就是垃圾回收机制。你可以这样理解,C/C++ 就好比一个小孩在房间里面玩折纸,地上无用的纸屑,需要小孩自己去捡起来,扔掉。而Java,则允许小孩丢纸屑,不必自己去捡起来,有一台扫地机器人帮忙丢掉无用的纸屑。

关于运行时内存区域:2014年3月发布的Java8删除了HotSpot JVM中的永久代内存(PermGen,永久代内存主要用于存储一些需要常驻内存、通常不会被回收的信息),而是改为使用本地内存来存储类的元数据信息,并称之为元空间,这就意味着以后不会出现Java.lang.OutOfMemoryEror:PermGen错误(解决了eclipse自动重启报错的问题)

尾声

篇幅加上个人能力有限,对于初遇Java只能写到这里了。后续将会发布更多可能含有些技术含量的文章,再见。

上一篇 下一篇

猜你喜欢

热点阅读