自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

转载 转载Mongodb

本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell、pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程。MongoDB的使用之前也分享过一篇,稍微高阶点:见这里:《MongoDB使用小结》1、shell登陆和显示假设在本机上有一个端口为17380的MongoDB服务,假设已经把mongo bin文件加入到系统PATH下。登陆:mongo ...

2018-07-13 16:42:49 171

转载 MongoDB的增删改查

如何安装mongodb,请参考http://blog.csdn.net/zpf336/article/details/50765789注:此文基于mongoDb API 3.2.0进行的测试。测试代码如下:pom.xml文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200...

2018-07-06 09:20:09 276

转载 静态代理和动态代理的理解

Java 静态代理静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。这其实也就是代理模式的一种实现,通过对真实对象的封装,来实现扩展性。...

2018-06-03 09:15:19 175

转载 线程池

为什么用线程池创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率例如:记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了!正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销线程并发数量过多,抢占系统资源从而导致阻塞我们知道线程能共享系统资源,如...

2018-05-19 13:18:30 178

原创 对象的共享

重排序是指在没有同步的情况下,编译器,处理器可能对代码的执行顺序进行一些调整例如如下代码,由于没有使用同步机制,读线程可能看不到ready的修改,而一直循环下去,也可能由于重排序,看到ready的修改而number没有修改二输出为0;使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执行态里选择,也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会...

2018-05-19 11:04:03 230

原创 线程安全性

编写线程安全的代码,核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问。对象的状态是指存储在状态变量(实例或静态域)中的数据。对象的状态还可能包括其他依赖对象的域。(Map.Entry)Java常用的同步机制是Synchronized,还包括 volatile类型的变量,显示锁以及原子变量。线程安全的程序是否完全由线程安全的类构成?答案是否定的,完...

2018-05-18 21:01:56 137

转载 早期优化

JVM编译器优化JVM的编译器可以分为三个编译器: 1、前端编译器:把.java转变为.class的过程。如Sun的Javac、Eclipse JDT中的增量式编译器(ECJ)。 2、JIT编译器:把字节码转变为机器码的过程,如HotSpot VM的C1、C2编译器。 3、AOT编译器:静态提前编译器,直接将*.java文件编译本地机器代码的过程。Javac编译器  Javac编译器本身是由Jav...

2018-05-18 19:17:57 153

转载 晚期优化

这节我们总结一下JVM运行期的优化问题。 JVM运行期优化  即时编译器(JIT)    编译对象与触发条件      编译对象      触发条件  编译过程  编译优化技术JVM运行期优化  Java程序在运行的期间,可能会有某个方法或者代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时JVM会将这些代码编译成与本地平台相关的机器码,并进行各种层次的...

2018-05-18 19:14:03 110

转载 早期(编译期)优化

