自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 轻量级锁和偏向锁

JVM的两种改善机制——轻量级锁和偏向锁轻量级锁synchronized会在对象的头部打标记,这个加锁的动作是必须要做的,悲观锁通常还会做许多其他的指令动作,轻量级锁希望通过CAS实现,它认为通过CAS尝试修改对象头部的mark区域的内容就可以达到目的,由于mark区域的宽度通常是4~8字节,也就是相当于一个int或者long的宽度,是否适合于CAS操作。 轻量级锁通常会做一下4个步骤: (

2016-11-21 20:53:41 2070

原创 进程0的创建

设备环境初始化及激活进程01、设置根设备、硬盘2、规划物理内存格局,设置缓冲区、虚拟盘、主内存3、设置虚拟盘空间并初始化4、内存管理结构mem_map初始化系统通过mem_map[]对1MB以上的内存分页进行管理,记录一个页面的使用次数。 为什么系统对1MB以内的内存空间不用这种分页方法管理呢? 因为操作系统的设计者对内核和用户进程采用了两套不同的分页管理方法。内核采用分页管理方法,线性地址

2016-11-21 20:53:18 432

原创 海量数据处理

海量数据处理方法大总结一、Bloom filter适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点:   对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关

2016-11-21 20:52:56 275

原创 操作系统磁盘缓存

高速磁盘缓存高速磁盘缓存可大致分为以下三种: - 目录项高速缓存——主要存放的是描述文件系统路径名的目录项对象 - 索引节点高速缓存——主要存放的是描述磁盘索引节点的索引节点对象- 页高速缓存——主要存放的是完整的数据页对象,每个页所包含的数据一定属于某个文件,同时,所有的文件读写操作都依赖于页高速缓存。

2016-11-21 20:51:32 1237

原创 最小化Spring xml配置

最小化Spring xml配置3.1 自动装配Bean属性byName自动装配使用byName自动装配的缺点是需要假设Bean的名字与其他Bean的属性的名字一样。如果多个乐器家Bean都被配置为byName自动装配,那他们将会演奏同一个乐器。 byType自动装配一个局限:如果找到多个Bean,它们的类型与需要自动装配的属性的类型都相匹配,则会抛出异常。Spring提供了另外两种解决方案:1)为自

2016-11-21 20:50:55 307

原创 装配Bean

装配Bean声明Bean创建Spring配置<?xml version="1.0" encoding="UTF-8" ?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xs

2016-11-21 20:50:03 207

原创 concurrenthashmap

ConcurrentHashMap1 JDK6与JDK7中的实现1.1 设计思路与并发度ConcurrentHashMap是并发容器,使用锁分段技术来保证线程安全的(ConcurrentHashMap是弱一致性的)。 ConcurrentHashMap默认的并发度为16,但用户也可以在构造函数中设置并发度。当用户设置并发度时,ConcurrentHashMap会使用大于等于该值的最小2幂指数作为实

2016-11-21 20:48:01 297

原创 Linux调度IO模型

Linux调度IO模型select模型:由一个数组来管理,每当注册一个可处理的事件时,就会占用一个数组的位置。由于是使用数组来存储事件的注册,所以就有宽度限制,在32位机器上限制为1024,在64位机器上限制为2048. 每次系统请求时都会线性遍历整个数组看是否有可处理的事件,若没有则睡眠,知道超时或者被事件触发唤醒后重新遍历,性能自热不怎么样。poll模型:与select最大的区别在于它不是用

2016-11-21 20:46:49 263

原创 JVM

内存管理子系统运行时数据区域程序计数器 java虚拟机栈——每个方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方 法出口等信息。 本地方法栈 java堆——在虚拟机启动时创建,用于存放对象实例,但随着JIT编译器的发展和逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化发生。另一方面,从内存分配的角度,线程共享的java堆中可能划分出多个线程

2016-11-21 20:45:52 246

原创 IoC容器概述

spring企业应用开发实战第三章 IoC容器概述BeanFactory和ApplicationContextBean工厂是Spring框架最核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的java对象成为可能,应用上下文建立在BeanFactory基础之上,提供了更多面向应用的功能,它提供了国际化支持和框架时间体系,更易于创建实际应用。我们一般称BeanFacto

