自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (6)
  • 收藏
  • 关注

原创 Centos7 安装Redis

Centos7 使用yum 安装Redis安装最新的redis需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm然后可以是使用下面的命令安装最新版的redis:yum --enablerepo=remi install redis启动redis:# 启动redissystemctl start re

2021-02-25 14:29:28 183 1

原创 Spring Boot 将web项目打包成jar运行

1. 在src/main文件夹下创建webapp文件夹,将前端源码放入webapp下(并将webapp文件夹exclude掉,避免idea无法加载项目)2. pom添加以下代码,使用maven管理前端项目 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</ar

2020-06-23 09:12:57 780

原创 ThoughtWorks HomeWork

记ThoughtWorks一道HomeWorkThe local commuter railroad services a number of towns in Kiwiland.  Because of monetary concerns, all of the tracks are 'one-way.'  That is, a route from Kaitaia to Invercargil...

2018-03-12 15:03:11 4485 2

原创 java学习笔记

1.相同对象的hashcode一定相同,但相同的hashcode不一定是相同的对象。 2.深复制和浅复制 浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用任然指向原来的对象,浅复制仅仅考虑复制的对象,不复制它所引用的对象。 深复制:被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他对象的变量,那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的

2017-04-25 10:48:39 606

原创 类加载全过程

JVM判断并装载类的过程 类从.java文件到实际加载到内存的过程: .java文件 -> 通过你的JDK环境相关指令编译 -> .class文件 -> JVM初始化之后,如果有类的执行、调用等相关操作,JVM就会将.class文件加载到内存中,并开始下面的一系列处理:(链接->初始化)一.关于ClassLoderClassLoader是Java用于加载类的一个机制。等到程序运行时,JVM先初始

2017-04-25 10:43:39 289

原创 npm搭建React项目

要想使用npm,首先安装node.js一.安装全局包$ npm install babel -g$ npm install webpack -g$ npm install webpack-dev-server -g二.创建根目录创建一个根目录,目录名为:myApp,再使用npm init初始化,生成package.json文件:$ mkdir myApp$ cd myApp/$ npm in

2017-04-24 14:05:18 18130 5

原创 JVM虚拟机工作原理

一,类加载器 1.层级结构 类加载器被组织成一种层级结构关系,也就是父子关系,其中,BootStrap是所有类加载器的父类,如下图所示: BootStrap classloader 当运行java虚拟机时,这个类加载器被创建,它加载一些基本的java API,包括Object这个类,需要注意的是,这个类加载器不是java语言写的,而是C/C++语言写的 Extension classloa

2017-04-19 17:13:08 447

原创 单例模式

概念:   java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。   单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。   单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日

2017-04-19 10:28:02 246

原创 【Netty第二章】 第一个Netty程序

2.1 开发环境配置安装jdk7 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载Netty包 下载地址:http://netty.io/ Maven依赖地址 <dependency> <groupId>io.netty</groupId> <artifactId>netty-al

2017-04-19 10:24:41 296

原创 【Netty第一章】 Netty介绍

Netty介绍Netty是基于Java NIO的网络应用框架,是一个NIO Client-Server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty是完全基于NIO实现的,所以整个Netty都是异步的。 1.1 为什么使用NettyDavid John Wheeler说过”在计算机科学中的所有问题都可以通过间接的方法解决“。作为一个NIO Client-

2017-04-18 20:28:06 336

原创 Java多线程源码

单线程程序public static void main(String args[]) { System.out.println("输出从1到100的数:"); for (int i = 0; i < 100; i ++) { System.out.println(i + 1); }}线程的创建和使用class ThreadA implements Runnable

2017-04-18 14:33:38 389

原创 java集合

1.java集合框架是什么?说出一些集合框架的优点java包含集合类:Vector,Stack,HashTable和ArrayList。集合类的优点:使用核心集合类降低开发成本,而非实现我们自己的集合类随着使用经过严格测试的集合框架类,代码质量会得到提高通过使用JDK附带的集合类,可以降低代码维护成本复用性和可操作性2.集合框架中的泛型有什么优点?泛型允许我们为集合

