- 博客(61)
- 收藏
- 关注
原创 物理机连接不上虚拟机上的oracle数据库的问题解决办法
我的情况是这样的:我在虚拟机上装了个win7 64位专业版的操作系统,并且在该系统上安装了11g的oracle数据库,虚拟机上可以连接上oracle数据库没有问题,问题是物理机连接不上虚拟机上的oracle数据库。我的解决办法如下:前提:我是直接使用instanceclient+plsql.访问数据库。(至于该种方法怎么配置,相信也不用我说,能来看这篇博文的你早就完成了这一步或者类似这一步!)...
2018-12-19 17:39:09
5726
3
转载 Java HashMap面试必懂
Hashmap 是线程安全的吗?Hashtable为什么是线程安全的?HashMap是线程不安全的,而Hashtable是线程安全的,因为它的所有CRUD操作都被synchronized修饰,这种实现是十分缓慢的。Hashtable不允许出现key和值为null,但是hashmap允许。下面解释一下什么是线程安全,什么是线程不安全。 线程安全:所谓线程安全简单的讲就是控制多个线程对某个资...
2018-11-02 16:43:59
644
转载 谈谈java内存管理
参考文章:http://www.importnew.com/21463.html https://blog.youkuaiyun.com/bruce_6/article/details/38553143(本文中有部分信息是结合个人理解添加进去的,如果有错误还请指正!)对于一个Java程序员来说,大多数情况下的确是无需对内存的分配、释放做太多考虑,对Jvm也无需有多...
2018-10-30 17:00:32
303
转载 多线程死锁的产生以及如何避免死锁
参考文章:https://blog.youkuaiyun.com/ls5718/article/details/51896159一、死锁的定义:多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。下面我们通过一些实例来说明死锁现象。先看生活中的...
2018-10-30 12:19:25
257
原创 使用java实现二叉树的非递归遍历
在前面的一片博客中已经介绍了二叉树遍历的一些概念以及注意事项,如果有疑惑的可以回过头看一看。https://blog.youkuaiyun.com/qq_41300571/article/details/83010364这里我们主要讨论的是使用非递归的算法实现二叉树的遍历前序遍历:思路:1.使用一个栈来存储元素,刚开始的时候将栈顶元素压入栈2.当栈不为空的时候做如下操作:弹出栈顶元素并...
2018-10-29 18:32:16
2741
原创 求两个字符串的最长公共子串——Java实现
要求和思路:要求:根据提供的两个字符串,求出这两个字符串的最大公共子串。思路:依次对较短的字符串进行取子串操作(n,n-1,n-2......1),根据子串的长度不同,其对应的子串个数也不同,判断每个子串是否包含于大串中,如果包含,则该子串就是两个字符串的最大公共子串。java代码如下:package qiuzhitest;//求最长子串public class BigSu...
2018-10-29 11:38:49
4213
原创 哈夫曼数(最优二叉树)的java实现
定义:一些定义:1.节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度2.树的路径长度:从树的根节点到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。3.结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。4.结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。5...
2018-10-29 10:23:07
591
原创 java解析字符串表达式--逆波兰表达式的计算
上回合我们讲了如何将中缀表达式转换成逆波兰表达式,这回合我们讲一讲如何计算逆波兰表达式。结合这一回合和上一回合,我们将能够实现这样一个功能:计算一个中缀表达式的结果!话不多说,走起来!问题来由:读入一个字符串形式的四则运算表达式,输出对应的计算结果。如读入的是“6 * ( 5 + ( 2 + 3) * 8 + 3)”,那么解析后的输出结果应为288。思路:一般的计算过程是这样的,首...
2018-10-25 11:32:45
1696
1
原创 java解析字符串表达式--逆波兰表达式的生成
基础知识:逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出。逆波兰表达式又叫做后缀表达式。这个知识点在数据结构和编译原理这两门课程中都有介绍,下面是一些例子:举例说明:首先约定表达式中运算符的优先级,从大到小依次为:()、* 和 /、+ 和 -。暂时只考虑四则运算。顺序读取字符串表达式,规则:读到的是操作数,直接输出;读到的是操作符(+-*/)(记为read...
2018-10-25 11:24:39
2925
1
原创 排序算法之归并排序
基本思想:设归并排序的当前区间是R[low..high],分治法的三个步骤是: ①分解:将当前区间一分为二,即求分裂点 ②求解:递归地对两个子区间R[low..mid]和R[mid+1..high]进行归并排序; ③组合:将已排序的两个子区间R[low..mid]和R[mid+1..high]归并为一个有序的区间R[low..high]。 递归的...
2018-10-24 16:06:19
275
原创 排序算法之希尔排序
算法分析:希尔排序(Shell Sort)是插入排序的一种,其实质就是分组插入排序,该方法又称缩小增量排序,因D.L.Shell于1959年提出而得名。它是对直接插入排序的一种改进,通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使得数据项大跨度的移动。基本思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后...
2018-10-24 11:56:42
232
原创 排序算法之折半插入排序
基本思想:折半插入排序是对直接插入排序的简单改进,对于直接插入排序而言,当第i-1趟需要将第i个元素插入前面的0~i-1个元素序列中时,总是需要从i-1个元素开始,逐个比较每个元素,直到找到它的位置。这显然没有利用前面0~i-1个元素已经有序这个特点,而折半插入排序则改进了这一点。对于折半插入排序而言,当需要插入第i个元素时,它不会逐个进行比较每个元素,而是:(1)计算0~i-1索引的...
2018-10-23 18:10:03
528
原创 排序算法之直接插入排序
基本思想:有一个待排序的数组,数组的第一个元素默认为有序的,从第二个元素开始,每个元素都和前面的有序数组中的元素从后到前依次比较,如果小于前面的有序数组,则将有序数组后移一个位置,反之则所在的位置+1即为新元素要插入的位置。形象来说就好比如我们玩扑克牌的时候,我们抽取第一张牌的时候不需要进行比较,默认直接放在左手边,左手边的牌是已经排好序的,当我们抽取第二张牌的时候,就和左手边的牌进行比较...
2018-10-23 16:49:05
183
原创 排序算法之快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。快速排序的基本思想从待排序的数据序列中任取一个数据(如第一个数...
2018-10-23 11:59:54
641
原创 排序算法之冒泡排序
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它的基本思想就是两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 java代码实现如下:package fanzhenhua.s...
2018-10-23 10:34:39
298
转载 排序算法之堆排序
堆的概念:n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ )满足(1)的称为小根堆,满足(2)的称为大根堆。 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不...
2018-10-22 18:52:47
1171
原创 排序算法之直接选择排序
思路:用一个数组存储待排序的数,每一次都从无序数组中选出一个最大(或者最小)的值放在有序数组的后一个位置。第一趟排序时,整个数组均为无序的数组,将整个数组中最大(或者最小)的元素与数组的第一个元素交换位置,至此完成第一趟排序。此时数组被分成两个数组,前面一部分为有序(只有一个元素),其他部分为无序。往后的每一趟排序均是如此,只不过交换的位置由起始位置变为有序数组的后一个位置,直到排序结束。遍历...
2018-10-22 16:30:55
237
原创 使用Nginx服务器实现反向代理、负载均衡以及虚拟主机
相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给int...
2018-10-22 11:42:43
364
原创 使用java实现二叉树的遍历
二叉树链表存储遍历的java实现 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问,对二叉树的遍历就是将非线性结构的二叉树中的节点排列在一个线性序列上的过程。访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。1.顺序存储...
2018-10-11 12:10:21
535
原创 使用java实现二叉树的三叉链表存储
二叉链表和三叉链表实现二叉树的存储不同之处在于,三叉链表中的每一个结点多了一个指向父节点的区域,其他的地方和二叉链表没有什么区别,实现的思路和二叉链表一致,这里就不再赘述了,详情可以看上一篇二叉链表实现二叉树存储。直接上代码,不多BB。 二叉树三叉链表存储的java实现java代码如下:public class T...
2018-10-11 10:16:06
1487
原创 使用java实现二叉树的二叉链表存储
因为二叉树不属于线性结构,所以当使用二叉链表来存储二叉树的时候与之前的其他线性结构(栈、单链表、双链表等)有明显的不同。注意的地方:1.提供的内部类定义成静态的、公共的,之前在使用链表实现其他线性结构的数据结构时,基本上使用的都是私有的非静态的内部类。内部类中设有指向左孩子和右孩子的节点以及存放数据的变量。2.使用二叉链表存储二叉树后,对二叉树的操作与使用数组存储二叉树有...
2018-10-08 21:27:25
6192
原创 使用java实现二叉树的顺序存储
1.二叉树的基本概念 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。二叉树指的是每个节点最多只能有两个子树(左子树和右子树)的有序树,子树有左右之分,次序不能颠倒。 注意: 1.二叉树并非是树的特殊情形,它们两个是不同的数据结构,树并不要求一个节点最多...
2018-10-08 16:00:00
673
原创 理解spring中,使用工厂Bean生成代理以及使用aop生成代理的底层原理
这里所提到原理均是个人在学习spring的过程中,自己对于spring动态代理的理解,如果有不对的地方还请原谅,恳请大佬指出来,共同进步!基于XML的动态代理(个人感觉基于注解的动态代理底层原理也是一样的):1、工厂Bean生成代理(也叫作半自动动态代理)的底层原理:我们知道spring给我们提供了很多已经写好了的类,这些类都是一些用来生产具有特定功能的bean。其里面至少有两个成员属性:...
2018-10-08 10:26:25
938
原创 使用java实现链栈
之前就学过数据结构这门课,当时有用c/c++实现过线性表的顺序存储、单链表、双向链表、顺序栈、链栈、图等数据结构;学了java也有一段时间了,最近一直在为投简历求值而努力着,想着对于大公司来说,对于本科生的要求基本上都要熟悉或者掌握常用的数据结构以及算法,所以准备着重新用java实现一遍以前学过的、现在也很常用或者很常考的一些数据结构以及算法。如果大家在阅读的时候发现有什么不合理的地方,...
2018-10-08 10:17:35
426
原创 使用java实现顺序栈
之前就学过数据结构这门课,当时有用c/c++实现过线性表的顺序存储、单链表、双向链表、顺序栈、链栈、图等数据结构;学了java也有一段时间了,最近一直在为投简历求值而努力着,想着对于大公司来说,对于本科生的要求基本上都要熟悉或者掌握常用的数据结构以及算法,所以准备着重新用java实现一遍以前学过的、现在也很常用或者很常考的一些数据结构以及算法。如果大家在阅读的时候发现有什么不合理的地方,还请大家指...
2018-09-30 17:59:18
768
原创 使用java实现双向链表
之前就学过数据结构这门课,当时有用c/c++实现过线性表的顺序存储、单链表、双向链表、顺序栈、链栈、图等数据结构;学了java也有一段时间了,最近一直在为投简历求值而努力着,想着对于大公司来说,对于本科生的要求基本上都要熟悉或者掌握常用的数据结构以及算法,所以准备着重新用java实现一遍以前学过的、现在也很常用或者很常考的一些数据结构以及算法。如果大家在阅读的时候发现有什么不合理的地方...
2018-09-30 15:43:43
280
原创 使用java实现单链表
之前就学过数据结构这门课,当时有用c/c++实现过线性表的顺序存储、单链表、双向链表、顺序栈、链栈、图等数据结构;学了java也有一段时间了,最近一直在为投简历求值而努力着,想着对于大公司来说,对于本科生的要求基本上都要熟悉或者掌握常用的数据结构以及算法,所以准备着重新用java实现一遍以前学过的、现在也很常用或者很常考的一些数据结构以及算法。如果大家在阅读的时候发现有什么不合理的地方...
2018-09-30 15:24:16
234
原创 使用java实现线性表的顺序存储
之前就学过数据结构这门课,当时有用c/c++实现过线性表的顺序存储、单链表、双向链表、顺序栈、链栈、图等数据结构;学了java也有一段时间了,最近一直在为投简历求值而努力着,想着对于大公司来说,对于本科生的要求基本上都要熟悉或者掌握常用的数据结构以及算法,所以准备着重新用java实现一遍以前学过的、现在也很常用或者很常考的一些数据结构以及算法。如果大家在阅读的时候发现有什么不合理的地方,还请大家指...
2018-09-30 15:11:43
432
原创 Maven问题java.lang.ClassCastException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecut
网上有很多关于这个问题的解决办法,但是很多都是说什么Struts的拦截器和Struts的核心jar包版本不匹配等等。这个原因是有可能存在的,但是我们基本上不会出现!尽管出现了网上也可以随便找到解决这个问题的方法。但是在maven中,出现这个问题的时候有可能不是这个问题,而是maven中自带的Tomcat插件的问题。我们在使用maven开发web项目的时候,一般都会涉及到servlet以及jsp的,...
2018-05-20 12:00:09
2125
转载 推荐一个在Linux下安装MySQL数据库较为稳妥的方法(照着步骤来一定能成功)
之前在学习Linux操作系统的时候,本着在Linux系统上编写Java程序,于是就尝试着自己在Linux上安装jdk、Tomcat以及MySQL这几个工具。jdk和Tomcat相对来说比较简单,只要将下载好的压缩包解压就OK了,相信大家如果直接百度的话问题不大。就是MySQL数据库在Linux操作系统上面安装比较麻烦。百度虽然有很多很多MySQL数据库在Linux上安装的教程,但是很多都是错误的(...
2018-05-20 11:50:12
137
原创 简单对比下mybatis和hibernate的区别
Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句。mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。 Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执...
2018-05-20 11:39:26
154
原创 spring动态代理中,工厂Bean代理和AOP代理的底层原理
这里所提到原理均是个人在学习spring的过程中,自己对于spring动态代理的理解,如果有不对的地方还请原谅,恳请大佬指出来,共同进步!基于XML的动态代理(个人感觉基于注解的动态代理底层原理也是一样的):1、工厂Bean生成代理(也叫作半自动动态代理)的底层原理:我们知道spring给我们提供了很多已经写好了的类,这些类都是一些用来生产具有特定功能的bean。其里面至少有两个成员属性:1.存放...
2018-05-03 18:16:54
1598
转载 javaweb学习第十一天:jsp入门+cookie+session知识点总结
JSP基础1. jsp的作用: * Servlet: > 缺点:不适合设置html响应体,需要大量的response.getWriter().print("<html>") > 优点:动态资源,可以编程。 * html: > 缺点:html是静态页面,不能包含动态信息 > 优点:不用为输出html标签而发愁 * jsp(java s...
2018-03-19 23:19:30
200
转载 javaweb学习第十天:response、resquest以及字符编码问题
服务器处理请求的流程: 服务器每次收到请求时,都会为这个请求开辟一个新的线程。 服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!(袋子) 服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。(手机)------------------response:其类型为HttpServletResponse Servle...
2018-03-18 23:00:56
418
原创 javaweb学习第九天:servlet
一、servlet的实现方式:1.通过Servlet接口实现 servlet接口中的方法大多数不由我们自己调用,而是由服务器(Tomcat)来调用,并且servlet的对象也不由我们来创建, 由Tomcat来帮我们创建。 创建一个类,继承该接口,并实现当中的方法。2.通过GenericServlet抽象类来实现 创建一个类,并继承该类,并实现这个类中的方法...
2018-03-17 16:51:52
188
转载 javaweb学习第八天:Tomcat相关知识点总结
1Tomcat概述Tomcat服务器由Apache提供,开源免费。由于Sun和其他公司参与到了Tomcat的开发中,所以最新的JSP/Servlet规范总是能在Tomcat中体现出来。当前最新版本是Tomcat8,我们课程中使用Tomcat7。Tomcat7支持Servlet3.0,而Tomcat6只支持Servlet2.5! 2 安装、启动、配置Tomcat下载Tomcat可以到http://t...
2018-03-16 23:46:49
165
转载 javaweb学习第七天:使用dom4j支持xpath的操作来解析xml
1、使用dom4j支持xpath的操作 * 可以直接获取到某个元素 * 第一种形式 /AAA/DDD/BBB: 表示一层一层的,AAA下面 DDD下面的BBB * 第二种形式 //BBB: 表示和这个名称相同,表示只要名称是BBB,都得到 * 第三种形式 /*: 所有元素 * 第四种形式 ** BBB[1]: 表示第一个BBB元素 ×× BBB[last()]:表示最后一个BBB元素 ...
2018-03-15 13:42:03
376
2
转载 javaweb学习第七天:使用dom4j解析xml
1、使用dom4j解析xml * dom4j,是一个组织,针对xml解析,提供解析器 dom4j * dom4j不是javase的一部分,想要使用第一步需要怎么做? *** 导入dom4j提供jar包 -- 创建一个文件夹 lib -- 复制jar包到lib下面, -- 右键点击jar包,build path -- add to build path -- 看到jar包,变成奶瓶样子,表...
2018-03-15 13:40:04
243
原创 javaweb学习第七天:jaxp的dom和sax对xml的解析
1、xml的解析的简介(写到java代码)(***今天最重要的内容*****) * xml是标记型文档 * js使用dom解析标记型文档? - 根据html的层级结构,在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象 - document对象、element对象、属性对象、文本对象、Node节点对象 * xml的解析方式(技术):dom 和 sax ** 画图分析使用do...
2018-03-15 13:37:58
210
原创 javaweb学习第七天:xml的schema约束
1、schema约束 dtd语法: <!ELEMENT 元素名称 约束> ** schema符合xml的语法,xml语句 ** 一个xml中可以有多个schema,多个schema使用名称空间区分(类似于java包名) ** dtd里面有PCDATA类型,但是在schema里面可以支持更多的数据类型 *** 比如 年龄 只能是整数,在schema可以直接定义一个整数类型 *** sc...
2018-03-15 13:33:53
298
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人