自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (5)
  • 收藏
  • 关注

转载 JAVA虚拟机内存分配概要

图一:java内存结构划分由上图可知,java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。1、程序计数器线程私有,即每个线程都会有一个,线程之间互不影响,独立存储。代表着当前线程所执行字节码的行号指示器。2、虚拟机栈线程私有,它的生命周期和线程相同。描述的是java方法执行的内存模型:每个方法在执行的同时多会创建

2017-10-20 10:17:32 244

转载 Java堆内存Heap与非堆内存Non-Heap概要

JAVA虚拟机内存结构分为以下5部分:程序计数器,虚拟机栈,本地方法栈,方法区,堆。具体可查看上一篇文章JAVA虚拟机内存分配概要。而又可以粗略分为堆内存和非堆内存。一般程序员最关心的也是堆内存。也是最容易造成内存泄漏的一部分内存,也是jvm垃圾回收时主要操作的内存空间。堆内存又可以分为新生代、年老代、永久代,具体垃圾回收机制查看另一篇文章Java虚拟机:Java垃圾回收(GC)机制详解。

2017-10-20 10:16:28 1910

转载 Java虚拟机:Java垃圾回收(GC)机制详解

如何查看当前环境下的垃圾回收器?java -XX:+PrintCommandLineFlags -version哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现是,给对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1

2017-10-20 09:26:45 237

转载 线程5种状态及常见问题

线程的5种状态: 每个 Java 程序都有一个缺省的主线程,对于 Java 应用程序,主线程是 main()方法执行的线索;对于 Applet 程序,主线程是指挥浏览器加载并执行 Java Applet 程序的线索。要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止。1、新生状态       在程

2017-10-19 18:22:05 10929

转载 JAVA多线程编程之Condition

在上一篇文章中讲了java.util.concurrent.locks包中的lock接口,及其对应的实现类。今天讲一下java.util.concurrent.locks包下另一个接口Condition。使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer(同步

2017-10-19 17:42:51 237

转载 ThreadLocal详解

早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。  当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。  从线

2017-10-19 10:41:04 155

转载 Java 5 并发编程--Lock详解

Java并发编程:Lock  Java5之前使用synchronized来实现同步访问。从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。  也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺

2017-10-17 16:49:16 335

转载 ExecutorService使用技巧

ExecutorService抽象概念自Java5就已经提出来了,现在是2014年。顺便提醒一下:Java5和Java6都已不被支持,Java7在半年内也将会这样。我提出这个的原因是许多Java程序员仍然不能完全明白ExecutorService到底是怎样工作的。还有很多地方要去学习,今天我会分享一些很少人知道的特性和实践。然而这篇文章仍然是面向中等程序员的,没什么特别高级的地方。1. N

2017-10-17 15:22:57 248

原创 java多线程之wait notify详解,start于run区别,wait与sleep区别一篇通,附例:生产者消费者。

一、wait(), notify(), notifyAll()等方法介绍1.wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)2.notify()和notifyAll()的作用,则是唤醒当前对象上的等待线程;notify()是唤

2017-10-17 11:15:49 1820

转载 AKKA让并发和容错更容易

写并发程序很难。程序员不得不处理线程、锁和竞态条件等等,这个过程很容易出错,而且会导致程序代码难以阅读、测试和维护。所以,很多人不倾向于使用多线程编程。取而代之的是,他们使用单线程进程(译者注:只含有一个线程的进程),依赖外部服务(如数据库、队列等)处理所需的并发或异步操作。虽然这种方法在有些情况下是可行的,但还有很多其他情况不能奏效。很多实时系统——例如交易或银行业务应用,或实时游戏——

2017-10-16 16:19:36 310

转载 中小型企业Web开发框架

基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。技术选型后端技术:技术名称官网

2017-10-13 13:59:54 6039 1

转载 Karaf教程第2部分使用Configuration Admin服务

原文地址  http://blog.csdn.net/wusandi/article/details/78172920      在Karaf教程的第1部分,我们学习了如何使用maven和blueprint提供和使用pojo服务,如何使用http服务发布servlet。    在第2部分,我们集中精力关注OSGi bundle的配置。不像servlet容器,OSGi容器包含一个非常

2017-10-10 17:11:50 1036

转载 Karaf教程第1部分 安装Karaf与第一个应用