2017-04-18 14:33:24 278

原创 java笔记

1.相同对象的hashcode一定相同,但相同的hashcode不一定是相同的对象。2.深复制和浅复制浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用任然指向原来的对象,浅复制仅仅考虑复制的对象,不复制它所引用的对象。深复制:被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他对象的变量,那些引用其他对象的变量将指向被复制过的新对象,而不再是原有

2017-04-18 14:30:49 1262 1

原创 java虚拟机类加载机制

虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,java语言中,类型的加载和连接过程是在程序运行期间完成的。类的生命周期:加载 loading验证 verification准备 preparation解析 resolution初始化 initialization使用

2017-04-18 14:26:50 196

原创 java IO流

Java中的流,可以从不同的角度进行分类按流的方向分:输入流和输出流按处理数据单位分:字节流和字符流按实现功能分:节点流和处理流字符流和字节流的主要区别:1.字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节时,先去查指定的编码表,将查到的字符返回。2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频,而字符流只能处理字符数据,只要是纯文本数据,就要优

2017-04-18 14:25:20 179

原创 java设计模式

一.设计模式的分类总体来说设计模式分为三大类: 创建型模式:共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式 结构型模式:共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式 行为型模式:共十一种:策略模式,模版方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式 并发型模式和线程池模式

2017-04-18 14:21:56 203

原创 类加载全过程

JVM判断并装载类的过程类从.java文件到实际加载到内存的过程:.java文件 -> 通过你的JDK环境相关指令编译 -> .class文件 -> JVM初始化之后,如果有类的执行、调用等相关操作,JVM就会将.class文件加载到内存中,并开始下面的一系列处理:(链接->初始化)一.关于ClassLoderClassLoader是Java用于加载

2017-04-18 14:19:58 256

原创 JVM内存模型

程序计数器:多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程要有一个独立的程序计数器,记录下一条要运行的指令。线程私有的内存区域,如果执行的是Java方法,计数器记录正在执行的Java字节码地址,如果执行的是native方法,则计数器为空虚拟机栈:线程私有的,与线程在同一时间创建,管理Java方法执行的内存模型

2017-04-18 14:17:39 179

原创 Cookie与Session

Cookie Cookie是存储在客户端上的一小段数据,浏览器通过HTTP协议和服务器端进行Cookie交互 Cookie是HTTP头的一部分,即现发送或请求Cookie,才是data域 Cookie通常用来存储一些不是很敏感的信息,或者进行登录控制,也可用来记住用户名,记住免密码登录,防止刷票,一个域名的每个Cookie限制以4K字节键值对形式存储 Cook

2017-04-18 14:14:49 254

原创 ThreadLocal原理

什么是ThreadLocal ThreadLocal是一个线程内部的数据存储类,每一个线程都维护一个table[],通过get(),set()方法实现存取操作 只能在指定的线程中获取存储的数据,其他线程一般无法获取什么情况下使用ThreadLocal 当某些数据以线程为作用域并且不同线程具有不同的数据副本的时候 Handler要获取当前线程的Looper,Lo

2017-04-18 14:10:25 231

原创 JVM学习笔记

一.Java的内存模型 程序计数器:一块比较小的内存区域,指向当前所执行的字节码。如果线程正在执行一个Java方法,这个计数器记录正在执行的虚拟机字节码指令的地址,如果执行的是Native方法,这个计算器值为空。 Java虚拟机栈:线程私有的,其生命周期和线程一致,每个方法执行都创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。 本地方法栈:与虚拟机栈功能类似,只不过虚拟机栈

2017-04-18 14:06:55 218

原创 WebService工作流程

WebService是基于网络的、分布式的模块化组件。工作流程:客户端 ——>阅读WSDL文档(了解webservice的请求) ——> 调用WebService 上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给客户端,这和普通的http请求一样,请求->处理->响应,与普通的请求不一样的就是webservice请求中有一个WSDL文档和SOA

