- 博客(57)
- 资源 (11)
- 收藏
- 关注
原创 JVM
Jvm (java virtual machine) Java虚拟机,用以支撑Java一次编译导出运行的实现Java8官网https://docs.oracle.com/javase/8/Developer Guides https://docs.oracle.com/javase/8/docs/index.html 有如下图解从图中可知,jdk 包好了jre,jre包含了jvm从以前知识中我们知道,我们编写了一个Person.java 文件,通过jdk 提供的javac命...
2020-09-17 15:12:11
186
原创 Java IO模型 BIO,NIO,AIO 详解
阻塞式IO模型,BIO JDK1.4 之前都是采用BIO模式(blocking I/O) ,阻塞式IO,模型如图解释: 应用程序需要从磁盘读取数据分为两个阶段,1将磁盘数据复制到内核,2将内核数据复制到应用程序空间:准备数据:应用程序问cpu说:我需要一个aaa.txt 文件,你去给我取来。CPU告诉应用程序,你等着我去给你准备数据(应用程序一直傻傻等待)。CPU转身问磁盘:磁盘我需要aaa.txt 文件,磁盘开始准备数据,并将数据复制到内核空间中(耗时) 等磁盘把数据给到CPU之后,告...
2020-09-04 19:05:20
232
原创 Java代理模式
代理模式,顾名思义就是给一个类找个代理,让这个代理类去做一些事情,比如某明星要开演唱会,在开演唱会之前要布置场景,在开演唱会之后要收拾东西,这些事情明星是不需要做的,交给它的代理去做。在Java中也会有这样的代理类,Java中的代理模式有三种,静态代理,JDK动态代理,GCLib代理静态代理所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和目标类的关系在运行前就确定了使用静态代理的条件是:目标对象(要被代理的对象)和代理对象需要实现相同的接口或者是继承相同父类定义共同接口
2020-07-05 19:30:00
183
原创 Java类加载器
类加载器顾名思义就是加载类的工具,在Java中用到类的时候,JVM首先要把类的字节码文件加载到内存中来,大家可能在开发的过程中经常会遇到java.lang.ClassNotFoundExcetpion这个异常,出现这种异常的原因就是类加载器找不到要加载的类了先看一下段代码public class ClassLoaderTest { public static void main(String[] args) { ClassLoader classLoader = Class
2020-07-04 21:24:15
177
原创 websocket由浅入深二
上一篇我们说了一下websocket的基本概念及简单案例,本篇是一个案例,传输文本类型的文件,可以稍微扩展成大文件上传前端代码<template> <div> 连接地址: <input type="text" id="conn" placeholder="ws://tmp.server.com:port/socket" v-model="connAddress"/> <button v-on:click="click">连接<
2020-07-03 22:41:05
182
原创 websocket由浅入深
websocket是一种通信协议,建立在 TCP 协议之上,也依赖于http协议。什么情况下会用websocket 呢?我们经常用的http协议是一种单工协议,就是只能从client发出请求然后server响应请求,单方面的请求。有这样一种场景就是当server端的数据更新后要实时的推送给client,此时http协议能做的就是通过ajax定时去轮询的请求server,显然这种方式是不合理的。这时就需要websocket出马,websocket的特点就是服务器可以主动向客户端推送信息,客户端也可以主
2020-07-03 21:55:12
293
原创 Java内省
Java内省一般是对Java中JavaBean的属性,事件,方法等的一些缺省处理方法,也是一些规则,其中主要用到反射。有关类主要在rt.jar包的java.beans下面,一看到这个包就很清楚都是关于bean,大家看的时候最好打开源码一块看对于JavaBean来说其实就是一些遵守了特定规则的Java类而已,比如这个类需要是public 的, 然后需要有个无参数的构造函数 这个类的属性应该是private 的, 通过setXXX()和getXXX()来访问 这个类需要能支持“事件”, 例如ad
2020-06-29 22:42:10
134
原创 Java的反射
我们要了解Java中的反射就要了解基础类Class,一切反射的基石,它也是一个类,类名就是Class,不同于我们自定义类使用的小写class。Java中所有的类都属于同一种事物那就是Class类,就像所有的人一样都属人类,当然一说人那么它就必须满足人类所固有的一些特性,Java中的类也是一样,而用来描述所有Java类的特性的就是Class,所以通过一个Class就可以获取到Java类的所有信息。下面是它的定义,它里面提供了很多方法来获取类的信息,大家可以打开源代码自己看一下。public final
2020-06-27 22:26:07
241
原创 注解二——注解的使用
上一篇我们简单说了一下注解的入门,本篇我们了解一下注解的使用——自定义注解我们首先定义一个简单的注解,只需要使用@interface 关键字来标识一下,他就成为了一个Person注解,这个注解的生命周期是到字节码阶段,使用范围是使用在类上面或者方法上面。@Retention(RetentionPolicy.CLASS)@Target({ElementType.TYPE,ElementType.METHOD})public @interface Person {}在Annotation
2020-06-25 16:42:54
226
原创 注解入门一
Java中的Annotation 在流行的框架中用的越来越多,所以对注解的原理大概介绍一下,Java5以后就开始支持注解,所以到今天注解已经成为元老级技术我们使用@interface来定义注解,它其实跟class 、interface 、enum都类似,用来标识类型。Java中annotation包下提供了这几个注解,类,接口,另外java.lang包下面又提供了五个注解下面挨个看一下他们的源码注释基本就对注解有个了解了一 Annotation接口/** * The common i
2020-06-22 22:46:59
245
原创 cas5.3.14三,TGT,Session的redis存储
上次cas5.3.14入门二,cas介绍及登陆流程讲到CAS Server生成一个TGT对象,放入自己的缓存,本片介绍一下如何将TGT存储到redis,为什么要把它存储到redis 呢,为了高可用以及扩展集群部署,集群部署的时候显然存储在内存中是不合适的先看官网:https://apereo.github.io/cas/5.3.x/官方提供了这么多存储TGT的方式,咱们只说redis 的方式,其他方式都可以参照配置。参照官网首先配置maven<dependency&g..
2020-06-12 10:36:30
2387
原创 cas5.3.14二,cas介绍及登陆流程
CAS系统体系结构由两个物理组件组成,CAS服务端和CAS客户端,它们通过各种协议进行通信,CAS服务端负责完成对用户的认证工作 , 需要独立部署。CAS客户端负责处理受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS服务端进行认证cas 的登陆流程如图Ticket Grangting Ticket(TGT):TGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。用户在CAS.
2020-06-10 19:19:19
1265
原创 cas5.3.14一
CAS是成熟的单点登录框架之一,官网地址https://www.apereo.org/projects/cas/。github地址https://github.com/apereo/cas。CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。耶鲁大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。一:下载cas推荐下载使用WAR Overlay Installation 方式部署使用,什么是overlay,官网说明h
2020-06-10 17:28:38
647
原创 时间工具类
import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.commons.lang3.time.DateUtils;import java.text...
2020-03-27 21:09:15
122
原创 Spark源码编译与导入IDEA调试
最近闲来,下载了spark源码编译调试一下,看看最新的东西。。。一、下载源码地址:http://spark.apache.org/downloads.html 选择源码包下载 https://archive.apache.org/dist/spark/spark-2.3.1/spark-2.3.1.tgz二、环境准备1、一个Linux系统环境2、在Linux系统上安装J...
2018-08-16 17:17:04
1373
2
转载 SparkStreaming如何优雅的停止服务
我们都知道SparkStreaming程序是一个长服务,一旦运转起来不会轻易停掉,那么如果我们想要停掉正在运行的程序应该怎么做呢?如果运行的是spark on yarn模式直接使用yarn application -kill taskId暴力停掉sparkstreaming是有可能出现问题的,比如你的数据源是kafka,已经加载了一批数据到sparkstreaming中正在处
2018-01-02 19:35:36
480
转载 spark log4j.properties配置详解与实例
################################################################################ #①配置根Logger,其语法为: # #log4j.rootLogger = [level],appenderName,appenderName2,... #level是日志记录的优先级,分为OFF,TRACE,DEBU
2017-12-26 10:15:56
1138
原创 parallelize中指定partition个数的详解
val rdd = sc.parallelize(List(1,2,3,4,5,6,7),3)生成RDD的时候,RDD中的partition是如何决定的def parallelize[T: ClassTag]( seq: Seq[T], numSlices: Int = defaultParallelism): RDD[T]
2017-11-20 10:35:39
2443
原创 决策树
0. 机器学习中分类和预测算法的评估:准确率速度强壮行可规模性可解释性1. 什么是决策树/判定树(decision tree)? 判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。
2017-11-10 15:20:42
400
转载 Spark sc.textFile(...).map(...).count() 执行完整流程
Transform 和Action的来源一般刚接触Spark 的同学,都会被告知这两个概念。Transform就是RDD的转换,从一个RDD转化到另一个RDD(也有多个的情况)。 Action则是出发实际的执行动作。标题中的map就是一个典型的tansform操作,看源码,无非就是从当前的RDD构建了一个新的MapPartitionsRDDdef map[U: ClassT
2017-11-10 14:42:20
514
转载 Tachyon:Spark生态系统中的分布式内存文件系统
Tachyon是Spark生态系统内快速崛起的一个新项目。 本质上, Tachyon是个分布式的内存文件系统, 它在减轻Spark内存压力的同时,也赋予了Spark内存快速大量数据读写的能力。Tachyon把内存存储的功能从Spark中分离出来, 使Spark可以更专注计算的本身, 以求通过更细的分工达到更高的执行效率。 本文将先向读者介绍Tachyon在Spark生态系统中的使用, 也将分享百度
2017-11-10 10:07:32
210
转载 spark结构化数据处理:Spark SQL、DataFrame和Dataset
本文讲解Spark的结构化数据处理,主要包括:Spark SQL、DataFrame、Dataset以及Spark SQL服务等相关内容。本文主要讲解Spark 1.6.x的结构化数据处理相关东东,但因Spark发展迅速(本文的写作时值Spark 1.6.2发布之际,并且Spark 2.0的预览版本也已发布许久),因此请随时关注Spark SQL官方文档以了解最新信息。文中使用Scala对
2017-11-08 10:52:47
1583
转载 mysql索引总结----mysql 索引类型以及创建
关于MySQL索引的好处,如果正确合理设计并且使用索引的mysql是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR
2017-08-31 09:19:31
194
转载 MySQL5.7 linux二进制安装
介绍MySQL5.7出来也有大半年了,业内也一直在宣传5.7有多么的N,官网的也是宣传5.7有好几倍的速度的提升包括在语法方面更多的支持、JOSN、并行复制等;但是一直期待的线程池还是没有在5.7中出现有点遗憾。忍不住也下载一个来玩玩,mysql5.7的安装相对于5.6还是有点区别,本章主要介绍二进制的安装方法。环境:centos6.7,mysql5.7.12 安装
2017-08-23 16:10:20
239
转载 CentOS6.4离线安装mysql5.6.22
我们前面已经记录过一篇Linux系统有网的情况下在线安装的情况。CentOS6.4安装mysql5.6.14有一种情况是 linux系统没外网,但是需要安装MySQL,这种情况的话 我们需要把包用其他有外网的机子下载下来传到无外网的linux系统中安装。详细步骤记录如下:下载MySQL 安装包1)http://dev.mysq
2017-07-08 14:43:16
356
转载 Ambari系列(一):在离线环境中自动化安装Hadoop集群
机器部署:cluster-01 : yum servercluster-02:MySQL server,ambari server 安装思路:在生产环境中,应该是没有外网链接的环境,或者做了外网隔离,因此在离线环境下搭建集群很有价值。在内网集群中搭建yum服务器,安装ambari和集群,是一种比较好的解决思路。 安装步骤:搭建Yu
2017-07-07 08:29:36
614
原创 Android Studio Error:Connection timed out: connect.解决方案
遇到了这样的错误:Error:Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle 错误发生在构建Gradle的过程中正在下载gradle.zip文件的时候,估计应该是访问地址被墙了
2017-06-23 14:30:44
940
原创 zookeeper安装
1.什么是zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供
2017-06-21 14:24:08
197
转载 Sqoop-1.4.6安装部署及详细使用介绍
之所以选择Sqoop1是因为Sqoop2目前问题太多。无法正常使用,综合比较后选择Sqoop1。Sqoop1安装配置比较简单一、安装部署(1)、下载地址:http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.5.2.tar.gz解压到/opt/cdh5/sqoop(2)、拷贝MySQL的jdbc驱动包
2017-06-21 14:20:57
272
原创 Storm安装
下载稳定版本的storm,然后解压将其拷贝到/usr/lib/storm目录:$ wget https://github.com/downloads/nathanmarz/storm/storm-0.8.1.zip$ unzip storm-0.8.1.zip $ mv storm-0.8.1 /usr/lib/storm接下来,配置环境变量:export STO
2017-06-21 14:16:52
232
转载 HBase介绍、搭建、环境、安装部署
hadoop培训课程:HBase介绍、搭建、环境、安装部署1、搭建环境部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者
2017-06-19 08:36:16
427
转载 Flume架构以及应用介绍
在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出我们本文的主角—Flume。本文将围绕Flume的架构、Flume的应用(日志采集)进行详细的介绍。 (一)Flume架构介绍 1、Flume的概念 flume是分布式的日
2017-06-14 09:01:09
355
转载 Hive 2.1.1安装配置
前期工作安装JDK安装Hadoop安装MySQL安装Hive下载Hive安装包可以从 Apache 其中一个镜像站点中下载最新稳定版的 Hive, apache-hive-2.1.1-bin.tar.gz。解压安装Hive使用以下命令安装 Hive:sudo mv apache-hive-2.1.1-bin.tar.gz /optcd /optsudo ta
2017-05-24 16:19:59
1201
转载 MySQL5.7安装与配置(YUM)
安装环境:CentOS7 64位,MySQL5.71、配置YUM源在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ # 下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2017-05-24 15:29:39
241
转载 ActiveMQ 即时通讯服务 浅析
一、 概述与介绍ActiveMQ 是Apache出品,最流行的、功能强大的即时通讯和集成模式的开源服务器。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。提供客户端支持跨语言和协议,带有易于在充分支持JMS 1.1和1.4使用J2EE企业集成模式和许多先进的功能。二、 特性1、 多种语言和协议编写客户端。语言:
2017-04-26 09:05:32
465
原创 Ajax技术简介及使用
AJax (Asynchronous JavaScript And Xml)即异步的JavaScript 和 XML是指一种创建交互式网页应用的网页开发技术是一种独立于Web服务器软件的浏览器技术用一句话总结就是:从浏览器端使用异步的方式发送请求,请求服务器并获得资源的技术AJAX不是一种新的编程语言,而是一种用于创建更好(Better)更快(Faster)以及交互性更强(U
2017-03-30 22:18:13
342
原创 ButterKnife点击事件无效或控件绑定为空
出现ButterKnife无效的原因就是在ButterKnife从7.x到8.x后,运行时和编译器被分开来所以在引入时我们还需要引入编译包引入步骤:1、在项目的build.gradle文件中引入buildscript { repositories { jcenter() } dependencies { classpath
2017-03-23 10:34:58
2469
原创 Android Studio SVN 使用方法
Android Studio SVN 使用方法如何安装配置SVN请直接参考《SVN在Android Studio中的配置》http://www.cnblogs.com/songmeng/p/4389446.html如何使用SVN本文主要参考了《AndroidStudio配置SVN以及使用代码管理》http://www.it165.net/pro/html
2017-03-22 18:34:52
690
原创 getMeasuredHeight() 和 getHeight()的区别
在Android中要经常获取控件的宽高,那么久要经常用到getMeasuredHeight()和getHeight(),那么他俩到底有什么区别呢?getMeasuredHeight() 顾名思义,就是获取控件测量后的高度,就是控件的实际高度getHeight()是控件显示在屏幕上的高度,当控件能够在屏幕中显示完全时,二者是相等的,当控件在屏幕中显示不完全时,那么getMeasuredH
2017-03-21 10:01:28
1162
原创 Android全屏设置
在Android中设置全屏的方式有两种,一种是在清单文件中配置,一种是在代码中设置在清单文件中配置如下: <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"
2017-03-20 11:44:37
366
Neo4j权威指南
2018-06-30
Spark快速大数据分析.pdf 中文版
2017-09-25
org.eclipse.paho.client.mqttv3-1.0.1.jar
2017-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人