01 2018 档案

摘要:Github: "https://github.com/nnngu" 项目源代码: "https://github.com/nnngu/nguSeckill" 关于并发 并发性上不去是因为当多个线程同时访问一行数据时,产生了事务,因此产生写锁,当一个获取了事务的线程把锁释放,另一个排队线程才能拿到写 阅读全文
posted @ 2018-01-31 07:29 nnngu 阅读(3372) 评论(1) 推荐(4)
摘要:Github: "https://github.com/nnngu" 项目源代码: "https://github.com/nnngu/nguSeckill" 前端交互流程设计 对于一个系统,需要产品经理、前端工程师和后端工程师的参与,产品经理将用户的需求做成一个开发文档交给前端工程师和后端工程师, 阅读全文
posted @ 2018-01-30 08:36 nnngu 阅读(763) 评论(1) 推荐(2)
摘要:作者: "nnngu" 项目源代码:https://github.com/nnngu/nguSeckill 首先在编写 层代码前,我们应该首先要知道这一层到底是干什么的。 层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着在 的配置文件中配置其实现的关联。这样我们就可以在应 阅读全文
posted @ 2018-01-29 08:24 nnngu 阅读(900) 评论(0) 推荐(1)
摘要:作者: "nnngu" 项目源代码:https://github.com/nnngu/nguSeckill 这是一个整合IDEA+Maven+SSM框架的高并发的商品秒杀项目。我们将分为以下几篇文章来进行详细的讲解: 01 Java高并发秒杀项目之业务分析与DAO层 02 Java高并发秒杀项目之S 阅读全文
posted @ 2018-01-28 10:30 nnngu 阅读(1696) 评论(7) 推荐(4)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-26 06:33 nnngu 阅读(308) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-26 03:41 nnngu 阅读(304) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-25 04:31 nnngu 阅读(251) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-25 01:42 nnngu 阅读(327) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-24 23:51 nnngu 阅读(4514) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-24 22:22 nnngu 阅读(197) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-24 09:49 nnngu 阅读(918) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-24 03:13 nnngu 阅读(464) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-24 01:07 nnngu 阅读(392) 评论(0) 推荐(0)
摘要:作者: "nnngu" GitHub: "https://github.com/nnngu" 博客园: "http://www.cnblogs.com/nnngu" 简书: "https://www.jianshu.com/users/1df20d76ea5c" 知乎: "https://www.z 阅读全文
posted @ 2018-01-23 04:52 nnngu 阅读(426) 评论(0) 推荐(0)
摘要:这篇文章开始总结 树和二叉树。 什么是树呢? 1、树的定义 (1)有且仅有一个特定的称为根(root) 的节点。 (2)当 n>1 时,其余节点可分为 m(m>0) 个互不相交的集合。其中每个集合本身又是一个棵树,并称为根的子树。 2、树的表示方法 最常见的是 树形表示法 和 广义表表示法,下面是树 阅读全文
posted @ 2018-01-20 17:19 nnngu 阅读(548) 评论(0) 推荐(1)
摘要:前面的几篇文章分别总结了:顺序查找、二分查找、索引查找、二叉排序树。这一篇文章要总结的是五大查找的最后一个:哈希查找(也称为散列查找)。提起哈希,我的第一印象就是java中的Hashtable类,它是由 key/value 的键值对组成的集合,它就是应用了哈希技术。 那什么是哈希查找呢?在弄清楚什么 阅读全文
posted @ 2018-01-18 02:30 nnngu 阅读(15998) 评论(1) 推荐(7)
摘要:堆和栈都是Java用来在RAM中存放数据的地方。 堆 (1)Java的堆是一个运行时数据区,类的对象从堆中分配空间。这些对象通过new等指令建立,通过垃圾回收器来销毁。 (2)堆的优势是可以动态地分配内存空间,需要多少内存空间不必事先告诉编译器,因为它是在运行时动态分配的。但缺点是,由于需要在运行时 阅读全文
posted @ 2018-01-17 05:24 nnngu 阅读(1252) 评论(1) 推荐(2)
摘要:在上一篇文章中(Java的参数传递是值传递还是引用传递),主要分析了java语言的参数传递只有按值传递而没有按引用传递。 先看一下微软的C#文档对按引用传递的定义(如下截图):https://docs.microsoft.com/zh-cn/dotnet/csharp/language-refere 阅读全文
posted @ 2018-01-17 02:33 nnngu 阅读(13310) 评论(2) 推荐(2)
摘要:当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是「按值传递」还是「按引用传递」? 答:是按值传递。Java 语言的参数传递只有「按值传递」。当一个实例对象作为参数被传递到方法中时,参数的值就是该对象的引用的一个副本。指向同一个对象,对象的内容可以在被调用的方法内 阅读全文
posted @ 2018-01-17 00:39 nnngu 阅读(42091) 评论(12) 推荐(5)
摘要:上一篇总结了索引查找,这一篇要总结的是二叉排序树(Binary Sort Tree),又称为二叉查找树(Binary Search Tree) ,即BSTree。 构造一棵二叉排序树的目的,其实并不是为了排序,而是为了提高查找和插入删除的效率。 什么是二叉排序树呢?二叉排序树具有以下几个特点。 (1 阅读全文
posted @ 2018-01-16 06:05 nnngu 阅读(10129) 评论(0) 推荐(3)
摘要:上一篇总结了二分查找,这一篇要总结的是索引查找。 关于索引,我们很容易地联想到数据库中的索引,建立了索引,可以大大提高数据库的查询速度。 索引查找又称为分块查找,是一种介于顺序查找和二分查找之间的一种查找方法,索引查找的基本思想是:首先查找索引表,可用二分查找或顺序查找,然后在确定的块中进行顺序查找 阅读全文
posted @ 2018-01-15 22:47 nnngu 阅读(10455) 评论(0) 推荐(1)
摘要:二分查找属于顺序表查找,二分查找也称为折半查找。二分查找的时间复杂度为O(log2n) 1、二分查找的定义 什么是二分查找呢?二分查找的基本思想是:在有序表中,取中间元素作为比较对象,若给定值与中间元素相等,则查找成功;若给定值小于中间元素,则在中间元素的左半区继续查找;若给定值大于中间元素,则在中 阅读全文
posted @ 2018-01-15 04:42 nnngu 阅读(2410) 评论(0) 推荐(0)
摘要:这一篇要介绍的是算法中的查找算法。查找在我们生活中无处不在,比如查公交,查机票,查酒店等等。 首先看一下查找的分类。如下图: 那么这一篇要总结的是顺序表中的顺序查找。 什么是顺序查找呢?顺序查找就是遍历整个列表,逐个元素与给定值比较,若某个元素和给定值相等,则查找成功。如果直到最后一个元素和给定值比 阅读全文
posted @ 2018-01-15 03:29 nnngu 阅读(6747) 评论(0) 推荐(2)
摘要:上一篇总结了直接插入排序和希尔排序,这一篇要总结的是归并排序,这也是七大排序的最后一种排序算法。 首先来看一下归并排序(Merge Sort) 的基本原理。它的原理是假设初始序列有n个元素,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两 阅读全文
posted @ 2018-01-15 00:46 nnngu 阅读(962) 评论(0) 推荐(2)
摘要:上一篇总结了直接选择排序和堆排序,这一篇要总结的是插入排序中的直接插入排序和希尔排序,我们主要从以下几点进行总结。 1、直接插入排序及算法实现 2、希尔排序及算法实现 3、直接插入排序PK希尔排序 1、直接插入排序及算法实现 什么是直接插入排序呢?直接插入排序的基本思想是:每次从无序序列中取出第一个 阅读全文
posted @ 2018-01-14 21:55 nnngu 阅读(865) 评论(0) 推荐(0)
摘要:上一篇总结了交换排序的冒泡排序和快速排序。这一篇要总结的是选择排序,选择排序分为直接选择排序和堆排序,主要从以下几点进行总结。 1、直接选择排序及算法实现 2、堆排序及算法实现 1、直接选择排序及算法实现 直接选择排序(Straight Select Sort) 是一种简单的排序方法,它的基本思想是 阅读全文
posted @ 2018-01-14 06:07 nnngu 阅读(718) 评论(0) 推荐(0)
摘要:排序是我们生活中经常会面对的问题。同学们做操时会按照从矮到高排列;老师查看上课出勤情况时,会按学生学号顺序点名;高考录取时,会按成绩总分降序依次录取等。排序是数据处理中经常使用的一种重要的运算,它在我们的程序开发中承担着非常重要的角色。 排序分为以下四类共七种排序方法: 交换排序: ① 冒泡排序 ② 阅读全文
posted @ 2018-01-14 01:55 nnngu 阅读(1784) 评论(0) 推荐(1)
摘要:上一篇讲了栈,这一篇要讲的是我们常用的队列,我会从以下几个方面进行总结。 1、什么是队列 2、队列的存储结构3、队列的常用操作及实现代码 1、什么是队列 (1)首先,队列也是一种特殊的线性表,它是一种操作受限的线性表。只允许在表的一端进行元素插入,而在另一端进行元素删除。允许插入的一端称为队尾,允许 阅读全文
posted @ 2018-01-13 00:10 nnngu 阅读(532) 评论(0) 推荐(0)
摘要:这篇文章要总结的是栈,主要从以下几个方面来进行总结。 1、栈是什么2、栈的存储结构3、栈的常见操作及代码实现 1、栈是什么 栈是一种特殊的线性表,它限定了只能在表的一端进行插入与删除操作。因此,栈就是后进先出 Last In First Out (LIFO) 的线性表。 线性表分为顺序表和链表,所以 阅读全文
posted @ 2018-01-12 04:36 nnngu 阅读(553) 评论(0) 推荐(0)
摘要:这篇文章包含的链表面试题如下: 1、从尾到头打印单向链表 2、查找单向链表中的倒数第k个节点 3、反转一个单向链表【出现频率较高】 4、合并两个有序的单向链表,合并之后的链表依然有序【出现频率较高】 5、找出两个单向链表相交的第一个公共节点 前期代码准备: 下面这两个类的详细解析可以参考我的上一篇文 阅读全文
posted @ 2018-01-11 02:38 nnngu 阅读(3097) 评论(0) 推荐(2)
摘要:上一篇总结完了顺序表,这一篇要总结的是线性表之中的链表。我将会从以下几点进行总结: 1、为什么要使用链表? 2、链表的存储结构? 3、链表的常用操作代码实现? 1、为什么要使用链表 通过上一篇的学习,我们知道顺序表存在一些问题,主要有以下两个方面。 1、顺序表的长度是固定的,如果超出分配的长度就会造 阅读全文
posted @ 2018-01-10 04:21 nnngu 阅读(834) 评论(0) 推荐(0)
摘要:这篇文章主要总结线性表之顺序表的相关操作,主要分以下几个部分来总结。 1、线性表是什么? 2、线性表的两种存储结构? 3、顺序表的存储结构表示? 4、顺序表的常见操作和代码实现? 1、线性表是什么 (1)线性表是最基本、最简单的一种数据结构。 (2)线性表中元素之间的关系是一对一的关系,即除了第一个 阅读全文
posted @ 2018-01-09 04:01 nnngu 阅读(986) 评论(0) 推荐(0)
摘要:1、算法的概念: 算法 (Algorithm),是对特定问题求解步骤的一种描述。 解决一个问题往往有不止一种方法,算法也是如此。那么解决特定问题的多个算法之间如何衡量它们的优劣呢?有如下的指标: 2、衡量算法的指标: (1)时间复杂度:执行这个算法需要消耗多少时间。 (2)空间复杂度:这个算法需要占 阅读全文
posted @ 2018-01-09 00:25 nnngu 阅读(15515) 评论(2) 推荐(7)
摘要:Java 非线程安全的HashMap如何在多线程中使用 HashMap 是非线程安全的。在多线程条件下,容易导致死循环,具体表现为CPU使用率100%。因此多线程环境下保证 HashMap 的线程安全性,主要有如下几种方法: 接下来分析上面列举的几种方法实现并发安全的 HashMap 的原理: (一 阅读全文
posted @ 2018-01-08 05:02 nnngu 阅读(5239) 评论(0) 推荐(0)
摘要:Java的类的实例化顺序 父类的静态数据 子类的静态数据 父类的成员变量 父类的构造方法 子类的成员变量 子类的构造方法 阅读全文
posted @ 2018-01-08 02:57 nnngu 阅读(709) 评论(0) 推荐(0)
摘要:Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。 2. 对于随机访问,ArrayList优于LinkedList 3. 对于插入和删除操作,L 阅读全文
posted @ 2018-01-08 01:27 nnngu 阅读(11290) 评论(0) 推荐(0)
摘要:Java中String、StringBuffer、StringBuilder的区别 1.从是否可变的角度 String类中使用字符数组保存字符串,因为有“final”修饰符,所以String对象是不可变的。 StringBuffer和StringBuilder都继承自AbstractStringBu 阅读全文
posted @ 2018-01-07 22:42 nnngu 阅读(572) 评论(0) 推荐(0)
摘要:不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的。 Java对String类的定义: final修饰符的用法: 1.修饰类 当用final修饰一个类时,表明这个类不能被继承。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法 阅读全文
posted @ 2018-01-07 20:24 nnngu 阅读(29505) 评论(0) 推荐(3)
摘要:java的数据类型分为:基本数据类型和引用数据类型。 基本数据类型各占多少个字节: 关于boolean占几个字节,众说纷纭,虽然boolean表现出非0即1的“位”特性,但是存储空间的基本计量单位是字节,不是位。所以boolean至少占1个字节。 JVM规范中,boolean变量当作int处理,也就 阅读全文
posted @ 2018-01-07 17:58 nnngu 阅读(14151) 评论(0) 推荐(2)