打怪升级之小白的大数据之旅(一)<Java基础语法之Java的身世之谜>

打怪升级之小白的大数据之旅(一)

Java基础语法之Java的身世之谜


前言

做了几年爬虫,感觉天花板还是有的,要么是反爬过于严苛,要么是不敢爬(用户个人信息等敏感数据),爬虫做一做,总有一个将数据利用起来的梦想,因此,网罗度娘,CSDN、知乎、简书以及尚硅谷等知识库,进行大数据打怪升级之旅


引言

学习大数据之前

市面上的大数据框架90%以上都是使用Java开发语言,因此,作为一个Java小白,我从零开始学java,然后再学大数据~

 

Java基础

学习一个知识前,我通常问自己三个W(what? why? how?)

what?


java是什么? 了解java,不得不提计算机语言的发展史了

计算机语言的发展

第一代:

机器语言  0 1 电信号, 我的理解就是一个电路的开和关, 想象有一个最基础的串联电路
 开灯 关灯 对应的就是 0 和 1

第二代:

汇编语言  利用注记符表示一条计算机指令: 例如MOV AX BX等

汇编语言的诞生,意味着程序员的诞生了, 助记符为了方便我们知道这个01是什么,不然一堆的01,只有计算机自己知道: 011001010101010101.....

第三代:

高级语言  c c++ java python

随着我们越来越懒,助记符还是不方便,高级语言诞生了, c, java python等等由此孕育而生

他们底层都是字节码文件,我个人理解是这个酱紫的:

c --> java ---> python

c 比汇编好一些,虽然大大提高了我们程序员的代码编程,但还有繁琐的指针.

因此就有大神 开发了Java,他就是 Java之父-----詹姆斯.高斯林(James Gosling)

Java 因为在变量命名时还需要声明数据类型,也不是很方便啊,所以又有大神在一个圣诞节无聊的时候写出了python

20世纪90年代初Python语言诞生(Python的创始人为荷兰人吉多·范罗苏姆)

 

当然了,python不是基于Java写的,不要被我的这个思路绕进去了~~它是基于ABC这个教学语言开发的  

我就接触过这么几个语言,就拿这几个做了个例子,都是个人的看法,并不完全正确哈~~

好了,总结一下计算机语言的发展:计算机语言的发展,越来越接近人类的自然语言,它就相当于一个字典,将0 1信号与我们的自然语言相转换

 

知道了计算机语言的发展史,我们接下来就要正式开始从Java学起了~盖房子,首先要有一个图纸,一个大的框架,因此,JavaSE的大纲如下:

JavaSE课程体系

  • 第一部分:计算机编程语言核心结构:数据类型、运算符、流程控制、数组、…
  • 第二部分:Java面向对象核心逻辑:类和对象、封装、继承、多态、抽象、接口、…
  • 第三部分:JavaSE核心高级应用:集合、I/O、多线程、网络编程、反射机制、…
  • 第四部分:Java新特性:Lambda表达式、函数式编程、新Date/Time API、接口的默认、静态和私有方法、…
  • 第五部分:MySQL/JDBC核心技术:SQL语句、数据库连接池、DBUtils、事务管理、批处理

知道了大框架,我们首先就需要知道Java的版本发展史,既然是高级语言嘛,它总归是慢慢成长起来的:

Java版本历史变更

Java 1.0 1996.1.23日于Sun公司发布第一个java的开发工具包

Java5.0 2004年9.30日 java自此开始,版本号不再声明1.x版本,开始称之为5.0

此后,java版本命名都是从5.x往后迭代,目前常用的java8 也称之为java1.8

 

不得不说,曾经牛逼哄哄的SUN公司依旧没能逃过被收购的命运,只能感叹它没有抓住历史机遇吧~~

Java5.0是一个大的版本更新,它发布了三个版本,SE EE和ME,用我自己的理解就是,SE就是基础版本,面向群众,打好群众基础就相当于免费的广告投放,有了用户群体,当然不缺金主爸爸,因此JavaEE版本提供各种企业环境的解决方案,随着时代发展,个人需求的旺盛,因此JavaME也是必不可少的,我们通常说Java基础,都是说JavaSE,而真正的商业开发,都是用JavaEE

