自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【深入理解 Java 虚拟机笔记】虚拟机字节码执行引擎

执行引擎是 Java 虚拟机最核心的组成部分之一。在 Java 虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行引擎的统一外观(Facade)。不同的虚拟机实现,执行引擎可能会有解释执行和编译执行两种,有可能两种兼备。

2018-12-07 10:49:37 195

原创 【深入理解 Java 虚拟机笔记】虚拟机类加载机制

虚拟机的类加载机制,即虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成虚拟机可以直接使用的 Java 类型。在 Java 语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成,这虽然增加一些性能开销,但是会为 Java 应用程序提供高度的灵活性。

2018-11-16 11:18:15 178

原创 【深入理解 Java 虚拟机笔记】类文件结构

由于最近十年内虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,将我们编写的程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,越来越多的程序语言选择了操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。

2018-10-25 12:15:22 256

原创 【深入理解 Java 虚拟机笔记】虚拟机性能监控与故障处理工具

定位问题时,知识和经验是关键基础、数据(运行日志、异常堆栈、GC日志、线程快照、堆转储快照)是依据、工具是运用知识处理数据的手段。

2018-10-15 18:59:17 200

原创 【深入理解 Java 虚拟机笔记】垃圾收集器与内存分配策略

Java 的程序计数器、虚拟机栈、本地方法栈这 3 个区域随线程而生,随线程而灭,内存分配和回收都具备确定性。而 Java 堆和方法区则不一样,这部分内存的分配和回收是动态的,垃圾收集器所关注的是这部分的内存。

2018-10-01 13:47:10 142

原创 【深入理解 Java 虚拟机笔记】Java内存区域与内存溢出异常

对于 Java 程序员来说,在虚拟机自动内存管理机制下,不需要为 new 操作去写配对的 delete/free 代码,不容易出现内存泄漏。但是如果出现内存泄漏问题,如果不了解虚拟机的机制,便难以定位。

2018-09-16 13:55:32 164

原创 操作系统笔记 虚拟存储器和 I/O 设备

虚拟存储器,即具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。I/O系统的基本功能:1. 隐藏物理设备的细节,2. 与设备的无关性,3. 提高处理机和 I/O 设备的利用率,4. 对 I/O 设备进行控制,5. 确保对设备的正确共享,6. 错误处理。

2018-07-07 21:04:52 901

原创 操作系统笔记 处理机调度和存储器管理

处理机调度分为:1. 高级调度(High Level Scheduling)2. 中级调度(Intermediate Scheduling)3. 低级调度(Low Level Scheduling);存储器是计算机系统重要的组成部分,其管理的主要对象是内存,如何对它进行有效的管理,不仅直接影响到存储器的利用率,而且对系统性能也有重大影响。

2018-07-07 20:35:02 2287

原创 操作系统 引论和进程

操作系统(Operation System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。其主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并为用户和应用程序提供了一个简单的接口,便于用户使用。

2018-07-07 20:21:38 229

原创 LinkedList 剖析

LinkedList 内部是用双向链表实现的,它是一个 List ,但也实现了 Deque 接口,可以作为队列、栈和双端队列使用,维护了长度、头节点和尾节点,它按需分配空间,不需要预先分配很多空间;不可以随机访问,按照索引位置访问效率比较低,必须从头或尾顺着链接找,效率为O(N/2);不管列表是否已排序,只要是按照内容查找元素,效率都比较低,必须逐个比较,效率为O(N); 在两端添加、删除元素的效率很高,为O(1)。

2018-07-07 19:05:20 155

原创 ArrayList 剖析

ArrayList,其内部采用动态数组实现,可以随机访问,按照索引位置进行访问效率很高,效率是O(1);除非数组已排序,否则按照内容查找元素效率比较低,具体是O(N),N为数组内容长度,也就是说,性能与数组长度成正比;添加元素的效率还可以,重新分配和拷贝数组的开销被平摊了,具体来说,添加N个元素的效率为O(N);插入和删除元素的效率比较低,因为需要移动元素,具体为O(N)。

2018-07-07 18:57:17 230

原创 Redis 一些基础知识以及数据类型

Redis 部分基础知识以及Redis 五大数据类型:string (字符串)是 redis 最基本的类型,一个 key 对应一 个 value 。hash (哈希)是一个键值对集合,是一个 string 类型的 field 和 value 的映射表。list (列表)是简单的字符串列表,按照插入顺序排序。set(集合)是string类型的无序集合。zset(sorted set:有序集合) set 一样也是string类型元素的集合,且不允许重复的成员。

2018-07-07 12:54:16 267

原创 Redis 概述与例子

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。它是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

2018-07-05 22:26:25 186

原创 MyBatis 8. 插件

2. MyBatis 插件 MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandl...

2018-03-10 15:23:44 143

原创 MyBatis 7. 逆向工程

Mybatis 逆向工程Mybatis Generator(MBG)是一个专门为 MyBatis 框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及 bean 类。支持基本的增删改查,以及 QBC 风格的条件查询。但是表连接、存储过程等这些复杂 sql 的定义需要我们手工编写。官方文档:http://www.mybatis.org/generator/通过 ma...

2018-03-09 13:35:15 352 2

原创 MyBatis 6. Mybatis-Spring 整合

Mybatis-Spring 整合 在 pom.xml 加入<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version>&l

2018-03-09 13:31:07 173

原创 MyBatis 5. 缓存

缓存MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存。一级缓存和二级缓存默认情况下,只有一级缓存(SqlSession 级别的缓存,也称为本地缓存)开启。二级缓存需要手动开启和配置,他是基于 namespace 级别的缓存。为了提高扩展性。MyBatis定义了缓存接口 Cache 。...

2018-03-09 13:28:39 168

原创 MyBatis 4. 动态 SQL

动态 SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来...

2018-03-09 13:26:37 138

原创 MyBatis 3. XML映射文件

XML 映射文件1. 概述 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):c...