2017-04-18 12:24:25 5164

原创 Redis

Redis是线程安全的(因为是单线程),所有操作都是原子的,不会因并发产生数据异常Redis速度非常快(因为使用非阻塞式IO,大部分命令的算法时间复杂度是O(1))Redis采用-key-value型的基本数据结构不要使用过长的Key,不要过短,最大Key长度是512MB(Value最大长度也是512MB)String:Set:为一个Key设置ValueGet:

2017-04-18 12:23:40 450

原创 Spring笔记

Spring框架的7个模块核心容器:核心容器提供Spring框架的基本功能,主要组件是BeanFactory,是工厂模式的实现,BeanFactory使用控制反转模式将应用程序的配置和依赖性规范与实际应用程序代码分开Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息,Spring上下文包括企业服务,例如JNDI,EJB,电子邮件,国际化,校验和调

2017-04-18 12:06:47 493

转载 【高并发Java七】并发设计模式

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1. 什么是设计模式 2. 单例模式 3. 不变模式 4. Future模式 5. 生产者消费者

2017-03-02 13:33:17 482

转载 【高并发Java六】JDK并发包2

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1. 线程池的基本使用 2. 扩展和增强线程池 3. ForkJoin

2017-03-01 13:59:45 317

转载 【高并发Java五】JDK并发包1

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.各种同步控制工具的使用 2.并发容器及典型源码分析

2017-02-28 17:50:33 240

转载 【高并发Java四】无锁

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.无锁类的原理详解 2.无锁类的使用

2017-02-28 17:47:56 232

转载 【高并发Java三】Java内存模型和线程安全

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.原子性 2.有序性 3.可见性 4.Happen-Before 5.线程安全的概念

2017-02-28 17:44:53 296

转载 JAVA虚拟机

一、Java虚拟机的生命周期:  Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main

2017-02-28 15:24:37 250

转载 【高并发java二】多线程基础

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍 1.什么是线程 2.线程的基本操作 3.守护线程 4.线程优先级 5.基本的线程同步操作

2017-02-28 15:15:10 209

转载 【高并发Java一】前言

1、关于高并发的几个重要概念 1.1 同步和异步 首先这里说的同步和异步是指函数/方法调用方面。 很明显,同步调用会等待方法的返回,异步调用会瞬间返回,但是异步调用瞬间返回并不代表你的任务就完成了,他会在后台起个线程继续进行任务。 1.2 并发和并行 并发和并行在外在表象来说,是差不多的。由图所示,并行则是两个任务同时进行,而并发呢,则是一会做一个任务一

2017-02-28 15:05:51 179

原创 java学习笔记

java多线程编程进程和线程Java给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的

2016-06-28 10:11:12 254

redis sentinel api脚本

Redis Sentinel 主从部署 使用Python脚本获取Redis主从节点信息

2019-04-25

区块链是个什么鬼(PDF)

区块链行业资深从业人员,通过自己多年行业经验,深度剖析区块链的前世今生和未来,让你从零开始了解区块链。

2018-03-17

Netty In Action中文版

Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提 供了一种新的方式来使开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。Netty的内部实现时很复杂的,但 是Netty提供了简单易用的api从网络处理代码中解耦业务逻辑。Netty是完全基于NIO实现的,所以整个Netty都是异步的。

2018-02-26

webpack-dashboard打包可视化插件

webpack是目前前端主流打包框架,打包界面比较原始,可读性不强,使用webpack-dashboard插件打包可以使打包界面可视化,就像是nasa工作人员在工作时的界面。

2017-12-27

redux官方源码完整版下载

redux是javascript前端框架,与react结合可以更好的帮助react管理数据流,也可以单独作为组件库被其他前端框架引用

2017-12-27

react官方源码完整版下载

javascript前端框架,react Facebook官方源码,通过查看源码分析react生命周期,每个钩子函数执行时机。

2017-12-27

空空如也

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

TA关注的人

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