Java NIO编程理论基础篇——Java I/O的发展以及linux网络I/O模型

发展简述: Java在jdk1.4之前,Java对I/O的支持并不完善,开发人员会遇到许多问题,例如: 没有数据缓冲区,性能较低; 没有C或者C++中的Channel概念,通常 ...

2019-01-01 23:58:45

阅读数 4125

评论数 13

小总结2018/11/28

现在是2018/11/28晚上23:38 不太舒服的一天,除了早上去上机之外几乎是躺了一天,本应该上的舞蹈课也没去。晚上还是会照例刷刷CSDN,今天是粉丝变成三位数的日子,这两天看着这个趋势想到这一天应该快要到来了,但是没想到今天就破了百,emmm谢谢大家,这两天差不多要继续更博了。 我也不知道自...

2018-11-29 23:46:03

阅读数 59

评论数 4

查找不重复无序数组中是否存在两个数字的和为某个值 ---Java语言

今天去某在线教育面试面试官让做的一道题,题目描述如下: 给定一个不重复的无序数组arr和一个定值num 查找arr中是否有两个数的和等于num 有则返回这两个数的下标(可能有多组, 只用返回一组), 没有则返回null 很多人一想可能就是两层for循环,我想了很久最后写了双重for循环…【这个代...

2018-09-30 00:28:44

阅读数 189

评论数 2

非递归实现树的前中后序遍历总结 --- Java语言实现

