- 博客(23)
- 收藏
- 关注
原创 Http相关协议基础
Http相关协议基础TCP/IP协议族相关内容TCP/IP的分层管理TCP/IP安装层次把网络主要分为四层:应用层,传输层,网络层和数据链路层应用层这一层主要预存了各类的通用的应用服务;比如,FTP(File Transfer Protocol,文件传输协议),DNS(Domain Name System,域名系统)和HTTP(HyperText Transfer P
2018-02-05 15:23:40 240
原创 垃圾收集器和内存分配策略(四)
垃圾收集器和内存分配策略(四)垃圾收集器G1收集器概念G1作为一个可以使用新生代和老年代两块不同内存区域的收集器(但是G1所管理的内存区域与传统的分代内存模型有一定的区别,它划分了很多块Region,每一块Region有新生代和老年代两块,所有Region一同组成新生代和老年代,同时作为新生代或者老年代内存可以是不连续的),保证了类似CMS的并发处理的特性,在JDK1.7后正式提供商用版本使用算
2017-12-28 15:27:53 227
原创 垃圾收集器与内存分配策略(三)
垃圾收集器与内存分配策略(三)垃圾收集器Parallel Scavenge收集器概念Parallel Scavenge是一个新生代收集器,使用复制算法,也是并行收集;相比于ParNew收集器不同的是:Parallel Scavenge可以设置吞吐量吞吐量的概念吞吐量指的是CPU运行用户代码时间与CPU消耗总时间的比值(CPU消耗总时间为用户代码运行时间+垃圾回收消耗时间)吞吐量 = 运行用户代码
2017-12-28 15:27:19 188
原创 垃圾收集器与内存分配策略(二)
垃圾收集器与内存分配策略(二)HotSpot的算法实现枚举根节点(寻找GC ROOT)由于目前大多数JVM垃圾回收判断机制都是采用的可达性分析,那么在JVM需要发生GC的时候,就需要寻找执行方法中的根节点(GC ROOT);如果说就目前程序一直在不停的执行,那么对于根节点(GC ROOT)是有可能在不停的变化的;我们这里需要JVM停止当前所有程序的执行(stop the world),才能进行根节点
2017-12-28 15:26:27 192
原创 垃圾收集器与内存分配策略(一)
垃圾收集器与内存分配策略(一)垃圾收集器概述 首先对于Java程序来说,程序计数器,虚拟机栈和本地方法栈的生命周期是伴随着线程的开始到结束就消失,而对于方法区和堆内存空间是随着方法执行去动态分配内存,而所分配的内存并不会随着线程执行结束而被回收,所以我们需要垃圾收集器来处理这一部分内存判断对象是否存活引用计数器算法概念给对象添加一个引用计数器,每当一个地方引用到它的时候,就加1,每当一个引用
2017-12-28 15:25:52 235
原创 Java内存区域与内存溢出(二)
Java内存区域与内存溢出(二)实战OutOfMemoryErrorJava堆溢出Java堆主要用于存储对象的实例,只要不停的创建的对象,保证GC Roots到对象之间可达的路径避免GC回收这些对象,那么就可以出现堆溢出现象虚拟机栈和本地方法栈溢出StackOverFlowError:如果请求的栈深度大于虚拟机所允许的深度的时候,那么抛出OutOfMemoryError:虚拟机在拓展栈的时候,无
2017-12-22 17:58:09 159
原创 Java内存区域与内存溢出异常(一)
Java内存区域与内存溢出异常(一)概述对于一个C或C++程序开发者来说,他们参与了一个对象创建,分配,初始化和销毁的所有过程,但是Java相比于C开发来说,不同的是,jvm自动内存管理机制的帮助下去自动分配地址,创建对象和销毁对象;好处是关于内存溢出和内存泄漏的问题不容易发生,坏处就是一旦出现内存相关的问题,定位问题是极为复杂的运行时的内存局域程序计数器作用程序计数器是一个很小的内存区域,可以认
2017-12-22 17:57:32 161
原创 微信支付——签名问题
微信支付——签名问题签名顺序首先签名顺序必须按照ASCII码来排列例如stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";签名大小写签名sign字符串必须是大写的例如sign=MD5(stringSignTemp).toUpperCase(
2017-12-12 18:05:22 2093
翻译 Java FileLock【翻译】
Java FileLock【翻译】Java FileLock概述NIO提供了FileLock同步的权限去访问文件,通过FileLock我们可以去锁定整个文件或者部分文件;当然,FileLock也同时取决于所处于当前的操作系统。在这里我们提供了两类锁:独占锁和共享锁;当前文件(或者文件相同的部分)中有且只有一个线程或者进程持有独占锁(exclusive lock),但是与之相反的是多个线程或者进程可
2017-09-04 15:19:47 390
原创 MySQL——Schema与数据类型优化(一)
Schema与数据类型优化 良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计schama,这往往需要权衡各种元素。例如,反范式的设计可以加快某些类型的查询,但同时可能使另一类型的查询变慢。 ——《高性能MySQL》选择优化的数据类型选择优化数据类型概述对于MySQL来说他是支持很多数据类型的,那么对于MySQL来说选择合适的数据类型对高性能是有很大的帮助的;通常
2017-08-11 21:47:29 324
原创 Mysql的架构和历史(二)
Mysql的架构和历史(二)事务事务的概述简单来说事务就是一个或者多个SQL所组成的一个原子化操作,他们的执行必须具有一致性的,所谓一致性就是指的是这一组操作必须全部成功或者全部失败,他们不存在部分成功部分失败的情况;一个经典里例子A从账户里转账200到B账户里,这里操作我们分解一下,主要分为三个操作查询A账户余额是否超过200从A账户从减去200在B账户中加上200以上这三个操作必须作为一个
2017-08-11 21:46:53 306
原创 Mysql的架构和历史(一)
Mysql的架构和历史(一) 和其他数据库系统相比,Mysql有点与众不同,它的架构可以在多种不同的场景中应用并发挥好的作用,但同时也会带来一点选择上的困难 ——《高性能的Mysql》Mysql的逻辑架构简单使用一张图片来描述Mysql的逻辑架构最上层绝大多数B/S结构的软件都有,在这一层常见的功能有:连接处理,授权认证,安全等等。第二层架构是MySQL核心的部分,其主要包括了MySQ
2017-08-11 21:46:16 692
原创 HashMap简单分析
HashMap简单分析 基于哈希表的Map接口实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了非同步和允许使用null之外,HashMap类和Hashtable大致相同。)此类不保证映射顺序,特别是不保证该顺序永恒不变。 ——该描述来自JDK_API_1.6HashMap概述在了解HashMap之前必须先了解什么是Hash表;简单介绍几种常见的数据结构数组:采用
2017-07-11 20:53:37 485 2
原创 桥接模式
桥梁模式 桥梁模式是对象的结构模式。又称为柄体模式或接口模式。桥梁模式的用意是“将抽象化与实现化脱耦,使得二者可以独立的变化” ——《Java与模式》桥梁模式概述桥梁模式:主要是作用在抽象化(也就是接口)与实现化(也就是具体的实现类)两者联系起来,而将两者联系起来的这个方式就是桥梁模式。我们最为常见的桥梁模式就是JDBC实现,JDBC实现方式,首先注册Driver(驱动),当然这
2017-07-10 16:16:42 283
原创 门面模式
门面模式 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用 –《Java与模式》门面模式概述作为门面模式(facade)来说,facade本身不存在实际的意义,facade主要的作用是作为内部子系统的所有模块或者部分模块的提供一个统一的访问访问接口,facade可以对系统中的模块根据实际情况进行组合。 上图主要
2017-06-21 14:06:44 225
原创 享元模式
享元模式 FlyWeight在拳击比赛中中指的是最轻量级,即“蝇量级”或“雨量级”,这里选择使用享元模式的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象 –《Java与模式》Java中的String类型在Java语言中的String类型就是使用的就是享元模式,在Java中的String是作为一个final类型,一旦一个String对
2017-05-26 11:24:51 195
原创 代理模式
代理模式 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用 –《Java与模式》代理模式简介所谓代理模式,某一个主体在无法直接使用源对象,或者无法获取到源对象的引用,那么这个使用,我们通常使用一个代理类来间接的使用源对象,同时可以在使用源对象真正的方法或功能时,我们可以前后加入自己相对应的处理这里,盗图一张来简单描述一下 ![代理模式见截图](ht
2017-05-08 20:25:14 202
原创 装饰者模式
装饰者模式 装饰模式有名包装(Wrapper)模式。装饰模式以对客户端透明的方式拓展对象的功能,是继承关系的一个替代方案 –《Java与模式》简单聊聊装饰模式所谓装饰模式指的是比如某一个具体实体类的功能实现对于现在我们来说,其实是有用的,或者换一个方式来说,就是这个实现我们是需要,但是有一个前提就是我们可能在某种程度上来说需要对现在已有的功能进行增强,这个时候我们可以选择装饰模式作为一种处理方式
2017-05-04 09:33:10 224
原创 合成模式
合成模式 合成模式属于对象的结构模式,有时又叫做部分–整体的模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待 –《JAVA与模式》合成模式定义在电脑系统中的文件操作系统就是一种最为常见的合成模式,简单解释一下,就是如对于每一个文件它即可以代表自己,也同时持有了它的子文件的引用,当然假如一个只有一个文件也是可以单独存在的,这里我盗
2017-05-03 09:47:14 648
原创 适配器模式
适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配的而无法在一起工作的两个类能够在一起工作 –《Java与模式》适配器模式的意义一个经典的例子是:假如说目前有一批电器所需要的电压是220V,但是出现了一个只需要110V电压的电器,但是我们需要是使用这个110V电压的电器,那么这个时候在无法改变电器的情况下,我们只能对电压进行降幅,使用变压器对原有的
2017-04-25 17:20:50 232
原创 原型模式
原型模式 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后通过用复制这个原型对象的方法来创建出更多同类型的对象 –《JAVA与模式》原型模式优点作为原型模式来说,在Java中的实现基本上是通过Object中的clone实现的,之所以使用clone来实现,这样的做的好处有:在创建复杂的对象的时候,或者需要大量创建某同一对象时,调用目标类的构造方法效率低,而
2017-04-25 14:38:02 241
转载 单例模式
单例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 –《JAVA与模式》目前众所周知,单例模式主要有两种实现方式,一种是懒汉式,一种是饿汉式;其中懒汉式比较容易理解,但是作为饿汉式在实现的时可能有点麻烦。饿汉式饿汉式指的是在对象初始化的时候,那么就提供该对象的实例提供外部访问,无论外界是否真的需要该对象的实
2017-04-24 11:28:33 186
原创 工厂相关模式
工厂创建方法简单工厂方法所谓简单工厂指的是某一单一工厂生成指定一类具有同样性质的实例 代码如下/**这是所有食物类的父接口*/public interface Food {/** * 描述自己 */ void introduce();}/**苹果具体实现类*/public class Apple implements Food { @Override publi
2017-04-21 17:03:05 296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人