原文链接:http://blog.csdn.net/wusandi/article/details/781722611.1 karaf入门    在这个帖子中,我将编写关于Apache Karaf的一系列帖子。那么什么是Karaf,你为什么对它感兴趣呢?Karaf是基于Equinox或者Felix的OSGi容器。相对于其它优良的容器来说,主要的不同点是karaf带来了优秀的features

2017-10-10 14:55:10 4961

转载 小根堆优化Dijkstra算法

算法原理每次扩展一个距离最小的点,再更新与其相邻的点的距离。如何寻找距离最小的点普通的Dijkstra算法的思路是直接For i: 1 to n优化方案是建一个小根堆,小根堆里存储由当前结点更新距离的所有点,那么堆顶就是距离最小的点如何寻找与源点相邻的点当然是邻接表具体实现建一个小根堆heap[] ,用来存储结点的序号,用一个数组

2017-10-10 14:23:33 910

转载 最短路径—Dijkstra算法

1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图 G=(V,E) 中,假设每条边 E[i

2017-10-10 14:20:20 227

转载 基本数据结构-->堆

堆----->它是利用完全二叉树的结构来维护一组数据,然后进行相关操作,一般的操作进行一次的时间复杂度在  O(1)~O(logn)之间。      可谓是相当的引领时尚潮流啊(我不信学信息学的你看到log和1的时间复杂度不会激动一下下)!。      什么是完全二叉树呢?别急着去百度啊,要百度我帮你百度:      若设二叉树的深度为h,除第 h 层外,其它各层 

2017-10-10 14:07:17 221

转载 二叉搜索树

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。public class Node {    public int iData;   

2017-10-08 11:50:06 134

《StackOverFlow-Python翻译》-深入理解python,超级推荐

《StackOverFlow-Python翻译》-深入理解python,超级推荐,共88个知识点,深入理解python,适合于有python基础的人,想要提高代码质量的人阅读

2018-03-25

Paxos到Zookeeper:分布式一致性原理与实践

从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。全书共8章,分为五部分:第一部分(第1章)主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论;第二部分(第2~4章)介绍了2PC、3PC和Paxos三种分布式一致性协议,并着重讲解了ZooKeeper中使用的一致性协议——ZAB协议;第三部分(第5~6章)介绍了ZooKeeper的使用方法,包括客户端API的使用以及对ZooKeeper服务的部署与运行,并结合真实的分布式应用场景,总结了ZooKeeper使用的最佳实践;第四部分(第7章)对ZooKeeper的架构设计和实现原理进行了深入分析,包含系统模型、Leader选举、客户端与服务端的工作原 理、请求处理,以及服务器角色的工作流程和数据存储等;第五部分(第8章)介绍了ZooKeeper的运维实践,包括配置详解和监控管理等,重点讲解了如何构建一个高可用的ZooKeeper服务。

2018-02-28

smartgit-32位

SmartGit是收费的,可以30天的试用期,30天试用期过后,smartgit 需要输入序列号解决办法,可以通过下面的小方法来获取永久的使用,但是这个仅供个人的试用,公司的嘛还是应该花钱买正版的。 smartgit 需要输入序列号解决办法 ,找到路径: %APPDATA%\syntevo\SmartGit\<main-smartgit-version> 然后删除: settings.xml 再重新打开smartgit

2018-01-25

Redis设计与实现完整版-kindle-黄健宏

本书主要分为四大部分。第一部分“数据结构与对象”介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。第二部分“单机数据库的实现”对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。第三部分“多机数据库的实现”对Redis的Sentinel、复制、集群三个多机功能进行了介绍。第四部分“独立功能的实现”对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志、监视器等。

2018-01-25

Elasticsearch服务器开发-完整版-带书签-高清

如果你是一个全文检索和Elasticsearch的初学者,那么本书就是为你准备的。你将学到Elasticsearch的基础知识,以及如何使用一些高级功能。如果你已经知道并使用了Elasticsearch,仍然会发现本书很有趣,因为它通过例子和描述,很好地概述了Elasticsearch的所有功能。如果你知道Apache Solr搜索引擎,那么这本书也可以用来比较Apache Solr和Elasticsearch的某些功能。了解一些Elasticsearch的知识后,你可能会发现它更适合你。

2018-01-25

空空如也

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

TA关注的人

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