2018-04-18 17:04:47 xx666zz 阅读数 5399
  • 大数据Flink从入门到原理到电商数据分析实战项目

    如今的大数据技术应用场景,对实时性的要求已经越来越高。作为新一代大数据流处理框架,由于非常好的实时性,Flink独树一帜,在近些年引起了业内极大的兴趣和关注。Flink能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性,还提供了丰富的时间类型和窗口计算、Exactly-once 语义支持,另外还可以进行状态管理,并提供了CEP(复杂事件处理)的支持。Flink在实时分析领域的优势,使得越来越多的公司开始将实时项目向Flink迁移,其社区也在快速发展壮大。 目前,Flink已经成为各大公司实时领域的发力重点,特别是国内以阿里为代表的一众大厂,都在全力投入,不少公司为Flink社区贡献了大量源码。如今Flink已被很多人认为是大数据实时处理的方向和未来,很多公司也都在招聘和储备了解掌握Flink的人才。 本教程将Flink理论与电商数据分析项目实战并重,对Flink基础理论知识做了系统的梳理和阐述,并通过电商用户行为分析的具体项目用多个指标进行了实战演练。为有志于增加大数据项目经验、扩展流式处理框架知识的工程师提供了学习方式。 二、教程内容和目标 本教程主要分为两部分: 第一部分,主要是Flink基础理论的讲解,涉及到各种重要概念、原理和API的用法,并且会有大量的示例代码实现; 第二部分,以电商作为业务应用场景,以Flink作为分析框架,介绍一个电商用户行为分析项目的开发实战。 通过理论和实际的紧密结合,可以使学员对Flink有充分的认识和理解,在项目实战中对Flink和流式处理应用的场景、以及电商分析业务领域有更深刻的认识;并且通过对流处理原理的学习和与批处理架构的对比,可以对大数据处理架构有更全面的了解,为日后成长为架构师打下基础。 三、谁适合学 1、有一定的 Java、Scala 基础,希望了解新的大数据方向的编程人员 2、有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员 3、有较好的大数据基础,希望掌握Flink及流式处理框架的求职人员

    162 人正在学习 去看看 张长志

大数据就业方向有哪些?看到了大数据的就业前景及就业薪资,相信很多人都对大数据技术跃跃欲试,想要学习大数据技术。小编认为在学习大数据之前,你还需要了解一下大数据的就业方向有哪些?毕竟我们学习大数据就是为了以后的就业,在掌握了大数据的就业方向之后,我们也可以明确自己的学习目标!

大数据就业方向一、数据存储和管理

大数据都是从数据存储开始。这意味着从大数据框架Hadoop开始。它是由Apache Foundation开发的开源软件框架,用在计算机集群上分布式存储非常大的数据集。

显然,存储对于大数据所需的大量信息至关重要。但更重要的是,需要有一种方式来将所有这些数据集中到某种形成/管理结构中,以产生洞察力。因此,大数据存储和管理是真正的基础,而没有这样的分析平台是行不通的。在某些情况下,这些解决方案包括员工培训。

大数据就业方向二、数据清理

在企业真正处理大量数据以获取洞察信息之前,先需要对其进行清理、转换并将其转变为可远程检索的内容。大数据往往是非结构化和无组织的,因此需要进行某种清理或转换。

在这个时代,数据的清理变得更加必要,因为数据可以来自任何地方:移动网络、物联网、社交媒体。并不是所有这些数据都容易被“清理”,以产生其见解,因此一个良好的数据清理工具可以改变所有的差异。事实上,在未来的几年中,将有效清理的数据视为是一种可接受的大数据系统与真正出色的数据系统之间的竞争优势。

大数据就业方向三、数据挖掘

一旦数据被清理并准备好进行检查,就可以通过数据挖掘开始搜索过程。这就是企业进行实际发现、决策和预测的过程。

数据挖掘在很多方面都是大数据流程的真正核心。数据挖掘解决方案通常非常复杂,但力求提供一个令人关注和用户友好的用户界面,这说起来容易做起来难。数据挖掘工具面临的另一个挑战是:它们的确需要工作人员开发查询,所以数据挖掘工具的能力并不比使用它的专业人员强。

大数据就业方向四、数据可视化

数据可视化是企业的数据以可读的格式显示的方式。这是企业查看图表和图形以及将数据放入透视图中的方法。

