自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林元煌

勿以善小而不为、勿以知识小而不分享

  • 博客(60)
  • 收藏
  • 关注

原创 Spring Boot(八)——Shiro+FreeMarker

Shiro简介  Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验证、授权、企业会话管理和加密。Shiro能做什么呢用户访问权限控制,比如:判断用户是否分配了一定的安全角色,判断用户是否被授予完成某个操作的权限;在非 web 或 EJB 容器的环境下可以任意使用Session API;可以响应认证、访问控制,或者 Session 生命...

2018-03-29 18:07:49 9508 4

原创 Spring Boot(七)——部署

打包成jar的方式:windows环境:1、到项目的根目录下(pom.xml同级)2、通过mvn命令打包,需要配置好mvn的环境变量,或者直接是用mvn的绝对路径命令。也可通过开发工具打包,不同的开发工具打包方式不同,这里就不一一介绍了。mvn clean package## 去除测试代码的打包方式mvn clean package -Dmaven.test.skip=true3、等待终端打...

2017-12-20 17:35:52 5864

原创 Spring Boot(六)——Spring Date Jpa

Spring Date Jpa介绍什么是JPA?JPA是Java Persistence API的简称,中文名Java持久层API,是JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。Sun引入新的JPAORM规范出于两个原因:其一,简化现有JavaEE和JavaSE应用开发工作;其二,Sun希望整合ORM技术,结束现在Hibernate,TopLink,J...

2017-12-14 14:42:31 8078 2

原创 Spring Boot(五)——RabbitMQ

RabbitMq的介绍RabbitMq的基本原理可以自行上网查阅,或者点击传送门:RabbitMQ的基本原理。使用配置1、老规矩,先在pom.xml中添加相关依赖:<!--消息队列模块--> <dependency> <groupId>org.springframework.boot</groupId> <ar...

2017-12-12 11:04:50 28340 16

原创 Spring Boot(四)——Mongodb

Mongodb介绍MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向...

2017-12-11 11:48:06 4791 3

原创 Spring Boot(三)——Redis

Redis介绍REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈...

2017-11-22 15:57:35 10423

原创 Spring Boot(二)——MyBatis

 MyBatis介绍MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。具体可参考:Hi...

2017-10-18 10:59:49 5017 1

原创 Spring Boot(一)——入门环境搭建

Spring Boot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Spring Boot优点简单、快...

2017-10-17 15:23:44 15037 2

原创 Java开发过程中要注意的事项

增加了Redis缓存,以避免频繁调用一些不变的数据。或者,在MyBitas的xml里,select语句where条件有isnull,即这个值有就增加一个where条件,对此,会对任何一个where增加一个不带isnull的查询条件,以免该语句当传入参数都是null时,做全表扫描。或者,干脆说,后端异步返回的数据量很大,时间很长,我在项目里就调大了异步返回的最大时间,或者对返回信息做了压缩处理,以增...

2019-11-28 14:14:16 601

原创 大数据 - 统计分析平台架构介绍

目的主要功能是对某个互联网产品多个系统产生的日志进行收集,对各系统的日志格式进行统一,存储到平台特定目录下面。在Azkaban任务调度系统中配置job,对平台上的数据进行ETL操作和分析,将最终产生的结果数据存储到Mysql,redis或elastics中,分别用作报表展示,或者App特定功能的数据来源。

2019-07-12 17:22:35 3825

原创 大数据 - Spark常用算子

从大方向来说,Spark 算子大致可以分为以下三类:1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。2)Action 行动算子:这类算子会触发 SparkContext 提...

2019-05-15 15:51:36 2167

原创 大数据 - Hive介绍和安装使用

hive下载地址http://mirror.bit.edu.cn/apache/hive/这里选择apache-hive-2.3.4-bin.tar.gz通过远程工具上传到指定目录,这里上传的/app/目录下解压到当前文件夹[root@hadoop1 app]# tar -vzxf apache-hive-2.3.4-bin.tar.gz修改环境变量[root@hadoop1 app...