2016-11-21 20:45:14 325

原创 反射

反射1、Class类类是对象,类是java.lang.Class类的实例对象 任何一个类都是Class的实例对象,这个实例对象有三种表示方式: 第一种表示方式–>实际告诉了我们任何一个类都有一个隐含的静态成员变量class。 Class c1 = Foo.class; 第二种表达方式–>已知该类的对象通过getClass()。 Class c2 = foo.getClass(

2016-11-21 20:31:47 227

原创 多线程

面试总结-进程、线程与多线程进程概念程序的执行过程,一个动态的概念;持有资源(共享内存、共享文件)和线程。线程概念系统中最小的执行单元,同一进程有多个线程,线程共享进程的资源。1.进程和线程有什么区别?a.进程是资源分配的基本单位,线程是cpu调度,或者说是程序执行的最小单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单

2016-11-21 20:31:05 228

原创 Java_socket

java socket通信基础补充1、setReuseAddress(true|false),该参数设置为true,允许将多个socket绑定到同一个端口上,通过getReuseAddress()方法获取当前值即可,但是在发生Socket.bind()之前必须先设置才会生效。这个参数很少回去考虑使用。 2、setTcpNoDelay(true|false),该参数默认为false,会启用Nag

2016-11-21 20:30:26 329

原创 JAVA_IO

JAVA I/O1、编码问题String s = "慕课ABC";byte[] bytes1 = s.getBytes();//转换成字节序列用的是项目默认的编码GBKfor(byte b : bytes) { System.out.println(Integer.toHexString(b & 0xff));//把字节以16进制方式显示}//gbk编码中文占用2个字节,英文占用1个字

2016-11-21 20:29:49 202

原创 disruptor

Disruptordisruptor概要一个高性能的并发Buffer实现,用于在生产者——消费者问题上提高效率。消息通过ringbuffer在无锁的情况下进行处理。 disruptor特点高性能(吞吐量大、低延迟)

2016-11-21 20:29:11 192

原创 linux开机自启动程序

linux开机自启动程序Ubuntu自动启动程序Linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(要以root的身份才能打开)。

2016-11-19 16:03:36 300

转载 Ubuntu上SNMP安装配置

SNMP安装过程我们需要安装下面三个软件包: - snmpd:snmp服务端软件 - snmp:snmp客户端软件 - snmp-mibs-downloader:用来下载更新本地mib库的软件 通过sudo apt-get install snmpd snmp snmp-mibs-downloader 命令安装 配置安装完snmpd软件后,系统为我们自动开启了这个服务,查看是否运行的命令

2016-11-17 11:03:24 949

原创 linux开机自启动程序

linux开机自启动程序Ubuntu自动启动程序Linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(要以root的身份才能打开)。 在/etc这个文件夹下面有rc0.d到rc6.d的文件夹,这些都是Linux不同的runlevel,我们一般进入的x windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启

2016-11-16 16:06:43 250

原创 访问者模式

访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

2016-11-05 20:34:30 191

原创 进程、线程与多线程

面试总结-进程、线程与多线程。1.进程和线程有什么区别?2. 什么是线程安全?

2016-10-29 16:28:42 229

原创 Java中final的进一步理解

Java中final的进一步理解。final修饰符的作用在JMM中要求final域(属性)的初始化动作必须在构造方法return之前完成。匿名内部类使用外部变量,这个变量必须用final来声明才可以被使用 。

2016-10-29 16:08:41 237

原创 为什么wait()和notify()必须要使用sychronized

为什么wait()和notify()必须要使用sychronized?如果不用就会报错IllegalMonitorStateException. 首先要明确,wait()和notify()的实现基础是基于对象存在的。那为什么要基于对象存在呢?这里要明确要等,等待的就是一个对象发出的信号,所以要基于对象而存在。 既然是基于对象的,因此它不得不用一个数据结构来存放这些等待的线程,而且这个数据

2016-10-29 11:41:21 3235

原创 Java_socket通信基础补充

java socket通信基础补充,相关api补充说明

2016-10-29 10:44:31 360

空空如也

空空如也

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

TA关注的人

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