日志
想飞的鱼Stitch
这个作者很懒,什么都没留下…
展开
-
#判断一个数是否是奇数的优化
微信推送上看了一个Java面试题,文章的作者说可能是最简单的面试题了,题目就是判断一个数是否是奇数。作者一开始指出大多数人会这样做public boolean isOdd(int i) { if( i % 2 == 1 ) { System.out.println("是奇数"); } else { System.out.println("是偶数"); }}编译的时候发现错误...原创 2020-04-28 00:24:11 · 259 阅读 · 0 评论 -
如何在同一台电脑上同时运行两个Tomcat(关于Invalid character found in method name.HTTP method names must be token.错误信息)
今天在学习一个项目的时候需要用到Tomcat8,而我的Tomcat版本是7,因为Tomcat7用的久了比较习惯又不想卸载,所以打算两个一起用,在网上查了同一台电脑上可以运行两个Tomcat后,就开始部署Tomcat8.在看了一篇前辈的经验后将Tomcat8的startup.bat文件加了JDK的安装路径和Tomcat8所在路径,又将需要修改的三个端口号修改后启动Tomcat8出现了如下所示的错...原创 2018-09-26 19:03:56 · 3045 阅读 · 0 评论 -
使用二进制和位移运算实现简单的算法
1.将一个二进制数向左位移n位就等于该数乘以2的n次方,当乘法运算中的某个数符合这个特点的时候,可以用位移运算代替乘法运算,从而提高效率。package pp.suanfa;/** * 乘法运算转位移运算 * * @author xiaoGd * */public class MulAndShift { public static int isPower(int m...原创 2018-10-02 09:58:35 · 1552 阅读 · 0 评论 -
算法学习——归并排序
归并排序看起来比较难,代码量也比之前几个排序多,研究归并排序也确实用了挺长时间。归并排序中的“归”是递归的意思,“并”是合并的意思,顾名思义,归并就是先递归分开,再合起来,那么归并排序的思想就是将一个数据序列递归划分为越来越小的半子表,再对半子表进行排序,最后再用递归的方法将排好序的半子表合并成为越来越大的有序序列,这也是分治思想在归并排序中的体现。归并排序算法的原理就是对于给定的一组记录...原创 2018-10-01 18:20:06 · 321 阅读 · 0 评论 -
算法学习——插入排序
插入排序的实现方式是用一层for循环里套一层while循环,和选择排序有点不同,但是既然是排序,就离不开比较,经过比较之后才会有顺序,所以插入排序也是通过选择元素之后再进行比较之后实现的。假设要为数组a进行排序,插入排序的思想是直接以数组前两个元素为标准向后扩展,第一次扩展之前以及每次扩展后都会进行一次向前比较,for循环从a[1]开始,一次for循环扩展一位,第一次比较的就是a[0]和a[1...原创 2018-09-26 08:36:04 · 201 阅读 · 0 评论 -
算法学习——选择排序
选择排序,顾名思义就是要把元素选择出来进行排序,要选择,肯定就要有比较,这个时候我们的两层for循环就派上用场了。假设我们要对一个数组a进行排序,我们要定义两个临时变量(替身),一个是为数组中顺序即将发生变化的元素做替身,一个是为了代替数组的下标,首先第一层for,我们要选出数组的第一个元素a[0],用一个临时变量temp代替a[0](temp = a[0]),用临时变量flag代替数组的下标...原创 2018-09-25 20:50:02 · 143 阅读 · 0 评论 -
对SpringMVC、Struts2、Hibernate以及Mybatis工作原理的初步理解
一、看了对SpringMVC原理的介绍,我画了一张图:按图中序号依次向下进行:1.用户发送请求到前端控制器DispatcherServlet2.DispatcherServlet收到请求调用处理器映射器HandlerMapping3.HandlerMapping找到具体的处理器,生成处理器对象以及处理器拦截器(如果有则生成),一并将其返回给DispatcherServlet(图...原创 2018-10-01 14:10:39 · 1857 阅读 · 0 评论 -
Java关于类加载器的简单学习
首先,类加载器本身也是一个类,类名就叫ClassLoader.类加载器一共有三个子类,都属于负责加载类的对象。1. AppClassLoader : 应用类加载器,作用是加载用户自定义类2.ExtClassLoader : 扩展类加载器,作用是加载类库中的一些展类3.BootStrapLoader : 引导类加载器,作用是加载 jdk提供的类.下面还是要看一下代码:p...原创 2018-08-03 09:33:39 · 166 阅读 · 0 评论 -
分享一个经典的MySQL数据库表
这个MySQL数据库表是从1981年延用至今的,其中的逻辑很强,很经典!CREATE TABLE emp( empno INT, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT) ;CREA...原创 2018-08-06 08:39:20 · 3340 阅读 · 2 评论 -
在eclipse中添加JUnit单元测试以及JUnit的使用注意事项
在我们所要进行测试的项目上右击,选择Build Path:之后选择最后一项Configure Build Path,会出现如下对话框:我们点击上方的LIbraries,选择Add Libraries:在随后出现的这个对话框中选择JUnit,点击Next:在此对话框中选择JUnit的版本,建议选择高版本的JUnit4,点击Finish,返回到最开始的Build Pat...原创 2018-07-31 10:52:21 · 37407 阅读 · 9 评论 -
关于Eclipse配置Tomcat8的问题
因为最近的学习要用到Tomcat8,所以直接去Tomcat官网下了个最新版的8.5.34,解决了同一台电脑上两个Tomcat的冲突问题后,决定在Eclipse上配置Tomcat8,却发现我的Eclipse并不支持Tomcat8(目前Eclipse 支持Tomcat8的应该不多)试了网上所说的掩耳盗铃的方法之后并没有成功,所以决定安装Tomcat8的插件,在Help——>Eclipse Mar...原创 2018-09-27 11:17:42 · 3991 阅读 · 0 评论 -
Eclipse的Preferences中没有Maven怎么办?
Maven是帮助我们进行项目构建管理的一个重要工具,Emmmmmm,因为还是个小白,这里就不装大明白了,就我目前了解Maven是用来管理jar包的,想要在Eclipse上运行就要将它集成到Eclipse工具上,但是按照网上的教程走了一遍,发现我的Eclipse中根本就没有Maven这个选项,这可让我如何是好???因为电脑上Maven已经安装完成,在cmd中也有如下信息:看了看网上安...原创 2018-09-27 08:55:51 · 29169 阅读 · 4 评论 -
为项目添加Eclipse中已存在的Server的jar包
右键项目,选择Build Path——>Configure Build Path——>Libraries——>Add Library——>Server Runtime,之后选择所要添加服务的jar包即可。为方便浏览截了几个图:第一步:第二步:第三步:第四步:这里就是你想要添加jar包的服务第五步:选择之后点Finish就大功告成了!...原创 2018-09-27 16:49:12 · 1469 阅读 · 0 评论 -
Springboot项目在设计测试用例进行测试时报错:java.lang.AssertionError: Status expected:<200> but was:<404>
这个问题也难了我好几天,最后在仔细看了一遍视频之后才发现,是包名错误导致的!视频中项目导入eclipse之后包名是下面这样的:而我将自己的项目导入eclipse之后包名是这样的:比视频中多了一级名为initializrstart的目录,这个原因导致测试类找不到对应的路径,所以会报404错误。将包重命名为视频中的包名问题就解决了...原创 2019-03-13 14:08:22 · 5920 阅读 · 0 评论 -
关于配置Maven的一些问题
今天遇到的问题:1.Java Compiler 没有1.8这个问题网上有好多人说在Eclipse Marketplace中搜索Java 8,然后选择第一个install,但是我失败了,我选了第二个安装结果没用,于是我决定更新Eclipse,更新之后就有1.8了。2.Maven项目报错:org.apache.maven.archiver.MavenArchiver.getManife...原创 2018-09-29 21:59:29 · 388 阅读 · 2 评论 -
算法学习——堆排序
堆排序就是将要排序的对象构造为一个有序的大顶堆或小顶堆(根据需要来定,升序排序构造大顶堆,降序排序构造小顶堆),之后每次将堆顶选出后剩下的节点元素再次进行排序,直到剩下最后一个节点元素为止,此时排序结束。package pp.suanfa;/** * 堆排序 * @author xiaoGd * */public class HeapSort { public sta...原创 2018-10-14 21:58:04 · 971 阅读 · 2 评论 -
算法学习——希尔排序
希尔排序的思想就是将排序对象分为步长序列进行插入排序,步长序列的增量是递减的,那么什么是步长序列呢?简单的说就是将一个大的序列按照固定的增量分为若干个小的序列,当数字作为序列的下标时,1,3,5,7,9就是一个步长序列,仔细考虑考虑不难理解,若一个长度为10的序列,将其按照增量为5来分段,此时要进行插入排序的分别是下标为0和5,1和6,2和7,3和8,4和9的元素,话不多说,咱们直接来看代码:...原创 2018-10-12 20:43:34 · 406 阅读 · 0 评论 -
算法学习——冒泡排序
顾名思义,冒泡排序就是将要排序的对象像冒泡泡一样一个挨着一个比较,最终形成一定的顺序。就像一群人中一共有五个人,要让他们按照身高进行排序,首先让第一个人和第二个人比较,个子高的人再和第三个人比较,这两个人中个子更高的再和第四个人比较,一轮下来就会选出最高的人,然后让剩下的四个人按照同样的方法进行比较,在四轮比较之后就会排出他们的顺序。假设要为一个数组进行排序,实现起来就是这样:int[...原创 2018-09-28 09:07:39 · 180 阅读 · 0 评论 -
算法学习——快速排序
看过了冒泡排序和选择排序,昨天看了快速排序,对于其中的位置互换理解的有点混乱,直到今天才弄明白是怎么一回事。过程大概了解了,利用了分治的思想,如果要对一个数组进行排序,先取数组中的一个数作为基准数,遍历数组,将数组中大于该基准数的数放在右边,小于该基准数的数放在左边,这样就将较小的数和较大的数分成了两个部分,基准数是最后确定位置的,并不是像插入排序一样先确定基准数的位置,然后再将其它数进行排序。...原创 2018-10-06 09:48:33 · 154 阅读 · 0 评论 -
关于Tomcat启动成功后index.jsp无法正常显示的问题(The origin server did not find a current representation )
首先我遇到的是这样的错误:The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.百度翻译给的中文结果是这个意思:OrthServer没有找到目标资源的当前表示,或者不愿意透露目标资源。就是找不...原创 2018-09-27 18:54:18 · 11524 阅读 · 3 评论 -
Java动态代理的简单学习
如果把要被代理的对象比喻成演员,那代理对象就是它的经纪人。经纪人会帮助演员处理很多事情,体现在代码里就是各种各样的方法。所以说代理对象方便了被代理对象的日后维护和修改,降低了程序的耦合性,提高了程序的鲁棒性。功能介绍完了,我们来看一下具体的实例:要实现动态代理,要实现两个重要的类,一个是Proxy——生成代理对象的类,一个是 InvocationHandler——处理被代理对象的类...原创 2018-08-03 17:40:24 · 191 阅读 · 0 评论 -
对Java中反射机制的理解
简单的说,反射机制就是在程序的运行过程中被允许对程序本身进行操作,比如自我检查,进行装载,还可以获取类本身,类的所有成员变量和方法,类的对象,还可以在运行过程中动态的创建类的实例,通过实例来调用类的方法,这就是反射机制一个比较重要的功能了。那么要通过程序来理解反射机制,首先要理解类的加载过程。在Java程序执行的时候,要经历三个步骤:加载、连接和初始化。首先程序要加载到JVM的方法区中,然...原创 2018-07-29 11:10:42 · 16434 阅读 · 13 评论 -
Hibernate级联关系映射(多对多)
多对多的关系和一对多的关系类似,就是把一对多种的一变成了多。Java对象描述多对多数据表之间的关系:class A{ Set<B> bs;//B的集合}class B{ Set<A> as;//A的集合}下面Gd就以学生和课程之间的关联关系进行多对多级联关系映射的学习:通常,为了方便维护数据,多对多的关系都会产生一张中间表,类似下图(Gd手拙,画的有点抽...原创 2018-06-07 18:54:02 · 225 阅读 · 0 评论 -
Hibernate级联关系映射(一对多)
简单的说,在数据库中,实体表之间的关系映射是采用外键来描述的,一对多关系的实现原理就是在多的一方,添加一的一方的主键作为外键。Hibernate中的关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用。在Hibernate中采用Java对象关系来描述数据表之间的关系:一对多:class A{ Set <B>bs;//B的集合}class B{ A a;...原创 2018-06-07 16:34:00 · 466 阅读 · 0 评论 -
Hibernate自动建表(使用DDL语句)
Gd上次和大家谈到使用DDL语句实现自动建表失败的问题,过了几天再回头看果然思路就变得清晰许多,原来是xxx.hbm.xml文件的配置上出了问题,因为上次没有用Junit进行测试,所以没有看明白问题的描述,这里不得不说一句,Junit真是个好东西,emmmmmm。Junit测试后报的错误是这样的: Could not parse mapping document: org/User/hiberna...原创 2018-06-07 10:16:17 · 5502 阅读 · 1 评论 -
Hibernate中使用HQL查询数据
这里需要注意的是需要在User类中提供适当的(也就是在此方法中所要查询的属性)的构造方法,因为实现有参构造函数后,隐式的无参构造函数不再存在,此时在User类中要显式提供无参构造函数,便于创建新的User对象。...原创 2018-06-06 21:57:45 · 4209 阅读 · 0 评论 -
使用Hibernate实现简单的CRUD课程管理
资源已上传,详情请点击链接进行下载:点击打开链接原创 2018-06-20 21:48:09 · 186 阅读 · 0 评论 -
Hibernate配置Oracle
Hibernate配置之Oracle篇:Oracle的安装我就不说了,网上有很多教程,不得不说有点麻烦(口令管理的地方需要注意,千万别忘了,要不以后会更麻烦),没装明白卸载起来就更麻烦了,我来来回回折腾了差不多三遍才差不多弄明白。需要注意的地方是安装的时候如果选择的是创建和配置数据库,那么安装完成以后就已经新建了一个数据库,不需要再次新建数据库了,而这个数据库的名字如果没有手动更改,那么应该就是默...原创 2018-05-29 21:27:44 · 5163 阅读 · 0 评论 -
foreach方法关于Java Compiler的一点小问题
Gd今天在跟着视频学习编写课程管理系统的时候发现一个问题:明明和视频里的代码一样,怎么就是报错呢???查看了错误信息:Syntax error, 'for each' statements are only available if source level is 1.5 or greater,这句话的意思是说发生了语法错误,“foreach”语句只有在源级别为1.5或更大时才可用。百度 了一下,...原创 2018-06-02 16:57:47 · 363 阅读 · 0 评论 -
Hibernate配置MySQL
这篇文章是学习ORM的第一步!老师讲了,学习ORM要分三步:1、Why ORM?2、What ORM?3、How ORM? 这三步前两步的表面意思很好理解,但是深入理解以及第三步的具体内容还需要放到以后的学习中去。 下面步入正题: 1、首先下载所需要的Hibernate文件,这里用的是老师提供的hibernate-release-5.2.10.Final. 2、导入所需要的...原创 2018-05-07 21:58:17 · 418 阅读 · 0 评论 -
Hibenate中构建单态Session完成增删改查操作
Hibernate中每当创建一个方法完成数据库的增删改查操作时都需要新建一个SessionFactory对象,这样会使代码显得稍有繁杂,像我们平时学习和做练习的时候还好一些,如果到了大型的项目实践中,未免显得非常麻烦。老师上课时谈到,构建单态的SessionFactory有两种方法,一种是使用静态代码块,一种是使用私有化构造方法,课本上提到了静态代码块的实例,所以我决定先用私有化构造方法尝试一下。...原创 2018-06-01 19:33:19 · 275 阅读 · 0 评论 -
Hibernate自动建表
在使用<property name="hibernate.hbm2ddl.auto" value="create" /> 这个语句自动建表屡试无果后我决定学习另一种看起来比较麻烦的方法来进行自动建表!配置好的实体类、xxx.hbm.xml文件和xxx.cfg.xml文件需要做的变动不多,只要有下面几处:xxx.cfg.xml文件中:<!DOCTYPE hibernate-conf...原创 2018-06-01 21:48:13 · 210 阅读 · 0 评论 -
Java程序初始化的顺序
Java程序的初始化一般遵循三个原则(优先级依次递减):(1)静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只执行一次,而非静态对象(变量)可能会初始化多次。(2)父类优先于子类进行初始化。(3)按照成员变量的定义顺序进行初始化。即使变量定义散布于方法定义之中,它们依然在任何方法(包括构造函数)被调用之前先初始化。Java程序初始化工作可以在许多不同的代码块中来完成(例如静...原创 2018-07-07 21:10:24 · 197 阅读 · 0 评论 -
Java和C/C++的异同
Java和C++都是面向对象语言,都使用了面向对象思想(例如封装、继承和多态等),由于面向对象有很多非常好的特性(继承、组合等),因此二者具有很好的可重用性。不同点:(1)Java为解释性语言,其运行过程为:程序源代码经过Java编译器编译成字节码,然后由JVM解释执行。而C/C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此,Java的执行速度比C和C++慢,但是Java能跨...原创 2018-07-05 18:46:29 · 506 阅读 · 0 评论 -
小小的java.lang.ClassNotFoundException问题
今天Gd在写完一个DBHelper类进行测试的时候总是有java.lang.ClassNotFoundException这样的错误,然后测试结果显示的还是“数据库连接正常!”,这我就“百思不得姐”了,咋回事呢,百度一下后发现是包的问题,仔细看了一下lib文件夹包也确确实实导进去了啊,一想到要连接数据库,脑海里突然就出现了Build Path这个词,然后Gd就右键驱动包,找到Build Path选项...原创 2018-07-04 12:23:10 · 640 阅读 · 0 评论 -
Java中实现类似C语言中函数指针的功能
为了开题漂亮一点,就要像写作文一样,引用一大段书上的话,这样能让博客看起来更加高大上,哈哈。首先来看一下什么是C语言中的指针,字面上理解就是一个类似实现定位功能的结构。指针最重要的功能,就是实现回调函数,所谓回调函数,就是指让函数先在某处注册,而它将在稍后某个需要的时候被调用。回调函数一般用于截获消息,获取系统信息或处理异步事件。那么在Java中究竟如何实现回调函数呢?书就抄到这里,举个例子来说明...原创 2018-06-28 18:15:19 · 1733 阅读 · 0 评论 -
Struts2入门第一步——配置Struts2
通过最近的学习和对网上资料的参考,Gd发现SSH是Java框架学习中很重要的一部分,学过ORM之后,对Hibernate有了浅层的了解,但是如果要完成一个完整的项目光靠Hibernate是不够的,于是Gd自己琢磨了一下Struts2,现在就把Struts2的入门案例分享给大家,也希望有前辈能够帮忙指出其中的不足。首先给大家推荐一个慕课网的Struts2入门的视频:点击打开链接,里面对配置方面讲的很...原创 2018-06-20 16:54:20 · 405 阅读 · 0 评论 -
没有任何方法的接口——标识接口
Gd最初对接口的理解就是整合不同方法为不同的派生类提供合适的方法的特殊的“类”。后来发现还有任何方法的接口,这我就有点不理解了,但是不弄明白岂不是很瓜皮,于是通过查阅资料,得出了对此类接口,也就是标识接口的理解:首先看一下标准的接口的概念:由于Java不支持多重继承,即一个类只能有一个父类,为了克服单继承的缺点,Java语言引入了接口这一概念。接口是抽象方法定义的集合(接口中也可以定义一些常量值)...原创 2018-06-25 15:56:24 · 1340 阅读 · 0 评论 -
对 public static void main (String[ ] args) 方法的理解
用书上的话说,public static void main (String[ ] args)为Java程序的入口方法,JVM在运行程序时,会首先查找main()方法。下面Gd就把这整个public static void main(String[ ] args)拆开来说一说:public ——>大家都知道的,权限修饰符,表明任何类和对象都可以访问这个方法。static——>大家也都懂...原创 2018-06-24 08:59:39 · 1025 阅读 · 0 评论 -
关于重写equals方法的学习
以前忘了是在哪位前辈的博客中看到一句话,Java中一切皆为对象,当初还不太理解,以为对象就是对象就是Person p = new Person();中的p,随着越来越深入的学习,也越来越觉得这句话简单又深刻。Gd今天学习的是equals()方法的重写,看起来很简单,但是拓展起来也是很有意思的,首先来看一下没有重写的equals()方法:package org.requals;class Per...原创 2018-06-02 11:14:28 · 369 阅读 · 0 评论