Java基础系列(01)——入门概述

Java基础系列——入门概述(01)

Java基础是学习JavaEE、大数据等技术的基石!

软件开发介绍

想要做软件开发,就需要理解什么是软件。软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件(操作系统)和应用软件(QQ等)之分。包括各种运行在服务上的软件。

Pascal之父Nicklaus Wirth说过: “Algorithms+Data Structures=Programs” (算法+数据结构=程序)。其实也就是说一个程序就是算法和数据结构的结合。

交互方式

在最开始的时候,都是命令行交互方式,也就是一个DOS命令窗口,而现在Linux系统中基本保留。还有就是在Windows中使用的图形化界面,这种方式简单直观,对于用户来说比较友好,容易上手操作。

  • 图形化界面(Graphical User Interface GUI)
  • 命令行方式(Command Line Interface CLI)

这里就是最常用的两种方式。

计算机编程语言介绍

计算机语言:人与计算机交流的方式。 如果人要与计算机交流,那么就要学习计算机语言。 计算机语言有很多种。如:C ,C++ ,Java ,PHP , Kotlin,Python,Scala等

  • 第一代语言:机器语言,指令以二进制代码形式存在

  • 第二代语言:汇编语言,使用助记符表示一条机器指令。

  • 第三代语言:高级语言

    • C 面向过程的语言
    • C++ 面向对象的语言
    • Java 跨平台的纯面向对象语言
    • Python、R 解释型语言

Java语言概述

Java 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言;是一种面向Internet的编程语言。
Java一开始富有吸引力是因为Java程序可以 在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。现在已经不再使用了

随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

Java简史

  • 1991年 Green项目,开发语言最初命名为Oak (橡树)
  • 1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
  • 2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
  • 2009年,Oracle公司收购SUN
  • 2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本(也是目前企业中最常使用的版本)
  • 2018年9月,发布JDK 11.0,是未来长期支持的版本,同时是未来的主流!
  • 2020年3月 , 发布JDK14, 是一个短期版本,不会有长久的支持。

Java 技术体系平台

  • Java SE(Java Standard Edition)标准版 : 支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核 心API,此版本以前称为J2SE 。
  • Java EE(Java Enterprise Edition)企业版 : 是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet 、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE 。
  • Java ME(Java Micro Edition)小型版 : 支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME

Java 在各领域中应用

从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:

  • 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及 它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。
  • Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低 很大程度上取决于Java语言核心能力是否扎实。
  • 大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数 是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。
  • 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手 机、PDA、机顶盒、汽车通信设备等。

Java 语言的诞生

java之父James Gosling团队在开发”Green”项目时,发现C缺少垃圾回收系统,还有可移植的安 全性、分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。

Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和C语言、C++语言完全相同。但同时,Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以 引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用 的对象所占据的内存空间。

JDK1.5又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱。

JDK1.8又引入了Lambda表达式、Stream API、新时间日期API、接口中的默认方法和静态方法等内容。

JDK11又引入了增强局部变量类型推断var、HttpClient加强方法、完全支持Linux容器(包括Docker)等内容。

JDK14是一个临时支持版本,但是有很多东西值得期待:Record类型、G1垃圾回收、switch的使用等新特性。

主要特性

  • Java语言是易学的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
  • Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见, 只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
  • Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类 库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程 方法激活)机制也是开发分布式应用的重要手段。
  • Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
  • Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
  • Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被 编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个 Java平台的任何系统中运行。
  • Java语言是编译-解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行。
  • Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。
  • Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建

但是主要的特性是我觉的是以下三点:

  • 面向对象:其实很多语言都有面向对象的特点,但是Java做到了比较完美的地步。
  • 健壮性:提供了一个相对安全的内存管理和访问机制
  • 跨平台性:利用Java虚拟机( JVM : Java Virtual Machine ) , 可以让同一份代码部署在不同的系统中。

Java虚拟机

JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。

对于不同的平台,有不同的虚拟机。只有某平台提供了对应的java虚拟机,java程序才可在此平台运行。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

用户编写源代码,通过编译命令,将.java 文件编译成.class文件(字节码文件),然后让字节码文件运行在Java虚拟机上,这样就保证了只写一份代码。

Java 垃圾回收机制

备注:具体的内容放在了JVM 中进行描述,这里仅仅说明了一个概念。

Java中存在垃圾回收机制,就是将不用的内存空间进行回收。垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预,但是可以从代码层面进行控制、调优!

因为有了垃圾回收机制,所以一般情况下不会出现内存泄漏和内存溢出的问题,但是,也会有几率出现对应的情况。比如说内存溢出,Java就会抛出一个异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值