2019-03-22 15:51:21 1570

原创 大数据 - Spark Streaming介绍和实战

Spark Streaming       Spark Streaming 是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从多种数据源获取数据,包括Kafk、Flume、Twitter、ZeroMQ、Kinesis 以及TCP sockets,从数据源获取数据之后,可以使用诸如map、reduce、join和wi...

2019-03-22 15:46:17 1575

原创 大数据 - Spark开发环境(IDEA)

Spark运行模式,IDEA开发环境,远程调试spark standalone集群

2019-03-19 17:42:46 1999

原创 大数据 - Spark介绍和环境搭建

Spark简单介绍、本地运行模式 (单机)和spark standalone集群搭建

2019-03-11 15:33:34 2605

原创 大数据 - Java实现提交作业到Hadoop集群

环境IntelliJ IDEAJDK1.8hadoop-2.8.5.tar.gz下载从官网上下载解压JDK,Hadoop。解压到自己喜欢的目录下。配置windows环境变量Java环境变量就不写了,都应该知道变量名:HADOOP_HOME 路径:E:\hadoop\hadoop-2.8.5变量名:HADOOP_BIN_PATH 路径:%HADOOP_H...

2019-03-05 15:20:50 2393

原创 大数据 - Hadoop安装

Hadoop完全分布式集群安装

2019-02-28 17:33:55 1507

原创 大数据 - Hadoop - YARN

Hadoop - YARN旧的MapReduce架构JobTracker: 负责资源管理,跟踪资源消耗和可用性,作业生命周期管理(调度作业任务,跟踪进度,为任务提供容错)TaskTracker: 加载或关闭任务,定时报告认为状态此架构会有以下问题:JobTracker是MapReduce的集中处理点,存在单点故障JobTracker完成了太多的任务,造成了过多的资源消耗,当MapRed...

2019-02-25 19:17:05 261

原创 大数据 - Hadoop - HDFS

Hadoop是一个专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。

2019-02-21 15:56:24 1299

原创 大数据-入门介绍

大数据定位大数据背景大数据的4V特征Hadoop能做什么:Hadoop核心组件HDFS(分布式文件系统)

2019-02-18 18:24:15 1289

原创 Java面试题-数据结构

八大基本数据结构以及衍生相关数据结构

2018-12-28 16:48:48 3525

原创 Java并发编程(六)-Phaser

phaser英文意思移相器,相位器,表示“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题,其作用相比CountDownLatch和CyclicBarrier更加灵活。如100个人参加高考需要考四场考试,早上考语文,需要等100人都考完语文才能进行下午的数学,下午的数学都考完才能考明天的综合和英语。操作方法Phaser(int parties),构造方法,与CountDownLat...

2018-11-20 14:46:21 8314

原创 Java并发编程(五)-Lock

Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中)。

2018-11-07 15:04:21 6444

原创 Java并发编程(四)-Semaphore信号量

