我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。

一、序言:

2017年,这一年人才市场发生了巨大的变化,经历了O2O、P2P、互联网+、共享经济、大数据、AI和区块链等,互联网行业的各大公司也都走在风口浪尖,不断的寻求突破。传统企业更加不在话下,都在做极力做数字化转型规划。但最终不管市场怎么变化,作为技术人员,我们必须要保持强烈的求知欲,活到老学到老,不断的升级自我,这样才不会被市场淘汰。(虽然感觉很鸡汤,但说的就是事实)


这段时间有很多朋友问我,问题大同小异,大体的意思就是很怀念前几年的市场状态,考了一个CCIE(Cisco Certified Internetwork Expert)之后,很容易就可以获得一份丰厚待遇的工作,但是现在市场变化这么快,作为网络工程师的我们在职场上没有太大的竞争力,危机感萌生,不知道在接下来的职场要如何选择。


其实,一直都跟朋友们分享的,作为网络工程师想必很多都会经历思科认证考试,不管是通过了CCNA、CCNP和CCIE,每个认证考试的通过都不是我们的终点,而是我们的起点。我们获得的不仅仅是一张证书,而是获得了一种自我学习和提升的能力。


近两年的云计算(IaaS、PaaS和SaaS)、大数据和人工智能等领域主要以Java技术为主,为了与时俱进,笔者也开始学习Java,也推荐大家可以学习下(笔者虽然获得了ISP CCIE,DC CCIE和Vmware等认证的,但之前对Java也是没有接触过,本次学习分享也是为下一步大数据学习打基础,希望可以跟大家一起交流,一起进步。)


以上言论也是通过朋友分享和自身感受,纯粹交流,不喜勿喷,也希望有大牛过来指导!


二、Java发展史

好了,煽完情,吹完牛皮,是该来聊聊正经话题了。


要学习一门技术,我们必须要先了解它,那下面先聊聊Java的发展史。

Java 是一门编程语言,拥有跨平台、面向对象、泛型编程等特性。


Java这个名字的由来,是Java创始人员团队中其中一名成员由于灵感想到的,想起自己在Java岛(爪哇岛)上曾喝过一种美味的咖啡,于是这种计算机编程语言就命名为Java,以一杯热咖啡为logo.

从0开始学大数据-Java基础开篇(1)_Java


同时,还需要了解下Java之父-James Gosling(詹姆斯·高斯林)  ,不要学了大半天Java,连Java之父是谁都不知道,就很尴尬了。

从0开始学大数据-Java基础开篇(1)_CCIE_02



Java的版本演进:JDK(Java Development Kit)

1.0.2

1.1.1->1.1.6->1.1.7->1.1.8

1.2.1

Java 2 SDK

1.2.2  

1.3.0->1.3.1

1.4.0->1.4.1->1.4.2->1.5.0(5.0),1.6(6.0),1.7(7.0),8.0,9.0(最新版本)

注:Java到1.5版本之后,增加了很多新特性,与之前的版本区别比较大,所以从1.5开始就以5.0这种叫法。


记住几个时间轴:

1995年5月:Java问世

1996年1月:JDK1.0版本发布(里程碑)

1997年2月:JDK 1.1面世

1999年6月:第二代Java平台发布(简称为Java2)

因此,Java2的“2”代表是Java第二代的意思。


Java 2有3个版本:

J2SE :(Java 2 platform standard Edition)标准版

  • 是为开发者普通桌面何商务应用程序提供解决方案

  • 该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,如QQ,YY等

J2ME :(Java Platform,Micro Edition)小型版

  • 是为了开发电子消费产品和嵌入式设备提供的解决方案

  • 目前主流的Android底层就是JAVA开发的

J2EE:(Java 2 Platform Enterprise Edition)企业版

  • 是为了开发企业环境下的应用程序提供的一套解决方案

  • 该技术体系中包含的技术如Servlet,JSP等,主要针对于Web应用程序开发


注:Java 5.0版本后,更名为 JAVAEE  JAVASE  JAVAME


三、JAVA的特点(包含不仅限于以下):吸取了C 和 C++语言的特性

  1. 面向对象性

  2. 建壮性

  3. 跨平台性(write once , run anywhere)(主要有JVM,JVM是Java的虚拟机,类似一个平台)