2018-03-09 13:24:22 286

原创 MyBatis 2. XML配置文件

XML 配置文件configuration 标签的子标签顺序是固定的:1.properties2.settings3.typeAliases4.typeHandlers5.objectFactory6.objectWrapperFactory7.reflectorFactory8.plugins9.environments10.databaseIdPro...

2018-03-09 13:20:02 173

原创 MyBatis 1. 入门与使用

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

2018-03-09 13:18:15 198

原创 org.springframework.beans.factory.NoSuchBeanDefinitionException 异常解决方法

我在 spring 整合 mybatis 出现 org.springframework.beans.factory.NoSuchBeanDefinitionException 异常。 异常如下:org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for depend...

2018-03-02 18:56:58 11543 2

原创 Linux 基本命令

Linux 命令1. 概述Linux是基于Unix的。是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。root管理员的home目录是 root其他用户的home目录是 home2. 常用命令1.man 命令Linux 下的帮助指令,通过man指令可以查看 Linux 中的指令帮助、配置文...

2018-02-10 19:53:50 218

原创 AJAX 入门和使用

1. 概述 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必需刷新整个网页。 Google 通过...

2018-02-07 15:57:53 162

原创 Spring MVC (二)

1. 文件上传 Spring MVC为文件上传提供了直接的支持,这种支持是通过MultipartResovler实现的。Spring用Jakarta Commons Fileupload技术实现一个MultipartResovler实现类:CommonsMultipartResolver 。 Spring MVC上下文中默认没有装配MultipartResovler,因此默认情况...

2018-02-06 13:48:38 121

原创 Spring MVC 处理静态资源出现 404 错误

Spring MVC处理静态资源出现404错误错误页面控制台打印警告04-Feb-2018 13:57:24.580 警告 [http-nio-8080-exec-8] org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI [/...

2018-02-04 14:39:09 707 1

原创 Spring MVC (一)

1. 概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一。 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架。 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。 支持 REST 风格的 URL 请求。 采用了松散耦合可插拔组件结...

2018-02-04 13:04:04 232 2

原创 Spring AOP 入门与使用

1.概述 AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象编程) 的补充. AOP 的主要编程对象是切面(aspect), 而切面模块化横切关注点. 在应用 AOP 编程时, 仍然需要定义公共功能, 但可以明确的定义这个功能在哪里, 以什...

2018-01-29 14:24:32 228

原创 Maven 入门与使用

MAVEN1. 概述 Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使...

2018-01-26 20:23:51 292

原创 Spring 3. XML自动装配、关系等细节

1. 装配Bean的可选方案 Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。 但需要告诉Spring要创建哪些Bean并且如何将其装配在一起。 Spring有三种主要的装配机制: - 在XML中进行显式配置; - 在java中进行显示配置(通过注解); - 隐式的bean发现机制和自动装配。这篇博文...

2017-12-12 22:40:35 216

原创 Spring 2. 通过 XML装配Bean

1. 装配Bean的可选方案 Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。 但需要告诉Spring要创建哪些Bean并且如何将其装配在一起。 Spring有三种主要的装配机制: - 在XML中进行显式配置; - 在java中进行显示配置(通过注解); - 隐式的bean发现机制和自动装配。这篇博客...

2017-12-10 17:15:52 430

原创 Spring 1.初识 Spring

1. Spring简介Spring是一个开源框架,最早由Rod Johnson创建,是针对JavaBean生命周期进行管理的轻量级容器,而其最根本的使命:简化Java开发。Spring采取了以下4种关键策略: - 基于POJO(Plain Old Java Object)的轻量级和最小侵入性编程; - 通过依赖注入和面向接口实现松耦合; - 基于切面和惯例进行声明式编程; - 通过切...

2017-12-09 15:18:25 252

空空如也

空空如也

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

TA关注的人

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