SemaphoreSemaphore翻译成字面意思为 信号量,Semaphore可以控同时访问的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。Semaphore类位于java.util.concurrent包下,它提供了2个构造器:public Semaphore(int perm...

2018-11-06 14:39:56 6860

原创 Java并发编程(三)-CountDownLatch和CyclicBarrier

CountDownLatchCountDownLatch类利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器: //参数count为计数值 public CountDownLatch(int count) { }; 然后下...

2018-11-05 11:24:35 6935

原创 Python——入门准备

机器语言计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 优点是最底层,执行速度最快 缺点是最复杂,开发效率最低汇编语言简写的英文标识符取代二进制去编写程序,本质仍然是直接操作硬件; 优点是比较底层,执行速度最快 缺点是复杂,开发效率最低高级语言人类的字符去编写程序,屏蔽了硬件操作编译型语言执行速度快,不依赖语言环境运行,跨平台差解释型语言...

2018-11-01 11:17:37 526

原创 Java并发编程(二)-线程池和AQS介绍

如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲...

2018-11-01 11:08:53 4577

原创 Java面试题-Struts、Servlet(持续更新)

什么是Struts2 ?  Struts2 是一款优秀MVC框架   MVC:是一种思想,是一种模式,将软件分为 Model模型、View视图、Controller控制器 。MVC由来是web开发 JavaEE软件三层结构 : web层(表现层)、业务逻辑层、数据持久层 (sun提供JavaEE开发规范)   JavaEE开发更强调三层结构, web层开发注重MVC struts2 就是...

2018-10-31 14:02:02 8253

原创 Java面试题-Spring Boot和Spring Cloud(持续更新)

Spring Boot相关项目Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你使用maven dependency引入spring jar包时它就在工作了。Spring Boot:旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能,可以和spring cloud联合部署。Sp...

2018-10-19 11:55:05 9773 1

原创 Java面试题-集合(持续更新)

  从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、...

2018-10-19 11:51:30 6811

原创 Java面试题-Redis和Memcache(持续更新)

什么是redis?redis 是一个基于内存的高性能key-value数据库。 redis淘汰策略Redis提供了下面几种淘汰策略供用户选择,其中默认的策略为noeviction策略: noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错。 allkeys-lru:在主键空间中,优先移除最近未使用的key。 volatile-lru:在设置了过期时间的键空...

2018-05-15 16:51:39 9621

原创 Java面试题-MyBatis(持续更新)

MyBatis框架及原理分析  MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:   1、封装JDBC操作   2、利用反射打通Java类与SQL语句之间的相互转换   MyBatis的主要设计目的就是让我们对执行SQL语句时对输入输出的数据管理更加方便,所以方便地写出SQL和方便地获取SQL的执行结果才是MyBatis的核心竞争力。...

2018-04-18 17:04:44 10611 1

原创 Java面试题-网络、流、IO(持续更新)

HTTP1.0 HTTP 1.1主要区别 长连接  HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。 节约带宽  HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求body发送到服务器。...

2018-04-18 14:27:58 2462

原创 Java面试题-互联网中间件(持续更新)

什么是ibernate?  Hibernate是一种强大高效的持久层查询框架。它对JDBC进行了轻量级封装,以面向事物的思维解决了数据库操纵问题。同时,是一种非强迫性的解决方案,能与一些数据库和Java服务器平稳的集成。Hibernate中的三种状态  瞬时状态:刚创建的对象还没有被Session持久化、缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候...

2018-04-18 14:27:27 2070

原创 Java面试题-Spring(持续更新)

什么是Spring?Spring的核心是一个轻量级(Lightweight)的容器(Container)。Spring是实现IoC(Inversion of Control)容器和非入侵性(No intrusive)的框架。Spring提供AOP(Aspect-oriented programming)概念的实现方式。Spring提供对持久层(Persistence)、事物(Trans...

2018-04-18 14:25:47 2165

原创 Java面试题-Java线程和并发(持续更新)

进程和线程的区别  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位   线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.sleep...

2018-04-18 14:20:30 12523 1

原创 Java面试题-JVM和JDK(持续更新)

在 jdk1.5 中,引入了泛型,泛型的存在是用来解决什么问题。  泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率 你知道哪些或者你们线上使?什么GC策略? 它有什么优势,适用于什么场景?  参考:Jvm连载文章:https://blog.csdn.net/lyhkmm/...

2018-04-18 14:19:25 2881

原创 Java面试题-Java基础(持续更新)

Java中实现多态的机制是什么  靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。 方法的重写Overriding和重载Overloading是Java多态性的不同表现. 重写Overridin...

2018-04-18 14:13:42 8017

原创 JVM学习笔记——JDK、JRE、JVM的关系

摘要  JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。   Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。   JVM是Java Virtual Machine(Java虚拟机)的缩写,是...

2018-03-19 12:11:35 1802

原创 JVM学习笔记——JVM启动流程和基本结构

JVM启动流程JVM基本结构详细介绍内存空间作用Java堆(Heap)  对于大多数应用来说,Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。   Java堆是垃圾收集器管理的主要区域,因此很多时候也...

2018-03-19 11:40:40 4007

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除