这里我们将重点讨论跨平台特点,Java是怎么做到跨平台的?

开始之前,我们先看下面的图:


从0开始学大数据-Java基础开篇(1)_大数据_03

比如左边的图,当我们中国人,在不懂外语的情况下,要与日本人或者韩国人做交流,中间需要有一个翻译,与不同国家的人交流,需要懂对应语言的翻译。


对应到Java,JVM就是充当的翻译的角色,要跨平台就是需要不同的JVM做支撑,每一种平台的JVM都是不一样的。


所以只要在系统上安装上JVM,通过Java语言编写的应用程序在不同的系统平台上都可以运行。


四、JDK、JRE和JVM的作用和关系

(1)作用

  • JVM:保证Java语言跨平台

  • JRE:Java程序的运行环境(Java runtime Environment)

  • JDK:Java程序的开发环境

(2)关系

  • JDK: JRE+tools(工具,主要是在lib下面的)

  • JRE:JVM+class library (类库)


即:JDK>JRE>JVM(JVM保证Java跨平台能力),所以我们将下载最全的JDK包。


从0开始学大数据-Java基础开篇(1)_大数据_04

Java 概念图


五、安装JDK工具包

编写程序之前,我们需要先从Oracle官网下载JDK8(目前最新的是JDK9,我用的是JDK8):

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


从0开始学大数据-Java基础开篇(1)_大数据_05

我是windows 64位的操作系统,所以下载的是windows x64的,你们可以根据你们的系统类型下载对应的即可。


建议:安装路径不要有中文或者特殊字符和空格等,所有和开发相关的都统一放在一个目录。


笔者是直接安装在E:\Java\JDK下,便于查找。安装完成之后,目录如下:


从0开始学大数据-Java基础开篇(1)_大数据_06

重点了解下以下几个:

bin:为Java开发用到的工具

db:存放的是数据库文件

jre:为运行环境

src.zip:为Java开发工具包的源码文件


接下来,我们需要给Java设置一下环境变量,以确保Javac指令和Java指令在任何目录下运行。


从0开始学大数据-Java基础开篇(1)_Java_07

新建环境变量“JAVA_HOME”


从0开始学大数据-Java基础开篇(1)_大数据_08

编辑环境变量“path”,新建%JAVA_HOME\bin


从0开始学大数据-Java基础开篇(1)_CCIE_09
从0开始学大数据-Java基础开篇(1)_大数据_10


六、编写第一个Java程序(HelloWorld)

class HelloWorld{

public static void main(String[] args){

System.out.println("HelloWorld");

}

}


1、程序解释:

(1)Java程序的最基本单位是类,所以我们要定义一个类,

    • 格式: class 类名

    • 举例: class HelloWorld

(2)在类中写内容的时候,用大括号括起来{}。

(3)Java程序要想执行,必须有main方法

    • 格式: public static void main(String[] args)

(4)方法要指向哪些东西,也用大括号括起来

(5)要做什么呢?今天我们仅仅做了一个简单的输出

    • 格式: System.out.println("HelloWorld");

    • 注意:""里面的内容是可以改动的


2、Java 程序开发执行流程:

(1)编写Java源程序(.java文件)

(2)通过javac命令编译生成.class文件

(3)通过java命令运行.class文件


从0开始学大数据-Java基础开篇(1)_CCIE_11

3、程序执行结果

(1)先用javac编译生成.class文件


从0开始学大数据-Java基础开篇(1)_Java_12

(2)Java命令执行.class文件,输出运行结果


从0开始学大数据-Java基础开篇(1)_Java_13


七、Java程序执行中常见问题:

  1. 文件扩展名被隐藏了,无法正常执行Java程序,所以需要把扩展名显示

  2. 建议文件名和类名称一致

  3. Java程序严格区分大小写的

  4. 见到 非法字符:\65307错误,都是中英文输入法问题,Java程序编写都是要以英文输入法

  5. 括号的配对问题,一般来说,括号都是成对出现的。

  6. 遇到“在类Helloworld 中找不到主方法,请将主方法定义为”,这个肯定是主方法的格式问题


好了,今天也是做了一个好的开始

本人能力有限,如有不足,还望指正

感谢大家一如既往的支持

希望一起分享给更多的人

让大家一起学习大数据技术

转载需联系授权

从0开始学大数据-Java基础开篇(1)_Java_14