- 博客(28)
- 资源 (20)
- 收藏
- 关注
转载 Java内存模型
Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。原始的Java内存模型存在一些不足,因此Ja
2016-04-30 20:50:49 429
原创 Docker在LXC基础上做了什么 && Docker与虚拟机之间有什么不同
这里整理《Docker进阶与实战 》中提到的几个问题,这些问题也是在面试过程中经常被问到的。一、Docker在LXC基础上做了什么LXC,一般指Linux Container,即内核容器技术的简称。Docker在内核容器技术上做了什么工作,简单的说,Docker在内核容器技术(Cgroup和Namespace)的基础上,提供了一个更高层的控制工具,该工具包含以下特性:1、跨主机部署。Docker定义
2016-04-30 17:18:15 2771
原创 Java死锁示例及检测
死锁是指多个线程在等待不可能被释放的锁,导致程序无法继续运行,下面用一个例子来说明。线程A持有lock1,在等待lock2,线程B持有lock2,在等待lock1,这样就发生了死锁。首先看一个类DealThread,这个类含有互斥锁,以synchronized代码块的形式表示,线程A使用锁的顺序是lock1->lock2。线程B使用锁的顺序是lock2->lock1。在一个线程获得一个锁后,在获得第
2016-04-30 11:55:39 886
原创 JDK动态代理实现原理(简析加转载)
这里转载一篇日志,重点部分就是探讨JDK动态代理是如何实现的。JDK生成动态代理的语法为,参考JDK动态代理示例:Interface proxy = (Interface) Proxy.newProxyInstance(Interface.class.getClassLoader(),new Class[]{Interface.class},new DynamicProxyHandler(rea
2016-04-29 23:28:03 739
转载 Cglib生成动态代理(有改动)
Cglib(Code Generation Library)动态代理 [对没有实现接口的普通类做代理]1、概述: Cglib是一个优秀的动态代理框架,它的底层使用ASM(JAVA字节码处理框架)在内存中动态的生成被代理类的子类。使用CGLIB即使被代理类没有实现任何接口也可以实现动态代理功能。但是不能对final修饰的类进行代理。2、原理: 通过字节码技术为一
2016-04-29 22:14:26 515
原创 JDK动态代理示例
Java动态代理可以动态地创建代理并动态地处理对所代理方法的调用。下面用《Java编程思想》中的一个例子说明: 首先是接口类,目标类要实现的接口:public interface Interface { void doSomething(); void somethingElse(String args);}再就是目标类,也可以成为真实类,继承上面的接口并实现其中的方法:publ
2016-04-29 21:08:02 1599
原创 docker运行nodejs小程序
这里介绍一下如何在docker运行nodejs应用程序,算是对docker的入门。 这篇博客Node.js简介介绍了nodejs的使用。这里仍然使用server.js作为服务端的程序。server.js如下:var http = require("http"); http.createServer(function(request,response) { response.w
2016-04-29 16:05:50 1024
原创 Java如何停止线程
思路为: 在调用thread.start()方法之后,调用thread.interrupt()方法来中断这个方法。在thread的run()方法中,运行之前要检查本线程是否被中断(用this.interrupted()或this.isInterrupted(),前者为静态方法,感觉没什么区别),如果被中断,则要throw一个InterruptedException,从而导致run()方法停止运行,
2016-04-28 10:01:30 1410 1
原创 二叉树中和为某一值的路径
题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 这道题思路不难,采用先序递归遍历的方式,先访问根节点,然后再访问子节点,在访问到叶节点时,检查当前累加和的大小,如果等于目标值,则将当前路径保存到结果中。这里发这篇博客的目的算是对上述过程的一个优化,我们用一个ArrayList<Integer>来保存
2016-04-27 21:54:30 572
原创 根据入栈顺序判断出栈顺序是否合法
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 思路:先将入栈序列放入队列queue中。为入栈序列维护栈结构stack。对出栈序列进行如下操作:如果栈顶是出栈元素,出栈。 如
2016-04-25 23:42:59 2385
原创 顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 这个题有两种方法,剑指offer里使用的是第一种方法,即每次打印一圈,第i圈从位置(i,i)开始打印,但是这种方法只适用于方阵,或者
2016-04-25 23:01:01 342
原创 将二叉搜索树转换为双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。好悲伤,面试微软的时候被遇到这个题,知道大体思路,但是最终代码没写好,由此可见平常学东西不扎实。总是浅尝辄止。思路:使用中序遍历,保存已经建好的双向链表的最后一个节点。那么处理当前节点的时候就很简单了,即把最后一个节点的右指针指向当前节点,当前节点的左指针指向最后一个节点。代码如
2016-04-25 19:52:09 537
原创 快速排序的非递归实现
这里讲了快速排序的递归实现插入排序 快速排序 分析整理,这里写一下非递归实现,非递归实现的要点是利用栈保存partition操作的子区间,即左边的坐标和右边的坐标。partition操作跟递归实现一样,不需要任何更改。代码如下:import java.util.Stack;//快速排序的非递归实现,利用栈保存一对下标public class QuickSortNonRecursion { p
2016-04-19 16:24:15 2286
转载 xc_domain_save.c
My work is based on Xen 3.4. You need to modify the attached file "xc_domain_save.c" to measure memory dirtying rate. Please see the details in the source code and my paper. you should find the test
2016-04-17 22:14:06 2469
原创 单核CPU画正弦曲线
编程之美第一个题目是控制CPU的比例,让单核CPU的利用率一直在50%,还有一个是画正弦曲线。 自己用java写了一个,如下:public class Solution { public void drawSin(){ int width = 200; //数组宽度,理解为正弦的步长 int height = 100; //正弦的最大高度
2016-04-17 22:11:08 894
转载 Java使用Protocol Buffers入门四步骤
Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化、反序列化,经常用于网络传输。这货实际上类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读性比XML差。类似的还有json、Java的Serializable等。protobuf支持各种语言。本文以Java为例,简单介绍protob
2016-04-15 16:45:37 512
转载 集群监控之 —— ipmi操作指南
这两天,配置了一堆500来个节点的大型集群,被ipmi的问题困扰了一天半,到下午16:40,终于解决了。这里来总结一下: 智能平台管理界面(IPMI,Intelligent Platform Management Interface)是管理基于 Intel结构的企业级系统中所使用的外围设备采用的一种工业标准,用户能够利用IPMI监控服务器的物理健康特征,如温度、电压、风扇工作状态、
2016-04-13 23:30:16 3289 1
转载 mysql查询语句实例 复杂mysql查询
1、单表查询(1)选择指定的列[例]查询全体学生的学号和姓名select Sno as 学号,Sname as 姓名 from student;select Sno,Sname from student;(2)查询全部列[例]查询全体学生的详细信息select * from student;
2016-04-13 22:54:26 13375 1
转载 Hibernate框架ORM的实现原理
2007-08-24 来自:梁建全梁建全: 东方标准国际软件专业讲师,曾经负责过的重大的大型项目包括:全军武器装备质量管理系统、全军办公自动化系统、日本NTT电信管理系统等。主要著作包括《ASP.NET开发答疑200问》《ASP.NET开发实例导航》等。毕业于北京大学计算机专业。 1. 什么是ORM ORM的全称是Object Relational Mappin
2016-04-13 19:27:54 1156
转载 java内存泄漏的定位与分析
1、为什么会发生内存泄漏java 如何检测内在泄漏呢?我们需要一些工具进行检测,并发现内存泄漏问题,不然很容易发生down机问题。编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法
2016-04-12 21:42:23 2753
转载 Java内存泄漏发生的情况
转自:http://www.jianshu.com/p/93b91ea18c28虽然Java自带垃圾回收机制(GC),程序员不需要手动进行内存管理,但是仍然会出现内存泄漏的情况。尽管如此,Java的自动内存管理,比起C/C++,内存泄漏的情况大大减少了。下面总结下什么情况下会发生Java内存泄漏。静态集合类在使用Set、Vector、HashMap等集合类的时候需要特别注意,有可能
2016-04-12 17:34:47 525 1
转载 Web安全之SQL注入攻击技巧与防范
在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限。在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题,比如PHP语言至今仍然无法从语言本身杜绝「文件包含漏洞」(参见这里),只能依靠工程师良好的代码规范和安
2016-04-12 14:23:26 767
转载 Tomcat服务器原理详解
【目录】本文主要讲解Tomcat启动和部署webapp时的原理和过程,以及其使用的配置文件的详解。主要有三大部分:第一部分、Tomcat的简介和启动过程第二部分、Tomcat部署webapp第三部分、Tomcat处理一个http请求的过程【简介】 Tomcat依赖/conf/server.xml这个配置文件启动server(一个Tomcat实例,核心就是启动容器Catalina)。 Tomcat
2016-04-11 20:05:35 2095 3
转载 Docker与虚拟机性能比较
转自:http://www.sysgeek.cn/docker-vs-virtual-machine/docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。本文将主要根据IBM发表的研究报告,论述docker与传统虚拟化方式的不同之处,并比较物理机、docker容器、虚拟机三者的性能差异及差异产生的原理。docker与虚拟机实现原理比较如下图分别是虚拟机与d
2016-04-11 16:07:41 891
转载 Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
我们先写一个简单的脚本,执行以后再解释各个变量的意义 # touch variable# vi variable 脚本内容如下: #!/bin/shecho "number:$#"echo "scname:$0"echo "first :$1"echo "second:$2"echo "argume:$@"echo "show parm li
2016-04-11 12:54:41 993
转载 MapReduce:详解Shuffle过程
/** * author : 冶秀刚 * mail : dennyy99@gmail.com */ Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性
2016-04-05 21:03:50 337
转载 编译原理 (预处理>编译>汇编>链接)(转)
一般高级语言程序编译的过程:预处理、编译、汇编、链接。gcc在后台实际上也经历了这几个过程,我们可以通过-v参数查看它的编译细节,如果想看某个具体的编译过程,则可以分别使用-E,-S,-c和 -O,对应的后台工具则分别为cpp,cc1,as,ld。下面我们将逐步分析这几个过程以及相关的内容,诸如语法检查、代码调试、汇编语言等。 1、预处理 预处理是C语言程序从源代码变成可执行程序的
2016-04-03 09:41:15 442
转载 《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?
昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间?一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。
2016-04-03 09:03:15 378
Java程序性能优化 让你的Java程序更快、更稳定 pdf [葛一鸣编著][清华大学出版社][2012.10][400页][13093953]
2017-11-29
云计算网络珠玑 完整版 pdf part1 注意还有part2
2016-11-06
图说设计模式 Graphic Design Patterns
2016-08-27
中文情感分析 酒店评论预料
2015-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人