- 博客(56)
- 收藏
- 关注
原创 JVM垃圾回收算法
本文简单介绍一下垃圾回收的概念及算法 一、垃圾回收算法二、垃圾回收停顿现象三、对象如何进入老年代四、TLAB区域 一、垃圾回收算法 垃圾回收(Garbage collection,简称GC),类比生活中的垃圾,会把垃圾丢入垃圾桶中,然后清理掉。GC中的垃圾特指存入内存中、不会再被使用的对象,而回收相当于将垃圾倒掉。垃圾回收算法有很多种:①引用计数...
2018-04-25 17:36:38
185
原创 虚拟机参数
对虚拟机参数的配置,主要围绕堆、栈、方法区进行配置。 说明:① -XX:系统级别的(JVM)配置,配置日志信息,或者是jvm使用什么样的垃圾回收器② 非-XX:应用层的配置③“+”:表示启用④“-”:表示禁用 1、堆参数配置 (1)基本参数配置-XX:+PrintGC 使用该参数,虚拟机启动后,遇到GC就会打印日志-XX:+UseSerialG...
2018-04-24 10:11:07
366
原创 JVM概述
本文从以下方面对JVM进行描述: 一、Java虚拟机概述与基本概念二、堆、栈、方法区 一、Java虚拟机概述与基本概念 1、虚拟机概述所谓的虚拟机,就是一台虚拟的机器。是一款软件,用来执行一系列的虚拟计算指令,大体可将虚拟机分为:系统虚拟机,程序虚拟机。 系统虚拟机:Visual Box、VMare完全是对物理计算机的仿真,提供一个可完整运行操作系统的...
2018-04-23 15:17:27
201
原创 ActiveMQ独占消费模式
本文主要介绍一下ActiveMQ消息独占模式 1、消息独占模式(Exclusive Consumer) Queue中的消息是按照顺序被分发到consumers的。然而,当你有多个consumers同时从相同的queue中提取消息时,你将失去这个保证。因为这些消息是被多个线程并发的处理。有的时候,保证消息按照顺序处理是很重要的。例如,你可能不希望在插入订单操作结束之前执行更新这个...
2018-04-15 11:06:49
835
原创 ActiveMQ+Mysql持久化存储
本文简单介绍ActiveMQ使用Mysql数据库实现消息的持久化存储 一、ActiveMQ配置修改二、代码示例 一、ActiveMQ配置修改对于ActiveMQ需要保证消息的可靠性,需要持久化进行存储,默认情况下使用kahadb进行数据的默认持久化存储技术,同时也可以使用leveldb、mysql、oracle此次,使用mysql对消息进行持久化操作。 ...
2018-04-14 23:44:18
469
1
原创 ActiveMQ发送、接收消息
本文主要以一个简单的示例展示ActiveMQ收发消息: 一、ActiveMQ说明二、代码示例 一、ActiveMQ说明1、当前ActiveMQ的最新版本为: ActiveMQ 5.15.3 Release ====》点击:官网下载ActiveMQ地址 2、下载好之后解压,然后启动ActiveMQ,启动时要根据系统的位数来选择 二、代码示例 ...
2018-04-13 00:53:34
663
原创 ActiveMQ简介
本文从以下方面简单介绍一下ActiveMQ 一、消息中间件背景二、简述JMS规范三、ActiveMQ简介 一、消息中间件背景 当前如RMI,RPC中间件技术应用到各个领域,但面对复杂度越来越高的分布式系统,上述中间件有一下局限性:(1)同步通信:客户端发出请求之后必须等待服务端处理完毕返回结果后才能继续执行;(2)客户端与服务端生命周期紧密耦合:客户端进...
2018-04-12 08:25:13
119
原创 spring boot+mybatis示例
本文以简单示例展示spring boot与mybatis的整合过程:(一)示例的目录结构 1、pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/...
2018-04-10 21:38:04
97
原创 spring boot+mybatis mapper注入失败问题
spring boot整合mybatis时注入mapper失败问题: 1、关于@Mapper注解导包失败原因: 原因分析:导入的Mybatis核心包的版本太低,如下图所示,因而导致mybatis核心包的版本为mybatis-3.4.4.jar,因此导致了@Mapper注解导包失败。 2、spring boot整合mybatis,注入mapper失败 (1)...
2018-04-10 21:03:22
2678
原创 spring boot+jpa实现简单的增删改查
本文简单介绍一下spring boot+JPA实现简单的增删改查功能 一、项目结构简述二、搭建spring boot+jap环境三、代码示例四、spring boot的启动方式 一、项目结构简述 1、项目的目录结构注意点 问题说明:①使用内置服务器启动springboot项目时,会从@SpringBootApplication修饰类所在的包开...
2018-04-09 23:29:30
4569
原创 适配器模式
1、适配器模式分类(1)对象适配器(2)类适配器 2、对象适配器(1)概念:将一个类的接口转为另外一个类的接口,让原来不兼容得类变得兼容(2)原理: 对象适配器采用组合的方式,适配器对象实现目标类的接口,重写目标类的方法。此时,适配器类中组合了一个被适配的对象,其实质在重写目标类的方法时调用被适配器类对象的方法 (3)优点:①从用户的角度...
2018-04-07 12:15:29
86
原创 生产消费模式
1、生产者消费者模型 经典的多线程模型; 通常有两类线程:若干生产者线程,若干消费者线程; 生产者线程:提交用户请求; 消费者线程:处理生产者提交的任务,在生产和消费之间通过共享内存缓存区进行数据通信; 2、流程图 3、代码示例(1)生产者package net.oschina.tkj.mulitcoding....
2018-04-07 11:51:42
344
原创 Master-worker模式
1、Master-worker模式: 常用的并行计算模式。 核心思想为:系统中有两个进程协同工作:Master进程,worker进程。 Master:负责接收与分配任务,当worker(线程任务)执行完毕后,将返回的结果告知Master,Master对接收的任务进行汇总处理。 Worker:为一个线程任务对象,处理Master分配的任务,并...
2018-04-07 11:43:04
289
原创 DelayQueue延迟阻塞队列
1、DelayQueue: 带有延迟时间的Queue,其中的元素只有当其指定了延迟时间到了,才能够从队列中获取元素。DelayQueue中的元素必须实现Delay接口,DelayQueue是一个没有大小限制的队列,应用场景很多,比如对缓存超时的数据进行移除、任务超时处理、空闲连接关闭等。 2、示例如下:package net.oschina.tkj.mulitcodi...
2018-04-06 23:21:55
263
原创 Future模式
一、Future模式概述二、Future序列图三、示例代码 一、Future模式概述 Future类似于商品订单问题,当用户看上一件商品之后,下单完成在家里等待送货上门即可。更形象的一个例子就是页面发送AJAX请求,页面异步进行后台处理,用户无需一直等待结果,可以浏览其他东西。 Future的原理是:当你申请资源(计算资源或I/O资源)时,立即返回一个虚拟...
2018-04-06 09:37:41
97
原创 关于线程通信问题(面试题)
关于volitale,notify,wait面试问题: 1、问题:两个线程操作一个对象时,使得其中的一个线程不要一直死循环等待另外一个线程 解决思路:上述情况如果不添加volatile关键字就会是一个线程一直循环等待 (1)代码示例:package net.oschina.tkj.mulitcoding.notifykey;import java.ut...
2018-04-04 11:28:01
795
原创 字符串排序显示问题(面试题)
今天去一家公司面试,机试做了一道关于字符串的题,做的不是很理想,下来又研究了一下: 题目要求:1、给定一个字符串,只对其中的英文字符进行排序显示2、排序显示的规则是:根据英文字符出现的次数多的在前面显示,如果出现次数相同按字典顺序显示 代码示例:package net.oschina.tkj.teststring;import java.util.Array...
2018-04-02 23:33:17
323
原创 线程安全与锁优化
本文从以下介绍线程安全与锁优化一、线程安全二、锁优化 一、线程安全 1、线程安全的定义 Brian Goetz对线程安全的定义: 当多个线程访问一个对象的时候,如果不用考虑这些线程在运行时环境下的调度与交替执行,也不需要进行额外的同步,或者调用者也不需要做任何的其他协调操作,调用该对象的行为都可以获取到正确的结果,该对象就是线程安全的。 ...
2018-03-11 09:50:24
98
原创 Java与线程
本文从以下方面Java与线程的内容: 一、线程实现二、Java线程调度三、状态转化 一、线程实现 线程是比进程轻量级的调度执行单位,线程引入,可以把进程的资源分配与调度分开,各个线程可以共享资源又可以独立调度; 线程是CPU调度的基本单位; 1、线程的实现方式 此处,并非java线程的实现。 三种线...
2018-03-07 23:47:14
114
原创 volatile关键字
简单介绍一下volatile关键字 1、Java语言规范对volatile的定义如下: volatile关键字为Java虚拟机提供的最轻量级的同步机制。 Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。 通俗点讲:就是说一个变量如果用volatile修饰了,则Java可以确保所有...
2018-03-07 22:40:12
91
原创 Java内存模型(JMM)
本文简单介绍一下Java内存模型 一、主内存与工作内存二、内存间的交互操作 一、主内存与工作内存 1、Java的内存模型(Java Memory Model,JMM) java虚拟机规范中尝试用一种Java内存模型来屏蔽掉各种硬件与操作系统的内存访问差异,以实现java程序在各种平台上都能达到一致的并发效果。 2、主内存与工作内存 1&...
2018-03-07 20:32:23
88
原创 类加载器
本文从以下方面介绍类加载器:一、类与类加载器二、双亲委派模型 一、类与类加载器 类加载器:通过一个类的全限定名来获取该类的二进制字节流,该动作在虚拟机的外部执行,方便让应用程序自己决定获取所需要的类。实现该动作的代码模块成为“类加载器”。 1、类与类加载器 ① 类加载过程中的“加载”阶段需要用到类加载器; ②对于任意一个类而言,都...
2018-03-06 19:57:29
96
原创 类加载的过程
本文从以下方法介绍类加载过程:一、类加载时机二、类加载过程 一、类加载时机 类从加载到虚拟机内存开始,到从虚拟机内存卸载出为止,生命周期如下: 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始化(Initia...
2018-03-05 22:16:22
104
原创 类文件结构
本文从以下方面描述类文件结构: (一)class文件的结构一、魔数与class文件版本二、常量池三、访问标志四、类索引、父类索引、接口索引集合五、字段表集合六、方法表集合七、属性表集合 (一)class文件的结构 1、概述 class文件是以8位字节为基本单位二进制流,各个结构严格按照顺序排列起来,中间没有任何分割符...
2018-01-31 00:36:21
113
原创 java内存区域(二)
本文从以下内容介绍java内存区域一、运行时数据区域 一、运行时数据区域 1、线程与JVM线程1.1、线程 此处所说的线程指程序执行过程中的一个线程实体。 JVM 允许一个应用并发执行多个线程。Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓冲区分配、同步对象、栈、程序计数器等准备好以后,...
2018-01-28 16:36:44
91
原创 Java注解
本文从以下几点浅谈一下Java注解一、注解的定义二、自定义注解示例三、元注解四、注解元素 一、注解的定义 1、元数据 元数据是用于描述数据的数据,通俗讲,就是描述代码之间的关系,或者是代码与其他外部资源(如:数据库表)之间的内在联系的数据。2、注解的定义 Java5引入注解,注解也被成为元数据,在代码中添加信息提供了一种形式化的方法...
2018-01-21 22:29:37
90
原创 代理模式
本文主要从示例入手介绍代理模式一、实现代理的方式继承、组合二、动态代理 一、实现代理的方式继承、组合 1、引入:代理模式的实现类似于装饰者模式,都是对功能的增强。很多模式之间的实现都有类似点,不同点可能也是语义有差别 2、继承方式的代理 2.1、代码示例 说明:Moveable接口,以及Tank实现类为以下所有示例公用 pac...
2018-01-14 23:45:12
101
原创 工厂设计模式
本文从以下方面介绍工厂模式一、总述二、工厂方法三、抽象工厂 一、总述1、分类:(1)简单工厂(静态工厂)(2)工厂方法模式(3)抽象工厂模式 2、工厂模式意义: 将程序中创建对象的部分单独抽取出来,实现与主程序之间的解耦。具有更好的扩展性及维护性。 3、工厂方法模式与抽象工厂模式异同点 (1)相同点:都是将对象(产品...
2018-01-07 13:41:33
134
原创 责任链模式
本文从以下几个示例介绍责任链模型 一、概念 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 二、示例展示 1、简单示例...
2018-01-05 23:59:27
178
原创 观察者模式
本文从以下方法阐述观察者模式一、定义观察者二、观察者模式示例三、推模型与拉模型四、JAVA内置观察者五、总结 一、定义观察者模式 1、定义 观察者模式为对象的行为模式,主要定义一种一对多的对象关系(观察者:主题对象=1:n)。让多个观察者对象去监听同一个主题对象Subject(被依赖的对象),当主题对象的内容状态发生变化时,会通知所有注册过...
2018-01-02 21:14:08
124
原创 策略设计模式
本文从以下方面介绍策略模式一、策略模式概念二、策略模式的示例三、策略模式的优缺点四、总结 一、策略模式概念 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,交给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。 此模式涉及到三个场景: ● 环境(Context)(用于客...
2018-01-01 12:44:05
81
原创 枚举类
本文介绍JAVA SE5中枚举的使用 一、概念 关键字enum可以将一组具名值的有限集合创建为一种新的类型,而这些具名可以作为常规的程序组件使用。 二、向枚举中添加新方法 1、示例package net.oschina.tkj.chapter19.enumclass;/** * 枚举类中添加方法 注意:先定义枚举类实例,最后一个实例要用分号隔开 ...
2017-12-29 13:24:00
116
原创 泛型(二)
本文主要介绍一下泛型的上限,下限以及通配符?的使用事项:代码示例如下:package net.oschina.tkj.chapter15.limit;/** * 泛型上下限,?通配符 * * @author Freedom * * @param <T> */public class BasicInfo<T> { pr...
2017-12-27 01:03:18
106
原创 泛型(一)
泛型是JDK5时的技术,主要作用于编译时期,是编译时期的安全技术。一、元组1、引入:仅一次方法调用就能返回多个对象,编码中应该会使用到该功能。但是对于一个方法的return来说,一次只能返回一个对象。因此,解决办法就是创建一个对象,让其持有想要返回的多个对象。每次需要该种场景的情况时,我们就创建一个类来完成工作。2、元组:将一组对象直接打包存储于一个单一的对象中。可以理解为元组为一...
2017-12-24 13:07:03
89
原创 协变返回类型
继承过程中子类重写父类方法的现象1.如下例package net.oschina.tkj.chapter8.returntype;/** * 协变返回类型 * @author Freedom * */public class Grain { public String toString(){ return "grain"; }}pa...
2017-12-17 12:29:17
175
原创 多态小结
看了关于thinking in java的书籍对于多态写一下自己的理解一.多态时成员变量的特点:1.不管是静态成员变量,非静态成员变量以及final成员变量都不具备多态性2.简单理解:即编译时看父类型所对应的类是否有该变量如果有编译通过,如果没有编译失败;运行时变量值取自父类型对应的变量的值;一般来成员变量都为私有,只能在本类中修改成员的值 package net.osch...
2017-12-15 13:45:52
113
原创 SSM框架(一)
SSM框架初探一.创建一个Maven的项目 新建的maven web项目,创建成功之后出现以下两种错误:(1)-->webapp下缺少web.xml文件需要手动创建一个(2)-->编译器的版本为1.5,需要切换到当前JDK的版本。pom.xml文件中需要添加如下内容: <build> <plugins> &l...
2017-12-14 08:48:26
152
原创 嘻牛面试心得
好久没有写过博客,重拾博客记录自己成长的点滴...一.笔试题1.spring的事务有那些类型,分别说明一下作用? PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_MANDATORY--支持当...
2017-12-13 08:39:55
117
原创 nodejs环境搭建
window平台NodeJs环境搭建:由于,这两天项目需要,所以开始学习nodejs的相关知识。1.由于网速的原因,附件就不上传我搭建时所使用的node.js和npm了。提供官方下载地址:http://nodejs.org/#download(nodejs)https://github.com/isaacs/npm/tags(npm)2.下载完必要的安装包后:创建D:\...
2015-11-25 09:44:33
187
原创 http请求:get 与post区别
相同点: Get与post(对于“post”除非相应里有cache-control或者expires头域指示其相应不可缓存)请求的相应是可缓存的; 不同点:1. Get是从服务器上获取数据,post是向服务器传送数据2. Get是把参数数据队列加到提交表单的action属性所指定的URL中,值和表单中各个字段一一对应,在URL中可以看到,...
2015-04-14 08:20:21
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人