`
文章列表
  在virtualbox中安装多台centos虚拟机,每次重启虚拟机都要查看本机的IP,尤其是在集群的环境下,重启虚拟机或者重启电脑都要重新修改集群配置或者是hosts配置,因此我们需要设置固定IP来节省这种麻烦。下面我们来设置固定IP.第一步:在virtualbox中,管理(或者工具)——》全局设定——》网络——》中,添加一个NAT网络:     第二步:在virtulabox中,管理——》主机网络管理——》创建,添加host-only.     第三步:在安装好的centos虚拟机中点击设置(这里以我的zknode1为例):设置——》网络——》添加网卡1和网卡2,分 ...

ThreadLocal源码阅读

    博客分类:
  • java
1.作用: ThreadLocal是线程本地存储,ThreadLocal为变量在每个线程中都创建了一个副本,每个线程都可以访问自己内部的副本变量。   2.原理:   private final int threadLocalHashCode = nextHashCode(); private static AtomicInteger nextHashCode = new AtomicInteger(); private static final int HASH_INCREMENT = 0x61c88647; private static int ...
状态模式涉及到的类有: 1.上下文,拥有一个或多个状态类实例,对客户端暴露接口; 2.状态接口,封装具体状态类所对应的行为; 3.具体状态类,真正实现状态行为。 状态模式允许一个对象在其内部状态改变的时候改变其行为。 类图如下   代码示例: 先看一下之前同事写的代码: @Override public List<DrlTypeDTO> getDrlOperationDTO(String typeId) { List<Operation> list = Operation.list; List<Operation> op ...
需求: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 分析: 1.将当前结点初始化为返回列表的哑结点(要对头结点进行操作时,考虑创建哑节点dummy,使用dummy->next表示真正的头节点。这样可以避免处理头节点为空的边界问题) 2.将进位 carry 初始化为 ...

两数之和

需求:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]我的答案(暴力解决法): class Solution { public int[] twoSum(int[] nums, int target) { int[] ret = new int[2]; for(int i ...

知识图谱基础

##一、什么是知识图谱? 解释一:知识图谱本质上是语义网络,本体论是语义网络一个最为重要的要素 解释二:知识图谱也叫多关系图,由多种类型的节点和多种类型的边来组成 解释三:百度百科解释: 知识图谱是通过将 ...
在工作中,不管是前后端分离,还是微服务,还是其他方式的接口的调用,都需要编写和维护接口文档。Swagger可以帮助我们更好的编写和维护API文档,提供Restful风格的API,提供的maven依赖可以更好的集成在spring项目中。 springboot使用swagger超级简单: 1.添加maven依赖:   <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> &l ...
###1.什么是XSS攻击 XSS攻击全称是跨站脚本攻击,是经常出现在web应用中的安全漏洞,它允许恶意web用户将代码植入到页面中,比如:sql脚本,srcipt脚本,或者html代码。 黑客界共识是:跨站脚本攻击是新型的缓冲区溢出攻击。 例如:在页面输入一个转账的sql或者js脚本,然后发给后台,后台接收浏览器参数,没有任何校验,接着执行了该脚本,造成数据被篡改。 ###2.如何防御XSS攻击 我的项目是springboot项目,要防御XSS攻击只需要增加一个filter,然后在filter中包装http请求。 Talk is cheap,show me the code! ...

搞懂https

最近应公司安全组的要求,所有系统对外请求方式由http方式改为https方式,因为https请求方式对数据进行了加密,http请求方式没有,显然https请求方式是安全的。但是https如何保证数据在网络传输的时候是安全的呢?项目中如何配置改造呢?我们需要了解一下加密算法和数字证书的概念。 ###1.对称加密 服务器端生成密钥,然后把密钥发送给客户端,服务端给客户端发送数据时,使用密钥将数据加密传给客户端,客户端收到数据后使用密钥进行解密。如下图:     同理:客户端使用参数向服务端请求数据时,先用密钥将参数加密,然后传给服务器,服务器收到数据后用密钥将数据解密。 缺点:密钥在 ...
  思路: 思路比较简单,使用两个栈,一个栈A负责入队,一个栈B负责出队,出队的时候,先判断栈B的元素是否为空,如果为空则将栈A的元素全部出栈放入栈B中,然后栈B元素出栈     代码: package com.buka.designer.statkqueue; import java.util.Stack; /** * 用栈实现队列 */ public class StackQueue { private Stack<Integer> stackA = new Stack<>(); private Stac ...
1.什么是模板设计模式定义:有一个抽象父类定义了模板方法,子类继承父类的方法,按照各自的需求来实现父类的方法。 2.类图: 3.示例: package com.buka.designer.template; /** 编程是门艺术,设计源于生活! */ public abstract class Ticket { //模板方法 public void buyTicket() { login(); selectTicket(); pay(); } publi

java对象的引用

    博客分类:
  • java
java 1.2后,java对引用的概念进行了扩充,分为:强引用、软引用、弱引用、虚引用。   强引用:就是在程序代码之中普遍存在的,类似Object obj = new Object();只要强引用还在,垃圾收集器永远不会回收掉被引用的对象。   软引用:用来描述一些还有用,但是并非必须的对象。对于软引用关联着的对象,在系统  将要  发生内存溢出异常之前,将会把这些对象列进回收范围之中,并进行第二次回收。SoftRefrence类实现软引用。   弱引用:也用来描述非必须对象,但是他的强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集之前。当垃圾收集器工作的时候, ...
在java垃圾收集器对堆内存进行回收之前,需要判断哪些对象还存活着,哪些对象已经死去。   一、引用计数算法         在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器值都为0的对象就是不可能再被使用的对象,该对象会被GC收集。 缺点:java中没有使用引用计数算法,原因是对象之间的循环引用很难解决。   二、根搜索算法         根搜索算法的基本思路为:通过一系列的名为“GC Roots”的对象作为起始点,从起始点开始向下搜索,搜索走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时, ...

JPA主键策略

      在讲主键策略之前首先简单介绍一下JPA。       JPA是一种java规范,而不是一种框架,而是一个ORM规范。JPA可以支持多种ORM框架,例如:hibernate,OpenJPA,TopLink,EclipseJPA等。JPA只是提供了统一的规范接口,最终实现由各个数据库厂商来实现。这样设计的目的是为了解决项目中切换ORM框架,数据库连接等所造成的成本。          我们在用JPA开发的时候,经常会在实体类的ID加上@GeneratedValue注解,用于生成表的主键。 例如: @Id @GeneratedValue(strategy = Generat ...
Storm计算模型是一个DAG的计算模型,而且Storm是把DAG和流式计算结合起来。 在Storm的DAG模型里面,最关键的点是Topology,Topology是Storm计算模型DAG的一个体现,也是Storm里面DAG的实现。DAG是一个有向无环图结构。   一个Topology和一个job相似,是一个app的打包运行实例,Topology会被提交到Storm平台上去运行,Storm上跑的是一个一个的Topology。Topology的生命周期是永远不会结束的,只有在运行kill命令时才会结束。 在Topology里面有spout,bolt,tuple,stream,group ...
Global site tag (gtag.js) - Google Analytics