摘自《深入理解 Java 虚拟机:JVM 高级特性与最佳实践》(第二版)        从计算机程序出现的第一天起,对效率的追求就是程序天生的坚定信仰,这个过程犹如一场没有终点、永不停歇的 F1 方程式竞赛,程序员是车手,技术平台则是在赛道上飞驰的赛车。概述        Java 语言的 “编译期” 其实是一段 “不确定” 的操作过程,因为它可能是指一个前端编译器(其实叫 “编译器的前端” 更准...

2018-05-18 17:19:01 159

转载 类加载及执行子系统的案例与实战

代码编译的结果从本地机器码转变为字节码是存储格式发展的一小步,却是编程语言发展的一大步。1.概述在Class文件与执行引擎这部分里,用户的程序能直接影响的内容兵不太多,Class文件以何种格式存储,类型何时加载,如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为,用户程序无法对其进行改变。能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能 ,但仅仅在如何如理这两点上,就...

2018-05-18 17:11:25 203

转载 虚拟机字节码执行引擎

摘自《深入理解 Java 虚拟机:JVM 高级特性与最佳实践》(第二版)        代码编译的结果是从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。概述        执行引擎是 Java 虚拟机最核心的组成部分之一。“虚拟机” 是一个相对于 “物理机” 的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,...

2018-05-18 16:43:57 123

原创 类加载器与双亲委派模型

类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。虚拟机规范并没有指明二进制字节流要从一个Class文件获取,或者说根本没有指明从哪...

2018-05-18 15:53:04 87

转载 虚拟机加载机制

如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。Java中赋值顺序: 1. 父类的静态变量赋值 2. 自身的静态变量赋值 3. 父类成员变量赋值和父类块赋值 4. 父类构造函数赋值 5. 自身成员变量赋值和自身块赋值 6. 自身构造函数赋值public class SSClass{ static { Sy...

2018-05-18 11:29:40 182

转载 class文件

在了解了Java内存的分布、HotSpot虚拟机对Java对象的管理以及Java垃圾收集机制之后,我们大致了解了Java自动内存管理的部分。接下来,就应该看看Java的类加载机制,看看虚拟机是如何将Java代码文件编译后的class文件加载到Java内存中的。Java是一门平台无关语言,只要有Java的运行环境,编写的代码可以运行在各种机器上,做到了“一次编码、处处运行”的目的。为了达到平台无关,...

2018-05-18 10:32:17 149

转载 内存动态分配和垃圾收集技术

高性能硬件上的程序部署策略问题:网站经常出现不定期长时间失去响应的情况监控服务器运行状况后发现网站响应是有GC停顿导致的,虚拟机运行在Server模式,默认使用吞吐量优先收集器,由于程序设计的问题,访问文档要把文档从磁盘 提取到内存中,导致内存中出现很多有文档序列化产生的大对象,并且这些大对象都进入老年代。内存很快被耗尽。由此出现这样的问题目前在高性能硬件部署程序,主要有两种方式 通过64位JDK...

2018-05-18 09:28:08 300

原创 内存分配和回收的策略

jvm的三代:新生代:有新创建的对象都首先在新生代进行内存分配。新生代具体又分为3个区,一个Eden区、一个From Survivor区和一个To Sruvivor区。大部分对象都被分配在Eden区,当Eden区满时,还存活的对象将被复制到From Survivor区,当From Survivor区满时,此区还存活的对象将被复制到To Survivor区。最后,当To Survivor区也满时,这...

2018-05-17 22:11:59 98

转载 对象是否以死的判断算法

1.引用计数算法:给每个对象添加一个引用计数器,每当有一个地方引用他的时候,计数器就加一,当引用失效的时候计数器就减一,当计数器为0 的时候表示对象是不可能再被利用了。但是有个缺点是,对象之间相互引用而导致了计算器永远不为0,因此无法进行垃圾收集。虚拟机中不是运用这个算法进行回收的。2.可达性分析算法:通过一系列的称为“GC roots” 的对象作为起点,从这些起点开始向下搜索,搜索走过的路径称为...

2018-05-17 22:00:46 109

转载 栈,堆,方法区

最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构:感觉有必要通过几个实在的例子来加深对这几个区域的了解。Java程序运行时,数据会分区存放,JavaStack(Java栈)、 heap(堆)、method(方法区)。1、Java栈Java栈的区域很小,只有1M,特点是存...

2018-05-17 20:34:28 5249

原创 计算机网络

三次握手和四次挥手过程:为什么要进行三次握手四次挥手?“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。 client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接...

2018-05-15 23:23:29 477

转载 java模式学习

创建型抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html工厂方法 http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html建造者模式  http://www.cnblogs.com/java-my-life/archive/...

2018-05-12 16:14:03 73

转载 spring 的设计模式

工厂化模式:Spring框架是目前最流行的企业级开发框架之一。工厂模式:Spring Bean的体系结构比较复杂,顶级接口是BeanFactory;BeanFactory共有三个子接口:ListableBeanFactory、HierarchicalBeanFactory和AutowireCapableBeanFactory,这三个子接口集成了顶级接口并对BeanFactory的功能进行了增强,称...

2018-05-05 21:57:50 185

原创 子数组最大的和

一个整形数组中有正数也有负数,数组中连续一个或多个组成子数组,每个子数组都有一个和,求所有子数组中和的最大值public static int findMax(int array[]) { if (array.length==0) { return 0; } int max=array[0]; int sum=0; for(int i=0;i<array.length;i++)...

2018-05-05 21:00:53 85

原创 Memcached学习

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。Memcached是一种基于内存的key-value存储,用来存储小...

2018-05-05 20:53:15 95

转载 redis学习

在配置好redis集群后启动redis服务器,使用redis-server.exe redis.windows.conf就可以看到如下信息,代表redis客户端已经启动了,如果要练习客户端命令等,需要另外启动一个命令窗口,同样在同一个目录里,输入命令Redis-cli.exe就可以连接上了,如下:redis是一种高级的key:value存储系统,其中value支持五种数据类型:1.字符串(stri...

2018-05-05 11:40:49 92

空空如也

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

TA关注的人

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