Java技术体系平台

  • JavaSE(Java Platform, Standard Edition标准版):允许您在桌面和服务器上开发和部署Java应用程序。Java提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需的安全性。
  • JavaEE(Java Platform, Enterprise Edition企业版):是为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发。
  • JavaME(Java Platform, Micro Edition 小型版):为互联网上的嵌入式和移动设备上运行的应用提供了一个健壮、灵活的环境:微控制器、传感器、网关、移动电话、个人数字助理(PDA)、电视机顶盒、打印机等等。JavaME包括灵活的用户界面、健壮的安全性、内置的网络协议,以及支持动态下载的网络和离线应用程序。基于JavaME的应用程序在许多设备上都是可移植的,但是利用了每个设备的本机功能。
    • Java Embedded: 用于解锁物联网的智能设备的价值: 通过远程市场更新和刷新功能延长产品生命周期和价值; 利用Java的可伸缩性、健壮性、可移植性和全套功能,提高生产效率,降低成本,缩短上市时间; 在边缘启用快速数据功能;
    • Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能够承载采用Java技术的应用程序。Java card提供了一个安全的、可互操作的执行平台,它可以在一个资源受限的设备上存储和更新多个应用程序,同时保持最高的认证级别和与标准的兼容性。
    • Java TV:是一种基于JavaME的技术,它为开发在tv和机顶盒设备上运行的java应用程序提供了一个性能良好、安全且易于实现的解决方案。使用Java TV运行时,开发人员可以轻松创建应用程序,例如电子节目指南(EPG)、视频点播(VOD)客户端、游戏和教育应用程序、用于访问Internet数据的应用程序(例如天气、新闻播报器、社交网络)以及大多数蓝光光盘标题上的用户界面和奖金内容。

why?

知道了版本,平台,我们对它的背景基本上就摸的差不多了,了解了产品之后,我们当然需要知道能用它来做什么:

Java的主要应用领域

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

Java语言的特点

  • 完全面向对象:Java语言支持封装、继承、多态,面向对象编程,让程序更好达到高内聚,低耦合的标准。
  • 支持分布式:Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  • 健壮型:Java的强类型机制、异常处理 等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
  • 安全:Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
  • 跨平台性:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

注:

分布式原理:将一个大模块的不同任务拆分为子模块,交由各个子模块单独完成后,进行组装,特点是各个子模块也可向下拆分成集群来提高效率

集群原理:将一个大模块拆分为多个子模块,并交由各个子模块单独完成各自任务,主要特点是,各个自模块完成的任务相同

上面的注解是我自己对分布式这块的理解,说的不正确的话,欢迎各位前来吐槽~我们共同学习共同打怪升级~

how?

怎么学习Java?

我们对一个事物的背景了解清楚,知道他用来干什么,就要开始详细了解一下它,正所谓知己知彼,才能百战百胜~

首先,我们要知道Java的跨平台原理

计算机的发展从笨重的百米高的机器,到现在人手一部手机,可谓日新月异,所以Java作为一个高级语言,它的跨平台原理我们必须要知道

  • 概念:
    • 不论是台式机,手机,平板还是什么嵌入式软件,我们都需要在操作系统上运行一个软件,软件就是一个程序,这个程序都必须要运行在操作系统上(这块的知识点,度娘会很好的告诉大家,我就不啰嗦了~)我们用java编写的软件可以运行在任何操作系统上
    • 大白话就是: 用Java编写的程序,可以一处开发,到处运行!
  • 原理:
    • JVM  java virtual maching (java虚拟机),虚拟机有windows版本,linux版本,max版本
      • 如图上所示,Java的虚拟机本身是不具备跨平台功能的,每个操作系统下都有不同版本的虚拟机。就是因为这个,我们的Java就可以实现跨平台啦~~

    • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库。
      • 我们想要运行一个已有的Java程序,那么只需安装JRE 即可。

    • JDK (Java Development Kit):是Java程序开发工具包,包含JRE 和开发人员使用的工具。
      • 我们想要开发一个全新的Java程序,那么必须安装JDK ,其内部包含JRE。

是不是有一点点混乱?别乱,耐心看下图:

  • JDK JRE JVM关系图:
  • 一句话: JDK包含JRE,JRE包含JVM

好啦,今天就介绍这么多,后面我会一点点记录我学习大数据的路线,因为我也是从Java零基础开始的,所以让我们一起成长,一起进步~~不忘初心.


总结

从计算机语言的发展到Java的跨平台原理,相信大家对Java有了一个初步的认识,欢迎大家后台私信我,共同探讨学习方法,我在Java基础完毕后,会分享我总结的Java基础思维导图,方便大家和自己进行知识点回顾~

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值