数据的可视化与科学一样,是一种艺术形式。而大数据公司将拥有越来越多的数据科学家和高级管理人员,很重要的一点是可以为员工提供更加广泛的可视化服务。销售代表、IT支持、中层管理等这些团队中的每一个成员都需要理解它,因此重点在于可用性。但是,易于阅读的可视化有时与深度特征集的读取不一致,这成为了数据可视化工具的一个主要挑战。

其实大数据的就业方向除了以上四种,还有很多,对于我们学习大数据技术而言,精准掌握一个方向即可,如果是零基础刚刚入门大数据,小编建议从大数据开发和存储开始学起,然后逐级深入!当然想要学习大数据或者需要资料和视频的也可以联系小编。

2020-03-01 00:25:58 qq_45172832 阅读数 6210
  • 大数据Flink从入门到原理到电商数据分析实战项目

    如今的大数据技术应用场景,对实时性的要求已经越来越高。作为新一代大数据流处理框架,由于非常好的实时性,Flink独树一帜,在近些年引起了业内极大的兴趣和关注。Flink能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性,还提供了丰富的时间类型和窗口计算、Exactly-once 语义支持,另外还可以进行状态管理,并提供了CEP(复杂事件处理)的支持。Flink在实时分析领域的优势,使得越来越多的公司开始将实时项目向Flink迁移,其社区也在快速发展壮大。 目前,Flink已经成为各大公司实时领域的发力重点,特别是国内以阿里为代表的一众大厂,都在全力投入,不少公司为Flink社区贡献了大量源码。如今Flink已被很多人认为是大数据实时处理的方向和未来,很多公司也都在招聘和储备了解掌握Flink的人才。 本教程将Flink理论与电商数据分析项目实战并重,对Flink基础理论知识做了系统的梳理和阐述,并通过电商用户行为分析的具体项目用多个指标进行了实战演练。为有志于增加大数据项目经验、扩展流式处理框架知识的工程师提供了学习方式。 二、教程内容和目标 本教程主要分为两部分: 第一部分,主要是Flink基础理论的讲解,涉及到各种重要概念、原理和API的用法,并且会有大量的示例代码实现; 第二部分,以电商作为业务应用场景,以Flink作为分析框架,介绍一个电商用户行为分析项目的开发实战。 通过理论和实际的紧密结合,可以使学员对Flink有充分的认识和理解,在项目实战中对Flink和流式处理应用的场景、以及电商分析业务领域有更深刻的认识;并且通过对流处理原理的学习和与批处理架构的对比,可以对大数据处理架构有更全面的了解,为日后成长为架构师打下基础。 三、谁适合学 1、有一定的 Java、Scala 基础,希望了解新的大数据方向的编程人员 2、有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员 3、有较好的大数据基础,希望掌握Flink及流式处理框架的求职人员

    162 人正在学习 去看看 张长志

☞☞☞点击查看更多优秀Python博客☜☜☜

 Hello大家好,我是你们的朋友JamesBin上篇文章Python自学我们分析了自学python到底有没有用,那么下面这几篇文章我们就来看看自学python的路线应该如何规划
我们的学习路线呢?下面让我们首先看一下大数据方向的路线吧!

什么是大数据

  "大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

在这里插入图片描述

大数据学习大纲

