Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Java NIO中的读和写

Java NIO中的读和写

阅读目录一、概述二、从文件中读取三、写入文件 四、读写结合一、概述 读和写是I/O的基本过程。从一个通道中读取只需创建一个缓冲区,然后让通道将数据读到这个缓冲区。写入的过程是创建一个缓冲区,用数据填充它,然后让通道用这些数据来执行写入操作。二、从文件中读取 1、原始I/O读文件 如果使用原来的I/O,那么只需要创建一个FileInputStream并从它那里读取,示例代码如下:public class BioTest{public static v...
字典树(Trie树)实现与应用

字典树(Trie树)实现与应用

阅读目录一、概述二、构建过程三、简单应用四、参考资料一、概述 1、基本概念 字典树,又称为单词查找树,Tire数,是一种树形结构,它是一种哈希树的变种。 2、基本性质根节点不包含字符,除根节点外的每一个子节点都包含一个字符从根节点到某一节点。路径上经过的字符连接起来,就是该节点对应的字符串每个节点的所有子节点包含的字符都不相同 3、应用场景 典型应用是用于统计,排序和保存大量的字符串(不仅限于字符串),经常被搜索引擎系统用于文本词频统计。 ...
Java中的BitSet学习笔记

Java中的BitSet学习笔记

一. Bitset 基础Bitset,也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计中。上面的图来自c++库中bitset的一张图。基本原理是,用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用用的时候既可根据某一个是否为0表示此数是否出现过。一个1G的空间,有 8*1024*1024*1024=8.58*10^9bit,也就是可以表示85亿个不同的数。常见的应用是那些需要对海量数据进行一些统计工作的时...
Mybatis延迟加载和查询缓存

Mybatis延迟加载和查询缓存

阅读目录一、延迟加载二、查询缓存一、延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。在mybatis核心配置文件中配置:lazyLoadingEnabled、aggressiveLazyLoading设置项描...
BitSet的使用场景及简单示例

BitSet的使用场景及简单示例

BitSet简介 类实现了一个按需增长的位向量。位 set 的每个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个BitSet修改另一个BitSet的内容。 默认情况下,set 中所有位的初始值都是false。 每个位 set 都有一个当前大小,也就是该位 set 当前所用空间的位数。注意,这个大小与位 set 的实现有关,所以它可能随实...
Java BitSet使用场景和示例

Java BitSet使用场景和示例

阅读目录一、什么是BitSet?二、Java BitSet实现原理三、使用场景四、参考资料一、什么是BitSet? 注:以下内容来自JDK API: BitSet类实现了一个按需增长的位向量。位Set的每一个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个 BitSet修改另一个 BitSet的内容。 默认情况下,set 中所有位的初始值...
各种排序算法的分析及Java实现

各种排序算法的分析及Java实现

排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。数据结构与算法分析:C语言描述(原书第2版) PDF+源代码+习题答案 http://www.linuxidc.com/Linux/2014-04/99735.htm 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排...
常用排序算法稳定性分析

常用排序算法稳定性分析

【1】选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法冒泡排序、插入排序、归并排序和基数排序都是稳定的排序算法。【2】研究排序算法的稳定性有何意义?首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。再简单具体一点,如果A i == A j,Ai 原来在 Aj 位置前,排序后 Ai 仍然是在 Aj 位置前。下面我们分析一下稳定性的好处:(1)如果排序算法是稳定的,那么从...
基数排序 详解

基数排序 详解

编程论到极致,核心非代码,即思想。所以,真正的编程高手同时是思想独到及富有智慧(注意与聪明区别)的人。每一个算法都是一种智慧的凝聚或萃取,值得我们学习从而提高自己,开拓思路,更重要的是转换思维角度。其实,我们大多数人都活在“默认状态”下。没有发觉自己的独特可设置选项-----思想。言归正传(呵呵!恢复默认状态),以下学习基数排序。【1】基数排序以前研究的各种排序算法,都是通过比较数据大小的方法对欲排数据序列进行排序整理过程。而基数排...
Linux正则表达式初入门

Linux正则表达式初入门

了解Linux正则表达式之前,需要了解Linux中通配符和正则的区别:通配符主要用于bash环境,而正则大多数用于Linux三剑客(grep、sed、awk)等中…且Linux中的正则又和其他开发环境下的正则有所区别,咱们暂时研究的还只是Linux环境下的正则…通配符基础通配符描述示例*任意多个字符find . *.sh?代表任意一个字符find . ?.sh;连续不同命令分隔ls m1;ls m2#配置文件注释####cron...
Mybatis入门程序

Mybatis入门程序

阅读目录一、概述二、Mybatis结构三、搭建Mybatis运行环境四、小结一、概述 Mybatis是一个持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注sql本身,而不需要处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等过程。 Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句...
Spring AOP详细介绍

Spring AOP详细介绍

AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。一 AOP的基本概念(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afte...
Spring的事件发布机制

Spring的事件发布机制

一:Spring的事件发布 ApplicationContext提供了针对Bean的事件传播功能,其中的主角是publishEvent()方法,通过这个方法可以将事件通知给系统内的监听器(需实现ApplicationListener接口)。 ApplicationContext这个接口,是Spring的上下文,通常获取Bean就需要这个接口,这个接口并不是直接继承于BeanFactory,其中最著名的是直接继承了ApplicationPublisher...
<< 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 >>