前言 三种遍历的递归写法都很好写,所以总结一下非递归写法。 先贴一张图复习一下三种遍历方式就进入正文啦~ 【注:本文所有代码实现中树的结点定义如下: public class Node { int val; Node left; Node right; Node ...

2018-09-22 17:00:52

阅读数 63

评论数 2

判断一颗树是不是XX树总结 --- Java语言实现

前言 写这篇博客的原因是今天去面试了,结果有段时间没刷题【都是借口…好好刷题吧…】让手撕了一个判断是否是一颗完全二叉树的代码,挣扎了挺久还是没有写完整,所以回来整理一下,继续努力! 【注:以下所有代码实现中的结点定义如下: public class Node { int val; ...

2018-09-20 00:56:31

阅读数 83

评论数 1

深入理解volatile的内存语义,并通过volatile写一个线程安全的单例

前言: 对缓存一致性协议以及内存屏障和happens-before原则不太了解的小伙伴建议先百度google维基一下或移步的我的另一篇博客《浅谈缓存一致性原则和Java内存模型(JMM)》之后再看这篇博客更好理解哦 在研究Java并发包之前一直以为volatile关键字只是一个打辅助的,之后发...

2018-08-07 12:49:32

阅读数 150

评论数 1

浅谈缓存一致性原则和Java内存模型(JMM)

Java内存模型(JMM)是一个概念模型,底层是计算机的寄存器、缓存内存、主内存和CPU等。 多处理器环境下,共享数据的交互硬件设备之间的关系: JMM: 从以上两张图中,谈一谈以下几个概念: 1.缓存一致性协议(MESI): 由于每个处理器都含有私有的高速缓存,在对缓存中数据进...

2018-08-01 04:19:55

阅读数 684

评论数 1

Redis持久化(RDB和AOF)

前言 为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中。Redis提供了两种持久化的方式:RDB和AOF,这两种持久化方式所产生的存储文件的格式分别是.rdb和.aof。 一.RDB 1.什么是RDB方式? RDB就是快照方式实现持久化,所谓快照就是将...

2018-06-23 21:08:43

阅读数 85

评论数 1

排序算法之堆排思想及代码实现

在介绍堆排序前,我们需要了解一下一种数据结构 —— 顶堆。 什么是顶堆? 它是一颗完全二叉树,顶堆有大顶堆和小顶堆两种。所谓大顶堆就是在这颗完全二叉树中,任何一颗子树都满足:父结点的值 > 孩子结点的值;小顶堆则相反。 如图: 什么是堆排序(Heapsort)? ...

2018-03-26 22:47:57

阅读数 115

评论数 1

volatile和乐观锁悲观锁

最近想学习一些并发的内容,感觉是很复杂的一个体系,看到两篇非常好的博客分享一下 《volatile关键字解析》 从并发的引入包括内存模型开始讲,对volatile关键字的原理从汇编结果的角度讲解清晰 《Java并发问题–乐观锁与悲观锁以及乐观锁的一种实现方式-CAS》 清晰的说明了悲观锁与...

2018-03-19 11:00:20

阅读数 209

评论数 0

经典快排思想,以及快排的改进

一.经典快排思想 前提条件:给定一个无序数组arr 取这个数组最后一个数 num 作为标准,将前面部分的数分为两部分,使得<=num的部分在左边,>num的数在右边; 然后将最后一个数和>num部分的第一个数进行交换,就使得原...

2018-03-02 16:50:40

阅读数 382

评论数 0

插入排序、归并排序以及小和问题

一.插入排序 插入排序的思想了类似于向一个有序的数组里面插入一个数。最初我们将一个无序的数组0~N-1的0~0部分视作有序,然后取1位置的数与0位置上的数进行比较,比0位置上数小就进行交换,比0位置上数大就不变,从而使0~1部分排成有序,以此类推。也就是说,取有序部分后边的数插入到那个有序的部分...

2018-02-28 21:55:50

阅读数 452

评论数 0

递归的实质以及递归时间复杂度的计算

说到递归,总会提到这么几个问题: 递归和迭代的区别是什么? 答:迭代式调别人,而递归是调自己 递归能不能改为迭代? 答:可以 那么递归的实质是什么?今天就说一下递归的实质 1.递归的实质:压系统栈 压到栈里的是当前的所有信息,包括当前跑到多少行,当前的参数和函数内的参数变量,等等 ...

2018-02-28 21:02:25

阅读数 246

评论数 0

对数器的使用

听左神算法课的时候学到了一个非常有用的东西——对数器 对数器是用来测试代码正确性的,我们在找不到合适的oj系统测试自己的代码时,可以自己写一个对数器对代码进行测试 设计对数器的一般步骤为: 1.有一个你要测的方法a; 2.实现一个绝对正确即使复杂度不好的方法b; 3.实现一个随机样本产生...

2018-02-27 17:21:30

阅读数 1295

评论数 0

时间复杂度和两种基础排序

一.认识时间复杂度 1.常数时间的操作: 一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。 2.时间复杂度: 它是常数操作数量的指标,常用O表示。 计算方法: 在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要系数,剩下的部分如果记为f(N),你们时间复...

2018-02-27 15:13:28

阅读数 228

评论数 0

JDBC基础(二):Statement和Preparement

Statement对象是用来执行SQL语句的 PreparedStatement:预编译的Statement对象,是Statement的子接口。 一.性能和代码编写的简洁程度方面 它允许数据库预编译SQL语句(这些SQL语句通常有带有参数),以后每次只需改变SQL命令的参数,避免数据库每次都...

2018-01-29 17:08:19

阅读数 291

评论数 0

JDBC基础篇

什么是JDBC? JDBC全称是Java Database Connectivity,即Java数据库连接,它是一种可以执行SQL语句的API。程序通过JDBC API连接到关系数据库,并使用结构化语言(SQL,数据库标准的查询语言)来完成对数据库的查询、更新。 由于JDBC为数据库开发提供了...

2018-01-29 13:54:57

阅读数 426

评论数 0

请求转发(requestDispatcher)和请求重定向(sendRedirect)

在进行网页中跳转时有两种方式完成,分别是请求转发和请求重定向。 1.请求转发(requestDispatcher) 该动作是服务器行为,在web容器中进行的,客户端对于跳转是不知道的,地址栏中显示的URL是不会变化的 因为请求转发中是一次请求,相同的request,可以在请求中设置属性对象(s...

2018-01-28 21:40:57

阅读数 140

评论数 0

MySQL语句整理

SQL(Structured Query Language)语句,即结构化查询语言,是操作和检索关系数据库的标准语言。SQL语句一般分为以下几种: DCL(Database Control Language,数据控制语言)语句:主要由GRANT和REVOKE两个关键字完成DDL(Data...

2018-01-26 16:42:51

阅读数 242

评论数 2

处理机调度与死锁

一.处理机调度的层次及调度算法的目标1.高级调度:作业调度,多用于多道批处理系统,分时系统和实时系统不设置高级调度 2.中级调度:内存调度,即内存管理中的对换(swap),以后会专门讲解swap,这篇主要是进程调度及作业调度 3.低级调度:进程调度,多用于多处理、分时、实时等多种操作系统 4.目标...

2017-12-19 23:24:51

阅读数 229

评论数 0

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