大数据学习大纲:(大纲来源:https://www.zhihu.com/people/RickyFine)

  • 数据分析的思维和方法
  • Excel进阶
  • 数据库和SQL入门
  • 数理统计学
  • 数据分析软件应用
  • 数据可视化
  • 常见的业务分析模型
  • Python/R语言掌握
  • 业务理解和指标设计
  • 增长黑客:数据驱动增长

在这里插入图片描述

获取大数据

获取大数据的方法主要有一下几种:

  1. 国家数据库:中国铁路交通数据、城市监控录像等;
  2. 企业数据:淘宝交易数据、淘宝购物车收藏数据、京东购物数据;
  3. 机器设备数据:GPS导航系统数据、车仪数据等;
  4. 个人数据:个人日常生活产生的数据。

  大数据的获取主要是从已有的资源中进行数据分析,从而得到自己想要的信息,再将信息进行分析利用。在获取到数据之后最重要的步骤还是看到数据具体张什么样子,有什么特点和规律。得到特点和规律之后根据我们的而具体需求进行贴标签分类处理。只有这样我们才能从复杂的数据中得到不易发现但是价值更大的信息。
  在获取数据的时候我们需要注意的是中国相关法律的规定,特别是爬虫爬取到的数据,我们应遵守相关法律。不得做违反法律的事情。

数据分析

学习路线

我将大数据的学习路线分为以下几步:
在这里插入图片描述

第一步:了解大数据的基本概念

  我们想要学习一个新知识,首先需要的就是知道他是什么?有什么作用?
  这个过程中我们应该能够懂得一些专业术语,能够使用基本的获取数据的方法,既然学习大数据我们级应该首先知道什么是大数据,大数据是用来干什么的,以免我们对大数据不了解就开始盲目的学习,从而得不到自己想要的收获。

第二步:学习获取大数据

  大数据的获取方法众多,我们应该能够从中总结出一种适合自己,适合实际情况的方法去得到我们想要的数据,其中最常用的就是爬虫,所以我们在学习大数据之前不仅要学习好python的基本功还要学会Python中的爬虫的相关知识。爬虫是一种容易入门的爬取数据的方法,但绝对不是唯一的一种方法,所以随着我们学习的不断深入,我们就会发现python爬虫已经不能满足我们了。
  我们只学习的时候一定要注意理论与实践相结合,不可只学不练,这是学习编程最大的忌讳,所以我们在学习的时候可以结所学内容进行一定的实践,做点小项目。

第三步:学习数据处理

  将我们的数据进行储存、可视化处理,这样茶能把我们得到的数据进行可视化输出。我们得到数据后需要对数据进行清洗、探索、提取、可视化处理,其中用到的主要的Python知识如何使用Python从CSV、Excel、XML、PDF 中获取数据,和各类的可视化处理的知识。
  数据清洗,首先最数据进行筛选,选合适的方式对数据进行筛选处理,保留有用数据,剔除无用数据,这个步骤非常的关键,只有数据清洗的干净,后期我们进行可视化处理时才能更加准确简单。

第四步:数据储存

  我们需要将得到的数据和处理后的数据进行储存,以便我们后期进行使用,要想进行数据储存,我们首先需要掌握文件操作,储存的方式和类型也是多种多样,其中主要包括:保存本地、保存到数据库中。前期我们只需要掌握如何将数据进行本地保存即可,当我们学习到一定程度后再考虑如何进行其他更加方便可靠的进行数据保存。

  介绍到这数据处理部分的大纲算是讲完了,本文仅代表本人观点,如有不同意见可在评论区留言,希望对你大数据方向有所帮助。在这里插入图片描述

2018-10-09 12:18:42 qq_41800874 阅读数 645
  • 大数据Flink从入门到原理到电商数据分析实战项目

    如今的大数据技术应用场景,对实时性的要求已经越来越高。作为新一代大数据流处理框架,由于非常好的实时性,Flink独树一帜,在近些年引起了业内极大的兴趣和关注。Flink能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性,还提供了丰富的时间类型和窗口计算、Exactly-once 语义支持,另外还可以进行状态管理,并提供了CEP(复杂事件处理)的支持。Flink在实时分析领域的优势,使得越来越多的公司开始将实时项目向Flink迁移,其社区也在快速发展壮大。 目前,Flink已经成为各大公司实时领域的发力重点,特别是国内以阿里为代表的一众大厂,都在全力投入,不少公司为Flink社区贡献了大量源码。如今Flink已被很多人认为是大数据实时处理的方向和未来,很多公司也都在招聘和储备了解掌握Flink的人才。 本教程将Flink理论与电商数据分析项目实战并重,对Flink基础理论知识做了系统的梳理和阐述,并通过电商用户行为分析的具体项目用多个指标进行了实战演练。为有志于增加大数据项目经验、扩展流式处理框架知识的工程师提供了学习方式。 二、教程内容和目标 本教程主要分为两部分: 第一部分,主要是Flink基础理论的讲解,涉及到各种重要概念、原理和API的用法,并且会有大量的示例代码实现; 第二部分,以电商作为业务应用场景,以Flink作为分析框架,介绍一个电商用户行为分析项目的开发实战。 通过理论和实际的紧密结合,可以使学员对Flink有充分的认识和理解,在项目实战中对Flink和流式处理应用的场景、以及电商分析业务领域有更深刻的认识;并且通过对流处理原理的学习和与批处理架构的对比,可以对大数据处理架构有更全面的了解,为日后成长为架构师打下基础。 三、谁适合学 1、有一定的 Java、Scala 基础,希望了解新的大数据方向的编程人员 2、有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员 3、有较好的大数据基础,希望掌握Flink及流式处理框架的求职人员

    162 人正在学习 去看看 张长志

一、大数据相关工作介绍

大数据方向的工作目前主要分为三个主要方向:

1. 大数据工程师

2. 数据分析师

3. 大数据科学家

4. 其他(数据挖掘等)

二、大数据工程师的技能要求

附上大数据工程师技能图:

大数据学习资料分享群119599574

 

 

必须掌握的技能11条

1. Java高级(虚拟机、并发)

2. Linux 基本操作

3. Hadoop(HDFS+MapReduce+Yarn )

4. HBase(JavaAPI操作+Phoenix )

5. Hive(Hql基本操作和原理理解)

6. Kafka

7. Storm/JStorm

8. Scala

9. Python

10. Spark (Core+sparksql+Spark streaming )

11. 辅助小工具(Sqoop/Flume/Oozie/Hue等)

高阶技能6条

1. 机器学习算法以及mahout库加MLlib

2. R语言

3. Lambda 架构

4. Kappa架构

5. Kylin

6. Alluxio

三、学习路径

第一阶段:Java设计与编程思想

学习内容:Java设计与编程思想

学习目标:Java基础、Java面向对象、Java高级、数据库与JDBC

学习效果:熟练掌握Java语法并灵活运用,能够开发后台应用

第二阶段:Web前端开发

学习内容:Web前端开发

学习目标:HTML基础、CSS3基础、JS脚本编程

学习效果:能够基于HTML+CSS+JQuery进行前端开发

第三阶段:JavaEE进阶

学习内容:JavaEE进阶

学习目标:JavaWeb后端开发、SSM框架

学习效果:掌握主流JavaWeb框架并灵活运用

第四阶段:大数据基础

学习内容:大数据基础

学习目标:Linux基础、Maven基础

学习效果:熟练掌握Linux及Maven等相关知识并灵活运用

第五阶段:HDFS分布式文件系统

学习内容:HDFS分布式文件系统

学习目标:HDFS原理剖析、HDFS编程

学习效果:深入理解HDFS的原理并灵活运用

第六阶段:MapReduce分布式计算模型

学习内容:MapReduce分布式计算模型

学习目标:MapReduce原理剖析、MapReduce实践

学习效果:熟练掌握MapReduce原理并灵活运用

第七阶段:Yarn分布式资源管理器

学习内容:Yarn分布式资源管理器

学习目标:Yarn原理剖析、Yarn实践

学习效果:深入理解Yarn的原理并调优

第八阶段:Zookeeper分布式协调服务

学习内容:Zookeeper分布式协调服务

学习目标:Zookeeper原理剖析、Zookeeper实践

学习效果:深入理解Zookeeper的原理并灵活运用

第九阶段:Hbase分布式数据库

学习内容:Hbase分布式数据库

学习目标:Hbase原理剖析、Hbase编程实践

学习效果:深入理解Hbase的原理并灵活运用及调优

第十阶段:Hive分布式数据仓库

学习内容:Hive分布式数据仓库

学习目标:Hive原理剖析、Hive编程实践

学习效果:深入理解Hive的原理并灵活运用

第十一阶段:FlumeNG分布式数据采集系统

学习内容:FlumeNG分布式数据采集系统

学习目标:FlumeNG原理剖析、FlumeNG编程实践

学习效果:熟练掌握FlumeNG的各种应用场景

第十二阶段:Sqoop大数据迁移系统

学习内容:Sqoop大数据迁移系统

学习目标:Sqoop原理剖析、Sqoop编程实践

学习效果:熟练掌握Sqoop并灵活运用

第十三阶段:Scala大数据黄金语言

学习内容:Scala大数据黄金语言

学习目标:Scala语法剖析、Scala应用实践

学习效果:熟练掌握Scala各种语法并灵活运用

第十四阶段:kafka分布式总线系统

学习内容:kafka分布式总线系统

学习目标:kafka原理剖析、kafka编程实践

学习效果:深入理解kafka原理并灵活运用及调优

第十五阶段:SparkCore大数据计算基石

学习内容:SparkCore大数据计算基石

学习目标:SparkCore核心原理、SparkCore实践

学习效果:深入理解SparkCore原理并灵活运用及调优

第十六阶段:SparkSQL数据挖掘利器

学习内容:SparkSQL数据挖掘利器

学习目标:SparkSQL核心原理、SparkSQL实践

学习效果:熟练掌握SparkSQL的各种应用场景并灵活运用

第十七阶段:SparkStreaming流失计算平台

学习内容:SparkStreaming流失计算平台

学习目标:SparkStreaming核心原理、SparkStreaming实践

学习效果:深入理解SparkStreaming原理及各种应用场景和调优

第十八阶段:SparkMllib机器学习平台

学习内容:SparkMllib机器学习平台

学习目标:SparkMllib算法模型及核心原理、SparkMllib实践

学习效果:熟练掌握SparkMllib的常用算法并灵活运用

第十九阶段:SparkGraphx图计算平台

学习内容:SparkGraphx图计算平台

学习目标:SparkGraphx核心原理、SparkGraphx实践

学习效果:深入理解SparkGraphx的原理并灵活运用

第二十阶段:大数据项目实战

学习内容:大数据项目实战

学习目标:4个大数据项目的实战

学习效果:能够基于所学知识在真实的项目中操练

2017-08-01 14:27:23 qq_39560962 阅读数 2304
  • 大数据Flink从入门到原理到电商数据分析实战项目

    如今的大数据技术应用场景,对实时性的要求已经越来越高。作为新一代大数据流处理框架,由于非常好的实时性,Flink独树一帜,在近些年引起了业内极大的兴趣和关注。Flink能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性,还提供了丰富的时间类型和窗口计算、Exactly-once 语义支持,另外还可以进行状态管理,并提供了CEP(复杂事件处理)的支持。Flink在实时分析领域的优势,使得越来越多的公司开始将实时项目向Flink迁移,其社区也在快速发展壮大。 目前,Flink已经成为各大公司实时领域的发力重点,特别是国内以阿里为代表的一众大厂,都在全力投入,不少公司为Flink社区贡献了大量源码。如今Flink已被很多人认为是大数据实时处理的方向和未来,很多公司也都在招聘和储备了解掌握Flink的人才。 本教程将Flink理论与电商数据分析项目实战并重,对Flink基础理论知识做了系统的梳理和阐述,并通过电商用户行为分析的具体项目用多个指标进行了实战演练。为有志于增加大数据项目经验、扩展流式处理框架知识的工程师提供了学习方式。 二、教程内容和目标 本教程主要分为两部分: 第一部分,主要是Flink基础理论的讲解,涉及到各种重要概念、原理和API的用法,并且会有大量的示例代码实现; 第二部分,以电商作为业务应用场景,以Flink作为分析框架,介绍一个电商用户行为分析项目的开发实战。 通过理论和实际的紧密结合,可以使学员对Flink有充分的认识和理解,在项目实战中对Flink和流式处理应用的场景、以及电商分析业务领域有更深刻的认识;并且通过对流处理原理的学习和与批处理架构的对比,可以对大数据处理架构有更全面的了解,为日后成长为架构师打下基础。 三、谁适合学 1、有一定的 Java、Scala 基础,希望了解新的大数据方向的编程人员 2、有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员 3、有较好的大数据基础,希望掌握Flink及流式处理框架的求职人员

    162 人正在学习 去看看 张长志
未来10年将是大数据,人工智能爆发的时代,到时将会有大量的企业需要借助大数据,而Java最大的优势就是它在大数据领域的地位,目前很多的大数据架构都是通过Java来完成的。你的Java内功如何呢?一起来做做Java大数据方向的面试题~~

1、Collection 和 Collections的区别。

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口。

第八,GC是什么? 为什么要有GC? (基础)。

GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

2、String s = new String("xyz");创建了几个String Object?

两个对象,一个是"xyx",一个是指向"xyx"的引用对象s。

3、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

4、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

5、sleep() 和 wait() 有什么区别? 搞线程的最爱

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)"醒来"的线程具有更高的优先级

(b)正在运行的线程因为其它原因而阻塞。

wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

6、Java有没有goto?

Goto—java中的保留字,现在没有在java中使用。

7、数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。

8、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

9、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

10、给我一个你最常见到的runtime exception。

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,

ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

11、error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

12、List, Set, Map是否继承自Collection接口?

List,Set是

Map不是

13、abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

14、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

都不能

15、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

16、构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

17、启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

18、是否可以继承String类?

String类是final类故不可以继承。

19、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

不能,一个对象的一个synchronized方法只能由一个线程访问。

20、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行。

21、编程题: 用最有效率的方法算出2乘以8等於几?

有C背景的程序员特别喜欢问这种问题。

2 << 3

22、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

不对,有相同的hash code。

23、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

24、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

25、Hashtable和HashMap

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许

还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在

多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap

就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

java大数据方向

阅读数 2177

没有更多推荐了,返回首页