自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 IntelliJ Idea 使用技巧学习记录

下述内容均在公众号里面介绍,公众号持续更新中,如果喜欢可以订阅,么么哒 IntelliJIDEA之远程调试篇 IntelliJIDEA之草稿(Scratch) IntelliJIDEA之断点类型(Breakpoint) IntelliJIDEA之断点创建(CreateBreakpoint) IntelliJIDEA之多线程调试重点参数 Intelli...

2019-09-18 11:24:55 226

原创 IntelliJ IDEA 之 远程调试篇

我的微信公众号 我的工作困扰应用部署依赖太多外部环境,本地部署困难重重,问题追踪依赖于日志文件,烦人!某些功能本机正常运行,提交测试或者上线却表现欠佳,烦人!某些功能较为复杂,正常运行需要人为制造大量测试数据,烦人! 重拾小时候的幸福多次遇到上述问题之后,开始变得惶恐和不安,难道就无法摆脱这种困境吗?难道JVM (Java Virtual Machine)无法通...

2018-11-28 20:30:51 768

原创 匿名内部类为什么是 Final 的呢?

现在前面 匿名内部类来自外部闭包环境的自由变量必须是final的,除非自由变量来自类的成员变量。 什么是自由变量? 一个函数的“自由变量”就是既不是函数参数也不是函数内部局部变量的变量。 什么是外部环境 外部环境如果持有内部函数所使用的自由变量,就会对内部函数形成“闭包”。 - 一个简单的列子public class AnonymousDemo1{ public st

2017-10-30 14:08:28 3980 1

原创 java.util.concurrent.Executors

java.util.concurrent.ExecutorsFactory and utility methods for Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, and Callable classes defined in this package. This class supports the

2017-10-24 18:18:24 222

原创 java.util.concurrent.Executor

java.util.concurrent,Executor

2017-10-24 16:57:47 404

原创 数据库知识

MySql查看表结构 desc <表名> select column_name,column_comment from information_schema.columns where table_schema =’<数据库名字>’ and table_name = ‘<表名>’ show create table <表名>

2016-08-09 17:46:30 222

原创 《Java 核心技术卷一》读书笔记

书目信息 英文名:Core Java Volume I —— Foundamentals 作者:Cay S. Horstmann Gary Cornell 译者:周立新 陈波 叶乃文 邝劲筠 杜永萍

2016-01-09 18:37:22 1193

原创 面试题 56

1 题目描述一个链表中包含环,如何找出环的入口节点?例如下图的 3 结点即为入口节点2 算法描述找到环内的任何一个结合:利用两个指针(前指针和后指针),前指针一次性前进两步,后指针一次性前进一步,当前指针与后指针再次相遇时,那么说明次链表中必定存在环,而且相遇的节点必定在环里面。确定环内节点的数量:设定一个指针从上次得到的节点 A 开始移动,当指针再次移动到 A 时,说明指针已经在环立面绕了一圈

2015-09-26 11:32:21 291

原创 Servlet 与 JSP 核心编程(第二卷)

Marty Hall Larry Brown Yaakov Chaikin 著 胡书敏 等译 清华大学出版社原书内容:20页 在不同的 web 应用之间共享数据的两种方式cookie :将 cookie 信息发送给服务器上的所有应用cookie.setpath("/")特定 URL 关联的 ServletContext 对象 在一个 servlet 内部可以通过调用 serv

2015-09-18 17:14:45 566

原创 面试题 33

1 题目描述输入一个整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出所有数字中最小的一个。例如输入数组 {3,32,321},则打印出这 3 个数字能排成的最小数字 321323.2 算法描述 1 将 m 和 n 进行和合并,如 mn3 代码实现 javapublic class PrintMinNumber { public static void main(String[]

2015-09-18 15:04:18 269

原创 面试题 31

1 题目描述输入一个整数数组,数组里有证正数也有负数,数组中一个或连续的多个整数组成一个子数组,求所有数组的和的最大值。要求时间复杂度为O(n)2 算法描述{1,-2,3,10,-4,7,2,-5} => {3,10,-4,7,2}1+(-2)=(-1) 如果后面的元素加上 -1 的话,只会让总和减小,所以当总和小于等于零的时候,我们需要抛弃之前所求得的和,从下一个元开始重新计算 3+10-

2015-09-18 13:56:47 248

原创 面试题 30

1 题目描述输入 n 个整数,找出其中最小的 k 个数2 算法描述利用快速排序找到序列中排名为 k 的数字,其左边的数字均小于该数子。3 java实现public class GetLeastNumbers{ public static void main(String[] args) { getLeastNumbers(new int[]{1,2,3,3,2,3,3,0},

2015-09-18 10:32:37 249

原创 面试题 29

1 题目描述数组中有一个数字出现的次数超过数组长度的一般,请找出这个数字2 算法描述数组中有一个数组出现的次数超过了一半,如果把这个数组排序,那么排序之后位于数组中间的数字一定就是那个出现次数超过一半的数字。有成熟的 O(n)算法可以得到数组中任意第 K 大的数字。 利用快速排序的 partition 方法,在数组中随机选择一个数字,然后调整数组中数字的顺序,使得比选中的数字小的数字都排在他的左边

2015-09-18 10:04:41 241

原创 面试题 25

1 题目描述输入一颗二叉树和一个整数,打印出二叉树中节点值和为输入整数的所有路径。从输的根节点开始一直找到叶子节点所经过的节点形成一条路径。2 解法描述遍历二叉树的过程中累加二叉树元素累加之和,当当前遍历的节点为叶子节点时,判断累加值是否等于期望值,若等于打印当前路径并退回到其父节点继续遍历二叉树,否则直接退回到父节点继续遍历二叉树。使用递归的方式完成方法的返回,从子节点遍历上下文退回到父节点遍历上

2015-09-10 15:22:00 260

原创 Servlet 与 JSP 核心编程

阅读书目,清华大学出版社 《Servlet 与 JSP 核心编程》第二版Marty Hall Larry Brown著 记录读书体会,笔记内容掺杂个人理解,必定会有大量不妥甚至不对的地方,随着知识的积累会不断修正错误之处1 原书第 7 页,知识点 JSP 文档不过是编写 Servlet 的另一种方式,JSP 页面会被翻译成 servlet,servlet 会被编译,在请求期间运行的就是

2015-09-10 10:05:49 732

原创 面试题 24

1 题目描述二叉搜索树的后续遍历序列:输入一个整数数组,判断数组是不是某二叉搜索树的后序遍历的结果,如果是则返回 true,否则返回 false,假设输入的数组的任意两个数字互不相同。2 解法描述二叉搜索树,父节点大于左孩子节点,小于右孩子节点后序遍历的最后一个节点为当前树的根节点将后序遍历序列与根节点进行比较,小于根节点的序列为左子树,大于根节点的序列为右子树。然后以同样方法递归左子树和右

2015-09-10 00:04:36 231

原创 面试题 23

1 题目描述从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。2 解法描述每一次打印一个结点的时候,如果该节点有子结点,那么把该节点的子结点放到一个队列的末尾。接下来从队列的头部取出最早进入队列的结点,重复前面的打印操作,直到队列中的所有结点都被打印出来为止。3 C语言实现#include<stdio.h>// Treetypedef char ElemType;typede

2015-09-09 14:13:58 269

原创 面试题 22

1 题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。2 解法描述 如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,把压栈序列中还没有入栈的数字压入辅助栈,直到拔下一个需要弹出的数字压入栈顶为止,如果所有的数字都压入了栈,仍然没有找到下一个弹出的数字,那么该序列不可能是一个弹出序列3 C 语

2015-09-09 14:01:53 217

原创 面试题 21

1 题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数,在该栈中,调用 min、push及pop 的时间复杂度是 O(1)。2 解法描述常规想法 - 往栈里添加一个成员变量保存最小的元素,每次压入一个元素的时候比较待压入元素与当前最小元素的大小,如果该元素比当前最小元素小,更新最小元素。(不可行,如果当前最小元素出栈,无法在 O(1)时间内找到下一个最小元素)。本

2015-09-09 09:57:10 259

原创 面试题 20

1 题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。2 解法描述确定需要打印的圈如何打印每一圈设定每一圈的开始 row_start 和结束行 row_end,设定每一圈的开始 col_start 和结束列 col_end。如果以下逻辑判断成立,那么所有的圈已经打印完成!(col_start<=col_end&&row_start<=row_end)3 java 语言实现p

2015-09-08 11:57:44 225

原创 面试题 19

1 题目描述请输入一个函数,输入一个二叉树,该函数输出它的镜像2 算法描述遍历二叉树,交换(如果都存在)左右孩子节点可以选择深度遍历、层次遍历3 C 语言实现采用先序递归遍历采用先序非递归遍历#include<stdio.h>// Treetypedef int ElemType;typedef struct node{ ElemType data; struct n

2015-09-08 09:44:48 357

原创 面试题 18

1 题目描述输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。2 解法描述遍历二叉树 A 找到与二叉树 B 根节点相同的 A 的子树 a 。遍历子树 a 和 二叉树 B ,判断 a 和 B 是否存在一样结构的子树。3 C 语言实现#include<stdio.h>// Treetypedef char ElemType;typedef struct node{ Elem

2015-09-08 00:41:11 241

原创 面试题 17

1 题目描述合并两个有序链表2 解法描述链表合并过程如下:从合并两个链表的首结点开始,两个链表中的值较小的首节点最为合并后链表的首节点,两个链表剩余的节点依然是排序的,合并步骤和之前合并首节点是一致的,是典型的递归过程。3 c 语言实现#include<stdio.h>typedef int ElemType;typedef struct node{ ElemType data;

2015-09-07 16:25:36 266

原创 面试题 16

1 题目描述定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。2 解题方法头结点:不属于链表中有效的元素,为了方便操作而设立的一个节点 运用头插法将链表重写插入到头结点 具体操作如下所示: 3 C 语言实现#include<stdio.h>typedef int ElemType;typedef struct node{ ElemType dat

2015-09-07 15:11:22 229

原创 面试题 15

1 题目描述输入一个链表,输出链表中倒数第 k 个结点。链表的尾结点是倒数第一个结点。例如一个链表有 6 个结点,从头到尾开始他们的值依次是 1、2、3、4、5、6。那么倒数第三个节点的值是 4 。2 解法描述常规方法:遍历整个链表计算链表的长度,倒数第 n 个结点,也就是整数第 n-i+1。需要遍历链表两次其他解法:设立两个指针,初始化时同时指向链表中的第一个元素,接下来 head 指针单独向

2015-09-07 14:15:44 252

原创 面试题 14

1 题目描述输入一个数组,实现一个函数来调整数组中数字的顺序,使得所有的奇数位于数组的前面,所有偶数位于数组的后半部分。2 算法描述设置一个头指针和一个尾指针,头指针不断向后移动,直到遇到偶数,尾指针不断向前移动,直到遇到奇数,交换头指针和尾指针的数据,继续循环上述操作,直达头指针与尾指针交错。这个算法有点像快速排序中 partition 操作3 c 语言实现#include<stdio.h>vo

2015-09-07 13:46:25 274

原创 面试题 13

1 题目描述给定单向链表的都指针和一个节点指针,定义一个函数在 O(1)的时间内删除该节点。2 解法描述常规情况下,需要遍历整个链表,找到待删节点的前驱节点,然后将前驱节点的 next 指针指向待删节点的 next 指针指向的位置。时间复杂度为 O(n)O(1) 时间复杂度解法,待删节点复制其后继节点的值,然后将后继节点删掉。3 解法 2 实现 一般情况:待删节点位于链表的中间位置

2015-09-07 11:30:28 342

原创 面试题 12

1 题目描述题目:输入数字 n, 按顺序打印从 1 到 最大位 n 位十进制数。 比如输入 3 打印 1,2,3 一直打印到 9992 解法描述1 乍看之下的解法public static void print12Max(int n){ int result=1; int i; if(n<=0) return; for(i=0;i<n;i++){

2015-09-07 10:06:38 213

原创 面试题 11

1 题目描述题目:实现函数 double Power(double base,int exponent),求exponent 次方,不得使用库函数,同时不考虑大数问题。算法描述base^exponent 一般情况 base>=0 exponent>=0 特殊情况 base=0 exponent<0 此时计算需要进行 /0 操作,导致错误 特殊情况 base=0 exponent=0,0^0

2015-09-06 10:56:10 231

原创 面试题 10

1 题目描述计算数的二进制表示中的 1 的个数,例如把 9 表示成二进制是 1001,有 2 位是1.2 解决方法第一种方法:依次右移 n ,检查最右边一位是不是 1int numberOf1(int n){ int count=0; while(n){ if(n&1){ count++; } n=n>>1;

2015-09-05 15:28:53 218

原创 面试题 9 Fibonacci数列

1 Fibonacci 数列的定义2 Fibonacci 解法递归计算 Fibonacci 数列int fibonacci(int n){ if(n<=0) return 0; if(n==1) return 1; return fibonacci(n-1)+fibonacci(n-2);}递归由于是函数调用自身,而函数调用是有时间和空间的消耗的:每一次函数调用,都需要在内

2015-09-05 12:35:54 387

原创 面试题 8

1 题目描述把一个数组最开的若干个元素搬到数组的尾部,我么称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的一个旋转,该数组的最小值为 1。2 算法描述一般情况: 5 6 7 8 1 2 3 4 递增序列旋转后分成两个递增子序列,第一个递增序列所有元素大于第二个递增序列的元素,可以设置一个 head 指针始

2015-09-05 11:02:46 307

原创 面试题 7

1 题目描述用两个栈实现一个队列,队列的声明如下,请事先它的两个函数,appendTail 和 deleteHead 分别完成从队列尾部插入节点和在对头部删除节点的功能。2 算法描述appendTail:元素进队时,直接入栈 Stack1 deleteHead : 若此时 Stack2 不为空,那么直接将 Stack2 栈顶元素出栈。若Stack2 为空,那么将 Stack1 中的元素依次出栈,然

2015-09-05 09:25:42 233

原创 面试题6

1 题目描述根据先序序列和中序序列构建二叉树2 算法描述1 遍历先序序列,获得根节点 R 2 在中序序列中检索 R,确定 R 左子树与右子树的范围 3 递归上述过程C 语言实现#include<stdio.h>typedef int ElemType;typedef struct node{ ElemType data; struct node *lchild,*rchild

2015-09-04 14:59:53 386

原创 Servlet 与 JSP 核心编程

阅读书目,清华大学出版社 《Servlet 与 JSP 核心编程》第二版Marty Hall Larry Brown著 记录读书体会,笔记内容掺杂个人理解,必定会有大量不妥甚至不对的地方,随着知识的积累会不断修正错误之处1 原书第 7 页,知识点 JSP 文档不过是编写 Servlet 的另一种方式,JSP 页面会被翻译成 servlet,servlet 会被编译,在请求期间运行的就是

2015-08-29 14:36:16 922

原创 深入理解 Java 虚拟机

阅读书目,华章出版社 《深入理解 Java 虚拟机》第二版 周志明著 记录读书体会,笔记内容掺杂个人理解,必定会有大量不妥甚至不对的地方,随着知识的积累会不断修正错误之处原书 212 页1 原书内容运行之后发现没有输出"SuperClass init!",说明并没有出发类org.fenxisoft.classloading.SuperClass的初始化阶段。但是这段代码里面出发了一个名为"[

2015-08-24 16:33:42 418

原创 Java集合---Set

Set 接口

2015-08-17 12:58:00 272

原创 Java集合---Map

Map接口将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射到一个值。Map 接口提供三种 collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些 Map 实现可明确保证其顺序,如 TreeMap 类;另一些Map实现则不保证顺序,如 HashMap 类。某些Map

2015-08-16 14:15:42 350

原创 Java集合---List

List接口List接口,成为有序的Collection也就是序列。该接口可以对列表中的每一个元素的插入位置进行精确的控制,同时用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。例如List接口定义如下方法,实现元素指定位置的插入和访问。add(int index, E element)get(int index)AbstractList 抽象类List 接口的骨干实现

2015-08-15 21:36:56 398

原创 装饰模式---结构性

Decorator装饰者模式:(装饰者)动态的将责任附加到对象(被装饰者)上去,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。模式中的角色抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一

2015-08-13 09:07:05 328

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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