明耀

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

08 2017 档案

摘要:public class KMP { public static void main(String[] args) { String str="ababxbababcadfdsss"; String subStr="abcad"; int[] next=getNext(subStr.toCharArray()); i... 阅读全文
posted @ 2017-08-30 13:36 明耀 阅读(240) 评论(0) 推荐(0)

摘要:import java.util.*; public class Main { public static void main(String[] args) { Scanner sr=new Scanner(System.in ); while(sr.hasNext()) { St... 阅读全文
posted @ 2017-08-26 16:18 明耀 阅读(211) 评论(0) 推荐(0)

摘要:import java.util.Arrays; public class topk { public static void main(String[] args) { int[] num={66,7,23,45,12,43,65,8,18,28,20,44,123,6,94,67,5,27,89,111,35}; int k=7; ... 阅读全文
posted @ 2017-08-25 16:48 明耀 阅读(229) 评论(0) 推荐(0)

摘要:volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v 阅读全文
posted @ 2017-08-24 21:30 明耀 阅读(454) 评论(0) 推荐(0)

摘要:Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。 Java中每一个对象都可以作为锁,这是synchronized实现同步的 阅读全文
posted @ 2017-08-24 19:35 明耀 阅读(48761) 评论(1) 推荐(8)

摘要:互斥的概念:当一个进程在临界区访问共享资源时,不允许其它进程访问。 死锁:两个及以上的进程持有某种资源而又在等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。 产生死锁的原因:系统能够提供的资源个数比请求该资源的进程数少。当系统中两个或多个进程若因 阅读全文
posted @ 2017-08-23 22:10 明耀 阅读(1259) 评论(0) 推荐(0)

摘要:进程的3个基本状态: 就绪状态:获得除cpu以外的所有资源,一旦得到CPU控制权,就可以立即运行 运行状态:某进程通过进程调度和处理机分派后,得到中央处理器控制权,改进程对应的程序正在处理机上运行,它所处的状态就是运行状态 等待状态:进程等待某一件事的发生(比如等待输入/输出操作的完成)而暂时停止执 阅读全文
posted @ 2017-08-17 21:45 明耀 阅读(268) 评论(0) 推荐(0)

摘要:概念:数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系,所以建立科学的,规范的数据库是需要满足一些规范来优化数据存储方式,在关系数据库中这些规范就可以称为范式。 第一范式:强调列的原子性,即列不能够再分成其他几列。 例如:考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场 阅读全文
posted @ 2017-08-15 16:46 明耀 阅读(184) 评论(0) 推荐(0)

摘要:数据库事务概念: 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中任何一条语句因为崩溃或其他原因无法执行,那么所有语句都不执行。 事务的原子性:一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有 阅读全文
posted @ 2017-08-15 11:41 明耀 阅读(150) 评论(0) 推荐(0)

摘要:mysql5.5+的版本默认引擎都是InnoDB,早期的Mysql版本默认的存储引擎是myISAM innodb: 1.事务操作2.外键操作3.行级锁,这是当有where条件的时候。没有where时,不知道在那一个范围进行搜索时,也是表锁.提供和 Oracle 一样的一致性的不加锁读取,能增加并发读 阅读全文
posted @ 2017-08-14 22:07 明耀 阅读(145) 评论(0) 推荐(0)

摘要:1、独立的列 一些查询不当的使用索引,或者使得MySOL无法使用已有的索引。如果查询中的列不是独立的,则MySOL就不会使用索引。“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。 例如:mysql>select id from student where id+1=5;,就无法使用i 阅读全文
posted @ 2017-08-14 18:32 明耀 阅读(141) 评论(0) 推荐(0)

摘要:数据库索引概念:索引是对数据库中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息,而不必扫描整个数据库。索引就是一种满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。 索引的优缺点 优点: 1、可以大大加快数据的 阅读全文
posted @ 2017-08-14 13:40 明耀 阅读(197) 评论(0) 推荐(0)

摘要:import java.util.*; public class Main { public static void main(String[] args) { int[] num={2,1,45,13,34,43,25,9,6,11}; MergeSort(num,0,num.length-1); for(int i=0;i<num.length;i++) System.... 阅读全文
posted @ 2017-08-12 10:04 明耀 阅读(153) 评论(0) 推荐(0)

摘要:快速排序的三个步骤: 1.选择基准,作为分割序列的比较依据。 2.进行分割操作,将序列以改基准在序列中的位置分成两个子序列,左边序列元素值均小于基准,右边序列元素值均大于基准。 3.递归对两个子序列进行快速排序直到序列为空或只有一个元素。 选择基准的方式: 对于分治算法,当每次划分时,算法若都能分成 阅读全文
posted @ 2017-08-12 09:34 明耀 阅读(391) 评论(0) 推荐(0)

摘要:JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在哪儿,另外JVM堆中存的是对象。JVM栈中存的是基本数据类型和JVM堆中对象的引用。 JVM基础概念:JVM堆与JVM栈 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用 阅读全文
posted @ 2017-08-11 17:05 明耀 阅读(129) 评论(0) 推荐(0)

摘要:HashMap、HashSet、HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的是HashMap进行实现的,但是没有key-value,只有HashMap的key set的视图,H 阅读全文
posted @ 2017-08-11 11:23 明耀 阅读(455) 评论(0) 推荐(0)

摘要:在HashMap和HashTable中的key值是不允许重复的,否则新的value会覆盖旧的value,那么是如何判断key值是否重复的。我们先来看一下存值的put()函数 判断key是否存在的时候,是先比较key的hashcode,然后再比较相等或equals的,如果原本已经存在对应的key,则直 阅读全文
posted @ 2017-08-11 10:54 明耀 阅读(273) 评论(0) 推荐(0)

摘要:MSS:最大报文段长度,表示TCP传往另一端的最大块数据的长度。当一个链接建立时,链接的双方都要通报各自的MSS。通常MSS是1024。 TCP半关闭:TCP提供了连接的一段在结束的发送后还能接收来自另一端数据的能力。(连接的一方主动发出FIN,接着另一端对这个FIN发出ACK,如果主动方在接收到A 阅读全文
posted @ 2017-08-10 17:20 明耀 阅读(412) 评论(0) 推荐(0)

摘要:具体的关于TCP是什么,我不打算详细的说了;当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续。它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——T 阅读全文
posted @ 2017-08-08 18:05 明耀 阅读(238) 评论(0) 推荐(0)

摘要:1、为什么我们已经讨论的所有 I n t e r n e t协议(I P, ICMP, IGMP, UDP, TCP)收到有检验和错 的分组都仅作丢弃处理? 当分组的checksum与接收方的计算结果不一致的时候,有三种处理方案:一是立即通知发送方重传;二是直接丢弃分组,等待发送方定时器超时后重传; 阅读全文
posted @ 2017-08-08 11:17 明耀 阅读(1286) 评论(0) 推荐(0)

摘要:在说内联函数之前,先说说函数的调用过程。 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保 存地址继续执行。也就是通常说的压栈和出栈。因此 阅读全文
posted @ 2017-08-07 20:22 明耀 阅读(288) 评论(0) 推荐(0)

摘要:JVM垃圾回收 程序计数器、虚拟机栈和本地方法栈3各区域随线程而生,随线程而死,所以不需要过多考虑回收的问题,方法或线程结束时,内存自然就随着回收了。 那么什么时候会触发一个对象的回收的呢? 1、 对象没有引用 2、 作用域发生未捕获异常 3、 程序在作用域正常执行完毕 4、 程序执行了System 阅读全文
posted @ 2017-08-07 18:11 明耀 阅读(167) 评论(0) 推荐(0)

摘要:由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途已及创建和销毁的时间。java虚拟机所管理的内存将会包括以下几个运行时数据区域。 第一 阅读全文
posted @ 2017-08-07 16:44 明耀 阅读(144) 评论(0) 推荐(0)

摘要:程序的概念:程序是指令的有序集合,是一个静态概念,本身是没有任何运行的含义。 进程概念:进程是程序在处理机上的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程。 线程概念:线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位 进程的特性: 1、独 阅读全文
posted @ 2017-08-02 18:08 明耀 阅读(986) 评论(0) 推荐(0)