猫侠的小窝

一步一步,盖个大房子……

Linux文件管理

Linux文件管理


Linux内存管理

Linux内存管理

页 内存管理的基本单位是页。 描述页的结构体是page。描述的是物理页,不是虚拟页。 struct page{ flags // 页的状态,是不是脏的等 _count // 引用计数 virtual // 虚拟地址 } 区 ZONE_DMA:这个区包含的页能用来执行DMA操作; ZONE_NORMAL:这个区包含的都是能正常映射的页; ZONE_HIGH...

Linux进程管理

Linux进程管理

描述进程 进程描述符task_struct 由slab分配器分配一个thread_info结构体到进程内核栈的栈底,thread_info结构体中有一个指向task_struct的指针,task_struct中有一个int值pid来表示每个进程 进程五种状态 TASK_RUNNING:正在执行或等待执行。 TASK_INTERRUPTIBLE:处于阻塞状态,可被唤醒。 TASK_UNINT...

Dragger2概述

Dragger2概述

简介 Dagger2是为Android和Java平台提供的一个完全静态的、在编译时进行依赖注入的框架。 MVP模式 概念 Model:数据 View:视图 Presenter:业务逻辑 优点 1、分离了视图逻辑和业务逻辑,降低了耦合 2、Presenter被抽象成接口,可以有业务实现和测试实现,方便单元测试 3、把业务逻辑放到Presenter,避免后台线程引用着Activity,导致A...

Mybatis面试题

Mybatis面试题

什么是Mybatis? 1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 ...

SpringMVC面试题

SpringMVC面试题

什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 SpringMVC的流程? 1、用户发送请求至前端控制器D...

Spring面试题

Spring面试题

Spring由哪些模块组成? Spring Core:核心类库,提供IOC服务; Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); Spring AOP:AOP服务; Spring DAO:对JDBC的抽象,简化了数据访问异常的处理; Spring ORM:对现有的ORM框架的支持; Spring Web:提供了基本的面向Web的综合特性,...

SQL基础

SQL基础

create table department (dept_name varchar(20), name varchar(20) not null, budget numeric(12,2), semester varchar(8), primary key (dept_name), foreign key (name) references ...

Java基础面试题

Java基础面试题

java中==和equals和hashCode的区别 基本数据类型的==比较的是值相等。 类的==比较的是内存的地址,即是否是同一个对象。 equals默认实现是==。 hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。 如果两个对象equals,他们的hashcode一定相等; 如果两个对象hashcode不相等,他们一定不e...

Android库面试题

Android库面试题

有了解过Glide的实现吗? 可以分为四个模块:资源封装、构造请求、执行请求、图片缓存; 资源封装、构造请求、执行请求只是对Android和其它网络请求库API的抽象,方便统一操作;关键在于图片缓存。 Glide使用了三级缓存:BitmapPool、内存缓存、磁盘缓存。 BitmapPool实现了复用Bitmap对象,减少了Bitmap对象的创建和回收; 内存缓存、磁盘缓存使用了Lru算法,...