自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lz710117239的博客

java程序员的博客

  • 博客(17)
  • 收藏
  • 关注

转载 理解inode

一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即

2017-11-30 12:14:46 163

转载 数据库连接池c3p0和dbcp

文章转载自:https://www.cnblogs.com/haogeBlogs/p/5856302.html现在常用的开源数据连接池主要有c3p0、dbcp和proxool三种,其中: hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置

2017-11-29 22:55:47 185

转载 @RequestMapping 用法详解之地址映射(转)

引言:前段时间项目中用到了RESTful模式来开发程序,但是当用POST、PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request.getReader() 打出的数据里确实存在浏览器提交的数据。为了找出原因,便对参数绑定(@RequestParam、 @RequestBody、 @

2017-11-29 22:29:08 266

转载 Java CAS 和ABA问题

独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS 操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V

2017-11-29 21:36:57 182

原创 Java并发原理

//并发产生的底层原理,从三个维度进行说明://1.内存维度,cpu内存有主存,缓存,寄存器,一般我们操作数据在寄存器上操作是最快的,但是直接在寄存器上操作的话,会造成,每个线程自己的寄存器上面,自己保有一个数字,不与其他线程相通//2.cpu维度,当我们多线程操作数据的时候,会进行cpu时间片轮换,造成相同代码段同一时间会有多条线程同时执行//3.代码的指令重排序,cpu执行我们的代码的

2017-11-28 20:39:00 667

原创 java动态代理原理源码解析(jdk8)

本文是在一篇动态代理文章的基础上,分析jdk8的动态代理源码,jdk8中动态代理的实现方式并没有变,只是源码的位置不同了,在此做下分析。我们先上动态代理的例子代码,然后进行源码分析:import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Pro

2017-11-28 20:23:38 2374

转载 Java中Unsafe类详解

java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可以修改对象的

2017-11-26 23:24:05 1041

转载 linux awk命令详解

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr

2017-11-25 12:11:00 161

转载 redis的事务和watch

redis的事务严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的。 redis中的事务定义Redis中的事务(transaction)是一组命令的集合。 事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。 Redis保证一

2017-11-24 09:00:30 645

原创 SpringMVC父子容器加载与关系源码

我们都知道SpringMVC父子容器加载是通过dispatcherServlet与ContextLoaderListener类:他们的关系源码如下:先说父容器加载:Context'Loader'Listener源码如下:@Override public void contextInitialized(ServletContextEvent event) { initWebApplic

2017-11-23 20:16:04 518

转载 CMS垃圾收集器执行过程

原创不易,未经允许,不得转载~~~  什么是CMS? Concurrent Mark Sweep。 看名字就知道,CMS是一款并发、使用标记-清除算法的gc。 CMS是针对老年代进行回收的GC。  CMS有什么用? CMS以获取最小停顿时间为目的。 在一些对响应时间有很高要求的应用或网站中,用户程序不能有长时间的停顿,CMS 可以用于此场景。  CMS...

2017-11-17 22:41:57 7153

原创 redis设计与实现(14)服务器

Redis服务器负责与多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存客户端执行命令所产生的数据,并通过资源管理器来维持服务器自身的运转。命令请求的执行过程一个命令请求从发送到获得回复的过程中,客户端和服务器需要完成一系列操作。举个例子,如果我们使用客户端执行以下命令:redis>SET KEY VALUEOK那么客户端发送SET KEY VALUE命令到获得回

2017-11-17 21:06:45 311

原创 redis设计与实现(13)客户端

redis服务器是典型的一对多服务器程序,一个服务器与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。通过使用由I/O多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信。对于每个与服务器进行连接的客户端,服务器都为这些客户端建立了相应的redis.h

2017-11-15 21:21:16 283

转载 reids(9)数据库

数据库服务器中的数据库redisClient切换数据库redis客户端默认目标数据库为0号数据库,可以通过SELECT命令来切换目标数据库。客户端状态redisClient结构的db属性记录了客户端当前的目标数据库,这个属性是指向redisdb结构的指针。typedef struct redisClient{ //记录客户端当前正在使用的数据

2017-11-14 22:33:57 256

转载 redis设计与实现(七)压缩列表

压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表做列表键的底层实现。例如,执行以下命令将创建一个压缩列表实现的列表键:redis>RPUSH 1st 1 3 5 10086 "hello" "world"(integer)6redis>OBJECT EN

2017-11-14 21:08:47 275

转载 mybatis源码分析,sql语句执行的完整流程

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。如何新建MyBatis源码工程请点击MyBatis源

2017-11-11 20:47:04 338

转载 redis设计与实现(六)整数集合

整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就是使用整数集合作为集合键的底层实现。举个例子,如果我们创建一个只包含五个元素的集合键,并且集合中的所有元素都是整数,那么这个集合键的底层实现就会是整数集合:redis>SADD number 1 3 5 7 9(integer)5redis>OBJECT ENCOD

2017-11-05 19:00:43 236

空空如也

空空如也

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

TA关注的人

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