摘要:
1.关系型数据库的事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。 Atomic(原子性): 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。 Consistency(一致性):事务执行的结 阅读全文
摘要:
一、什么是SOA SOA(Service-Oriented Architecture),即面向服务的架构。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。 SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技 阅读全文
摘要:
1.Tomcat的session管理 在请求过程中首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中。 然后再从request获取session的时候,如果存在sessionId那么就根据Id从session池中获取session, 如果session 阅读全文
摘要:
1.如何在运行时确定对象类型 运行时类型识别(Run-time Type Identification, RTTI)主要有两种方式, 一种是在编译时和运行时已经知道了所有的类型,另外一种是反射机制。 类型信息在运行时是如何表示的,是由Class对象完成的,它包含了与类有关的信息。类是程序的重要组成部 阅读全文
摘要:
动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的二叉查找树结构,查找的时间复杂度 O(log2-N) 与树的深度相关,降低树的深度会提高查找效率,于 阅读全文
摘要:
一、线程创建的基本知识 1.创建线程 创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。 一个线程创建后就存在,调用start()方法就开始 阅读全文
摘要:
二叉查找树(BSTree)中进行查找、插入和删除操作的时间复杂度都是O(h),其中h为树的高度。BST的高度直接影响到操作实现的性能,最坏情况下,二叉查找树会退化成一个单链表,比如插入的节点序列本身就有序,这时候性能会下降到O(n)。可见在树的规模固定的前提下,BST的高度越低越好。 1.平衡二叉树 阅读全文
摘要:
ReentrantLock和synchronized两种锁定机制 1.应用synchronized同步锁 把代码块声明为 synchronized,使得该代码具有 原子性(atomicity)和 可见性(visibility)。原子性意味着一个线程一次只能执行由一个指定监控对象(lock)保护的代码 阅读全文
摘要:
依赖于引用判断的内存管理机制 Java中对内存对象的访问,使用的是引用的方式。在Java代码中我们维护一个内存对象的引用变量,通过这个引用变量的值,我们可以访问到对应的内存地址中的内存对象空间。在Java程序中,这个引用变量本身既可以存放堆内存中,又可以放在代码栈的内存中(与基本数据类型相同)。GC 阅读全文
摘要:
1.Hibernate和ORM ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据 阅读全文
摘要:
Binary Tree Level Order Traversal 题目描述: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by 阅读全文
摘要:
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。 不同的存储引擎索引实现的数据结构不同 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类 阅读全文
摘要:
B+、B- Tree(mysql,oracle,mongodb) 主要用在关系数据库的索引中,如oracle,mysql innodb;mongodb中的索引也是B-树实现的;还有HBase中HFile中的DataBlock的索引等等。 动态查找树主要有:二叉查找树(Binary Search Tr 阅读全文
摘要:
一、40亿数据排序问题 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件中至少缺失这样一个数——为什么?)。在具有足够内存的情况下,如何解决该问题?(编程珠玑) 二、应用BitMap存储大数据 数据的存在性可以使用bit位上的1或0来表示;一个bit具有 阅读全文
摘要:
类似物理上的计算机系统,Java虚拟机规范中也定义了一种Java内存模型,即Java Memory Model(JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。 现在最新的Java内存模型规范是JSR-133,即Java内存模型与线程规范, 阅读全文