- 博客(92)
- 收藏
- 关注
原创 面试笔记01
类加载1.类加载step:加载,链接(校验,准备,解析),初始化,使用,卸载。(1)加载:加载class文件(获取class的二进制流文件,加载到JVM中,内存生成一个class对象表示该类)(2)校验:校验是否符合JVM合法性(class文件规范,语义验证:是否继承final,是否实现抽象方法)(3)准备:为class分配内存空间。设置static成员变量初始值为默认值,int为0,对象为null,但如果是final static 该阶段会之间进行赋值,因为同时被final和static修饰的成
2020-12-17 10:01:46 265
原创 Keberos安全认证学习
因为,最近要做大数据组件的安全认证,需要涉及到kerberos这个组件,记录相关资料,后续查看。Kerberos 是一种网络认证协议,它采用了传统的共享密钥的方式,实现了在网络环境不一定保证安全的环境下,client和server之间的通信,适用于client/server模型。用户只需输入一次身份验证信息,就可凭借此验证获得的票据授予票据(ticket-granting ticket)访问多...
2019-05-07 17:14:07 1469
原创 线程安全与非安全基本概念
关于线程和线程不安全:在并发编程的时候,多少都会涉及到线程安全的问题,但是一直对这些概念没有彻透彻底的弄懂,今天看了一篇博文讲的很很好,再次转载,记录下来自己学习,参考链接:https://www.cnblogs.com/xingzc/p/6277581.html概述如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样...
2019-04-15 11:15:30 2926
原创 ES Meta信息
ES MetaMeta是用来描述数据的数据,在ES中,Index的mapping结构,配置,持久化状态等就属于meta信息;集群的一些配置信息也属于meta。这个meta信息非常重要,如果某个index的meta信息丢失了,那么集群就认为这个index不再存在了。ES中的meta数据只能由master进行更新,master想当于集群的大脑。Es meta主要包括:ClusterMeta...
2019-04-02 11:41:03 1406
原创 Hbase Meta表基本介绍
Hbase有一个叫做Meta的特殊的目录表,用于保存集群中regions的位置信息(region列表)。ZooKeeper存储着Meta表的位置。Hbase Meta结构如下:具体含义:rowKey:([table],[region start key],[region id])column family:infocolumn:regioninfo、server、se...
2019-04-01 20:41:18 7557
原创 LRUCache缓存实现
LRU原理:LRU(Leastrecentlyused,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现:最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1.新数据插入到链表头部;2.每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3.当链表满的时候,将链表尾部的数...
2019-03-29 18:11:44 839
原创 Java线程池笔记
Java线程池在代码开发中使用线程池,主要能带来三个好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务可以不需要等到线程创建,能够立即运行; 提高线程的可管理性。线程是稀缺资源,如果无限创建线程,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。注:当线程请求的栈容量超过栈允许的最大容量的话,J...
2019-03-25 11:10:16 485
原创 Isolation-forest异常检测算法学习
参考地址:https://www.cnblogs.com/wzyj/p/9696357.html https://www.cnblogs.com/wzyj/p/9696357.html
2019-03-22 14:43:07 309
原创 Hbase读写流程简要分析
Hbase基本概念:HBase使用LSM(Log-Structured Merge Tree日志结构合并树)树,用于为那些长期具有很高记录更新(插入或删除)频率的文件提供低成本的索引机制。LSM-Tree通过使用某种算法对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式联合使用一个基于内存的组件和一个或多个磁盘组件。与传统访问方式(比如B+树)相比,该算法大大减少了磁盘磁臂的移动...
2019-03-20 10:50:02 903
原创 JVM类加载笔记
参考博文:https://www.cnblogs.com/jswang/p/7699643.html http://www.importnew.com/25295.htmlJVM类加载过程一个类运行分为以下几步:装载、链接、初始化;装载:通过类的完全限定名,产生一个代表该类型的二进制数据流; 解析这个二进制数据流为方法区的内部结构; 构建一...
2019-03-07 11:01:28 239
原创 Java内存模型笔记
参考博文:https://www.cnblogs.com/lewis0077/p/5143268.htmlJava运行时数据区分为以下几个内存区域: PC寄存器/程序计数器: 用于保存当前正在执行的程序的内存地址,为了线程切换后能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器,各个线程之间计数器互不影响,独立存储; Java栈: 每当创建一个线程,JV...
2019-03-05 16:57:08 219
原创 Java GC笔记
1.在新生代中,常规的应用进行一次垃圾收集(采用的是标记-复制算法),一般可以回收70~90%的空间,而永生代的垃圾收集效率远低于此;2.永久代的垃圾回收主要回收两个部分;1)废弃常量:与回收java堆中的对象非常相似,eg:一个字符串“abc”已经进入常量池中,但是当前没有任何String对象引用常量池中的"abc"常量,就会被诶清理。;2)无用的类:常量池中的其他类,方法,字段的符号引...
2019-02-27 15:29:51 205
原创 事件驱动模型简单实现学习
简单的实际驱动模型,就是监听文件发生变化,将添加的数据写入到数据库中,具体细节没有实现,仅仅实现框架事件源:package event1;import java.util.HashSet;import java.util.Set;import java.util.concurrent.ExecutorService;import java.util.concurrent....
2018-08-29 17:13:40 1078
原创 json解析实体类
多层json解析实体类样例:主类:package JsonPOJO;import java.util.List;public class JsonObject { private List<Nodes> nodes ; private List<Links> links ; public void setNodes(List...
2018-07-30 19:50:11 1238
原创 json写csv文件
JSON转换为CSV文件代码,参考w417204446的博客代码实现的,稍微改了下参考博客:https://blog.csdn.net/w417204446/article/details/53202039依赖用到: <dependency> <groupId>com.alibaba</groupId> ...
2018-07-30 14:16:44 1466
原创 es学习链接
记录一些es学习链接:https://www.elastic.co/guide/en/elasticsearch/reference/6.1/date-math-index-names.htmlhttps://www.elastic.co/blog/managing-time-based-indices-efficientlyhttps://www.cnblogs.com/jiu082...
2018-06-13 11:09:10 503
原创 Elasticsreach--Doc Values 和FieldData应用
Doc Values :在Elasticsearch中,检索时使用的是倒排索引,即一个词找到对应的文档列表映射;倒排索引能够快速查找包含某项的文档,但是对于聚合排序的操作并不高效。在聚合排序操作时,通过在倒排索引基础上建立的正排索引数据结构来完成,即一个文档到词的列表映射,正排索引就是列式存储,它在数据字段的一列存储所有value,在排序聚合操作上回表现的更加高效,在es中被称为doc_v...
2018-03-24 11:29:51 802
原创 Java 同步锁
主要理清锁的使用和本质锁的是什么: synchronized:synchronized是java中的一个关键字,在JVM层面上实现的,使用时不需要管理锁的获取和释放。(synchronized发生异常时,会自动释放线程占有的锁)直接上代码:public class SynchronziedTest implements Runnable{ //非静态属性 private ...
2018-03-23 16:57:14 750
原创 Elasticsearch---启动初始化源码学习
Elasticsearch整个大致流程:从Elastcisearch类的main方法入口,然后调用了BootStrap类的中的init方法,该方法会对环境和配置进行一系列的检测和初始化,其中最为主要的两个方法就是setup方法和start方法,setup的方法通过ModulesBuilder采用gucie进行不同模块的注入,start方法进行启动(keepAliveThread和node中的模块)...
2018-03-22 15:40:45 744
原创 简单的wordcout的MapReduce学习实现
package com.hadoop.wordcount;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.h
2016-10-08 19:37:34 874 1
原创 阻塞队列实现--生产消费模型
生产消费模型是多线程安全的典型例子,当初实现的时候使用的是一个数组或者队列,加上synchronized关键字,代码量比较多,后来学习了阻塞队列,发现使用阻塞队列来实现代码简洁不少,这样在面试的时候,面试官需要你实现一个生产消费模型也会好写一些,下面我给出原始和阻塞队列实现的代码供参考:1.原始实现package Concurrent;import java.util.Priority
2016-10-06 11:30:59 783
转载 数字证书https通信过程
文章转自:http://www.cnblogs.com/jhj117/p/5601585.html 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方
2016-08-30 14:08:22 2315
原创 Lock及ReentrantReadWriteLock学习
参考网上的一个demo,进一步学习了解Java中的Lock使用,demo来自:http://blog.csdn.net/huang_xw/article/details/7090177废话不多说,直接上代码,注释写的很详细:package lock;import java.util.concurrent.ExecutionException;import java.util.conc
2016-08-29 14:37:56 601
转载 Zookeeper入门学习
简介Apache Zookeeper是由 Apache Hadoop的 Zookeeper子项目发展而来,现在已经成为了 Apache的顶级项目。Zookeeper为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。 Zookeeper接口简单,开发人员不必过多地纠结在分布式系统编程难于处理的同
2016-08-27 11:39:30 1466
原创 Apache Mina
初步接触RPC通信框架,目前有很多优秀的RPC框架,今天我参考该博文:http://www.cnblogs.com/xuekyo/archive/2013/03/06/2945826.html 学习了Aapche Mina通信框架。博主介绍的非常详细,包括Mina的源码流程,这里通过阅读博主的文章进行了学习记录,方便以后需要时使用。Apache Mina 是一个网络应用程序框架,用来帮助用户简
2016-08-26 11:05:37 3283
原创 KMP算法的实现
KMP算法主要就是next数组的计算,核心就是利用已经匹配的字符串,不向暴力算法那样,要重头开始比较,具体理论参考这篇博文:http://blog.csdn.net/u012532559/article/details/44464441下面就是实现代码:public class TestKMP { public static void main(String[] args) { S
2016-08-24 15:43:06 622
转载 Nginx 安全加固心得
在此转载一篇关于Nginx安全加固的文章,本人没有这方面的经验,就参阅了别人的文章,对于Nginx安全加固可以有效提高Web应用的安全性能,博文地址:http://purplegrape.blog.51cto.com/1330104/1651656/nginx发展多年,自身的安全漏洞比较少,发现软件漏洞,一般利用软件包管理器升级一下就好了。本文侧重讲述的不是nginx自身的安全
2016-08-24 14:05:41 15002
原创 Nginx的静态资源缓存以及压缩
Nginx是一款轻量级的网页服务器、反向代理器以及电子邮件代理服务器。Nginx采用的是异步非阻塞的通信机制(epoll模型),支持更大的并发连接.所谓的epoll模型:当事件没有准备好时,就放入epoll(队列)里面。如果有事件准备好了,那么就去处 理;如果事件返回的是EAGAIN,那么继续将其放入epoll里面。从而,只要有事件准备好了,我们就去处理它,只有当所有事件都没有准备好时,才在 ep
2016-08-22 19:18:08 24554 1
转载 Nginx学习
这里参考了该篇博文http://www.cnblogs.com/kreo/p/4217446.html 对Nginx的配置学习,写的很好很详细:Nginx配置性能优化:我们将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置。你应该能够在服务器的/etc/nginx目录中找到nginx.conf。首先,我们将谈论一些全局设置,然后按文件中的模块挨个来,谈一下
2016-08-19 11:13:07 704
原创 Spring框架中的Quartz学习使用
Spring框架中的Quartz使用:首先简单介绍下Quartz,它是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,相当于java.util.Timer,但是比Timer多了很多的功能:1.持久性作业,就是保持调度定时的状态;2.作业管理,对调度作业进行有效的管理;3.类Corn的定时支持,可以用Corn的方式来执行作业;4
2016-08-13 14:00:50 4972 1
原创 java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationC
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml] at org.springframework.web.context.support.ServletContextResource.getInputSt
2016-08-12 10:22:26 6882
原创 学习JDK与CGLib两种动态代理机制
前些天学习Spring注入时候,当实现类实现了接口类时,注入bean就是接口类,否则会报错;相反如果没有实现接口的接口类,注入的就是实例类对象,于是对此问题便产生了些疑惑。我们都知道Srping的bean注入就是通过反射机制以及动态代理实现的,而Spring是怎么实现两种情况的bean注入呢。后来通过资料和源码可知,是采用了两种动态代理机制:Spring AOP中,当拦截对象实现了接口时,生成方式
2016-08-10 16:47:51 849
原创 struts2的核心机制学习
之前写过一篇关于struts2的工作流程的博文因为本人能力又想而且第一次写可能写的比较乱、不好懂,希望大家可以原谅。这次打算再次深入学习struts2的核心机制,更细化struts2的理解。首先还是给出struts2的工作流程,这里个人选择了网上博文讲的比较正统的: 1、客户端请求一个HttpServletRequest的请求,如在浏览器中输入URL就是提交一个(Ht
2016-08-10 10:00:06 1209
原创 NIO通信学习
今天在学jetty时,发现jetty是采用非阻塞I/O进行通信的,之前对NIO是一头雾水,很不理解,今天再次学习NIO通信,这部分也算Java中的重点难点部分,不能一下子全掌握,就今天学习内容进行各总结:java Nio 通信与Bio通信主要不同点:1.Nio中的单个channel即可支持读操作也可以支持写操作,而bio中读操作要用inputstream,写操作要outputstr
2016-08-09 16:47:44 845
原创 个人用hibernate写的通用Dao
import java.io.Serializable;import java.util.List;import com.ssh.common.Order;//使用泛型,重用性更高public interface IBaseDao{ //保存对象 Serializable save(T t); void saveOrUpdate(T t); //删,根据对象 vo
2016-08-04 11:19:27 3112
转载 转发别处的博客关于TCP/IP协议的拥塞控制机制,讲的很好分享下
TCP拥塞控制机制 转载来自(http://blog.sina.com.cn/windmoonlitpig) 研究TCP的拥塞机制,不仅仅是想了解TCP如何的精巧,更多的是领悟其设计思想,即在一般情况下,我们该怎样处理问题。 一.拥塞的发生与其不可避免 拥塞发生的主要原因在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。由于互联
2016-07-27 14:39:00 708
原创 基于Java代码实现证书生成
前阵子学习了Apache的openssl生成签名证书,通过一个简单的Web项目实现的,框架使用的是: struts2+spring+hibernate maven工程1. 包结构:2. Pojo(证书文件):public class ServerCSR { private String countryName; private String pr
2016-07-26 17:22:26 7313
原创 学习排序算法
把目前学习的排序算法记下来,方便以后复习package Sort;public class SimpleSort { public static void main(String[] args) { int[] a={3,2,5,4,1}; //System.out.println(a.length); sort(a);
2016-07-20 21:11:27 468
原创 ForkJoinTask以及实现callable接口创建线程的学习
package ssl;import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Future;import java.util.concurrent.RecursiveTask;//要实现
2016-07-19 17:22:29 944
原创 Struts2工作流程个人解析
前面稍微学习了下Strust2基本使用,对Struts2的工作流程以及底层源码完全不懂,今天打算把Struts2的工作流程好好的摸索一遍。 1.这是一张网上download的struts2工作流程图,对上图稍做解释:1.首先客户端/浏览器发送一个请求到服务器,即HttpServletRequest会经过一系列(Fliter)过滤器(ActionContextCleanUp该
2016-07-19 11:32:20 4038
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人