- 博客(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
231
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
882
原创 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
4579
原创 java学习笔记
1.相同对象的hashcode一定相同,但相同的hashcode不一定是相同的对象。 2.深复制和浅复制 浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用任然指向原来的对象,浅复制仅仅考虑复制的对象,不复制它所引用的对象。 深复制:被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他对象的变量,那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的
2017-04-25 10:48:39
682
原创 类加载全过程
JVM判断并装载类的过程 类从.java文件到实际加载到内存的过程: .java文件 -> 通过你的JDK环境相关指令编译 -> .class文件 -> JVM初始化之后,如果有类的执行、调用等相关操作,JVM就会将.class文件加载到内存中,并开始下面的一系列处理:(链接->初始化)一.关于ClassLoderClassLoader是Java用于加载类的一个机制。等到程序运行时,JVM先初始
2017-04-25 10:43:39
324
原创 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
18294
原创 JVM虚拟机工作原理
一,类加载器 1.层级结构 类加载器被组织成一种层级结构关系,也就是父子关系,其中,BootStrap是所有类加载器的父类,如下图所示: BootStrap classloader 当运行java虚拟机时,这个类加载器被创建,它加载一些基本的java API,包括Object这个类,需要注意的是,这个类加载器不是java语言写的,而是C/C++语言写的 Extension classloa
2017-04-19 17:13:08
492
原创 单例模式
概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日
2017-04-19 10:28:02
280
原创 【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
356
原创 【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
379
原创 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
433
原创 java集合
1.java集合框架是什么?说出一些集合框架的优点java包含集合类:Vector,Stack,HashTable和ArrayList。集合类的优点:使用核心集合类降低开发成本,而非实现我们自己的集合类随着使用经过严格测试的集合框架类,代码质量会得到提高通过使用JDK附带的集合类,可以降低代码维护成本复用性和可操作性2.集合框架中的泛型有什么优点?泛型允许我们为集合
2017-04-18 14:33:24
317
原创 java笔记
1.相同对象的hashcode一定相同,但相同的hashcode不一定是相同的对象。2.深复制和浅复制浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用任然指向原来的对象,浅复制仅仅考虑复制的对象,不复制它所引用的对象。深复制:被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他对象的变量,那些引用其他对象的变量将指向被复制过的新对象,而不再是原有
2017-04-18 14:30:49
1340
原创 java虚拟机类加载机制
虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,java语言中,类型的加载和连接过程是在程序运行期间完成的。类的生命周期:加载 loading验证 verification准备 preparation解析 resolution初始化 initialization使用
2017-04-18 14:26:50
233
原创 java IO流
Java中的流,可以从不同的角度进行分类按流的方向分:输入流和输出流按处理数据单位分:字节流和字符流按实现功能分:节点流和处理流字符流和字节流的主要区别:1.字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节时,先去查指定的编码表,将查到的字符返回。2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频,而字符流只能处理字符数据,只要是纯文本数据,就要优
2017-04-18 14:25:20
212
原创 java设计模式
一.设计模式的分类总体来说设计模式分为三大类: 创建型模式:共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式 结构型模式:共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式 行为型模式:共十一种:策略模式,模版方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式 并发型模式和线程池模式
2017-04-18 14:21:56
233
原创 类加载全过程
JVM判断并装载类的过程类从.java文件到实际加载到内存的过程:.java文件 -> 通过你的JDK环境相关指令编译 -> .class文件 -> JVM初始化之后,如果有类的执行、调用等相关操作,JVM就会将.class文件加载到内存中,并开始下面的一系列处理:(链接->初始化)一.关于ClassLoderClassLoader是Java用于加载
2017-04-18 14:19:58
296
原创 JVM内存模型
程序计数器:多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程要有一个独立的程序计数器,记录下一条要运行的指令。线程私有的内存区域,如果执行的是Java方法,计数器记录正在执行的Java字节码地址,如果执行的是native方法,则计数器为空虚拟机栈:线程私有的,与线程在同一时间创建,管理Java方法执行的内存模型
2017-04-18 14:17:39
232
原创 Cookie与Session
Cookie Cookie是存储在客户端上的一小段数据,浏览器通过HTTP协议和服务器端进行Cookie交互 Cookie是HTTP头的一部分,即现发送或请求Cookie,才是data域 Cookie通常用来存储一些不是很敏感的信息,或者进行登录控制,也可用来记住用户名,记住免密码登录,防止刷票,一个域名的每个Cookie限制以4K字节键值对形式存储 Cook
2017-04-18 14:14:49
291
原创 ThreadLocal原理
什么是ThreadLocal ThreadLocal是一个线程内部的数据存储类,每一个线程都维护一个table[],通过get(),set()方法实现存取操作 只能在指定的线程中获取存储的数据,其他线程一般无法获取什么情况下使用ThreadLocal 当某些数据以线程为作用域并且不同线程具有不同的数据副本的时候 Handler要获取当前线程的Looper,Lo
2017-04-18 14:10:25
262
原创 JVM学习笔记
一.Java的内存模型 程序计数器:一块比较小的内存区域,指向当前所执行的字节码。如果线程正在执行一个Java方法,这个计数器记录正在执行的虚拟机字节码指令的地址,如果执行的是Native方法,这个计算器值为空。 Java虚拟机栈:线程私有的,其生命周期和线程一致,每个方法执行都创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。 本地方法栈:与虚拟机栈功能类似,只不过虚拟机栈
2017-04-18 14:06:55
257
原创 WebService工作流程
WebService是基于网络的、分布式的模块化组件。工作流程:客户端 ——>阅读WSDL文档(了解webservice的请求) ——> 调用WebService 上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给客户端,这和普通的http请求一样,请求->处理->响应,与普通的请求不一样的就是webservice请求中有一个WSDL文档和SOA
2017-04-18 12:24:25
5300
原创 Redis
Redis是线程安全的(因为是单线程),所有操作都是原子的,不会因并发产生数据异常Redis速度非常快(因为使用非阻塞式IO,大部分命令的算法时间复杂度是O(1))Redis采用-key-value型的基本数据结构不要使用过长的Key,不要过短,最大Key长度是512MB(Value最大长度也是512MB)String:Set:为一个Key设置ValueGet:
2017-04-18 12:23:40
533
原创 Spring笔记
Spring框架的7个模块核心容器:核心容器提供Spring框架的基本功能,主要组件是BeanFactory,是工厂模式的实现,BeanFactory使用控制反转模式将应用程序的配置和依赖性规范与实际应用程序代码分开Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息,Spring上下文包括企业服务,例如JNDI,EJB,电子邮件,国际化,校验和调
2017-04-18 12:06:47
558
转载 【高并发Java七】并发设计模式
摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1. 什么是设计模式 2. 单例模式 3. 不变模式 4. Future模式 5. 生产者消费者
2017-03-02 13:33:17
519
转载 【高并发Java六】JDK并发包2
摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1. 线程池的基本使用 2. 扩展和增强线程池 3. ForkJoin
2017-03-01 13:59:45
350
转载 【高并发Java五】JDK并发包1
摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.各种同步控制工具的使用 2.并发容器及典型源码分析
2017-02-28 17:50:33
271
转载 【高并发Java四】无锁
摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.无锁类的原理详解 2.无锁类的使用
2017-02-28 17:47:56
266
转载 【高并发Java三】Java内存模型和线程安全
摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.原子性 2.有序性 3.可见性 4.Happen-Before 5.线程安全的概念
2017-02-28 17:44:53
327
转载 JAVA虚拟机
一、Java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main
2017-02-28 15:24:37
271
转载 【高并发java二】多线程基础
摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍 1.什么是线程 2.线程的基本操作 3.守护线程 4.线程优先级 5.基本的线程同步操作
2017-02-28 15:15:10
241
转载 【高并发Java一】前言
1、关于高并发的几个重要概念 1.1 同步和异步 首先这里说的同步和异步是指函数/方法调用方面。 很明显,同步调用会等待方法的返回,异步调用会瞬间返回,但是异步调用瞬间返回并不代表你的任务就完成了,他会在后台起个线程继续进行任务。 1.2 并发和并行 并发和并行在外在表象来说,是差不多的。由图所示,并行则是两个任务同时进行,而并发呢,则是一会做一个任务一
2017-02-28 15:05:51
208
原创 java学习笔记
java多线程编程进程和线程Java给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的
2016-06-28 10:11:12
272
Netty In Action中文版
2018-02-26
webpack-dashboard打包可视化插件
2017-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人