编程
Jimmy_smile
这个作者很懒,什么都没留下…
展开
-
Java学习:初识反射
首先我们来了解一下Java的反射机制:在运行状态下,我们能够知道一个类有哪些属性和方法,对于一个对象来说我们能够调用他的属性和方法,这种获取一个类的信息和调用一个对象的属性和方法就是Java的反射机制,我们要解刨一个类,就必须先得到他的字节码对象,通过使用class类的方法才能对这个类进行剖析,所以我们要先获得每一个字节码文件对应的class类型的对象。 获得class对象有三种方法: 1.通过o...原创 2019-03-06 22:56:17 · 115 阅读 · 0 评论 -
二叉树的三种遍历方式
理解了二叉树之后,我们先解释一下二叉树的三种遍历方式的顺序。 先序遍历:根 左子树 右子树 中序遍历:左子树 根 右子树 后序遍历:左子树 右子树 根 根据这些顺序,我们就可以用代码来实现二叉树的遍历。 如上图的二叉树,用先中后三种遍历方式来进行遍历: 先构建二叉树: public class Node { int value;//节点值 Node leftchild;//左子树...原创 2019-06-13 20:40:48 · 319 阅读 · 0 评论 -
使用maven创建MyBatis项目遇到BindingException的一个可能原因
今天用maven创建了一个mybatis项目,在基本的xml文件和接口都配置好之后,想在数据库中实现增加操作,结果编译之后,出现了这样一个错误:BindingException——绑定异常,什么意思呢?我的sql语句没有办法执行,查询一番之后才明白,后来发现,使用maven创建mybatis项目时,在pom.xml文件里面的build标签里,要加入这样一段代码: <build>...原创 2019-05-29 11:17:01 · 485 阅读 · 0 评论 -
关于volatile关键字在多线程单例模式下的应用
多线程下单例模式存在的问题 单例模式相信很多人都了解过,不过对于初学者来说,单例模式主要是在单线程中的操作,事实上很多问题只要涉及到了多线程当中,就会暴露出许多问题,同样的,单例模式如果应用到多线程当中,那它就不叫单例模式了,不信?让我们来瞧一瞧。 首先编写一个单例模式对于大家来讲应该是很简单的事了,那么在测试方法中,我们来开启多个线程,来获取我们单例模式new出来的对象回怎样呢?我们来看下面一段...原创 2019-05-08 22:45:25 · 413 阅读 · 0 评论 -
SpringMVC实现文件上传
上次利用jsp和servlet实现文件上传,但在实际工作中几乎不用这种方式来实现文件上传,因为实在有点过于麻烦,而利用SpringMVC来实现文件上传只需要简单地几步就可达到目的。 添加jar包 同jsp和servlet上传文件一样,同样需要在项目中添加两个jar包, 在springmvc-servlet.xml中添加文件解析器 如图所示添加 创建controller和jsp文件 在jsp文件...原创 2019-04-24 21:16:10 · 93 阅读 · 0 评论 -
MyBatis环境下利用XML和接口操作数据库
在搭建好MyBatis应用后,我们不妨来了解一下MyBatis的一些核心部件。 MyBatis的核心部分分为如下四个部分: SqlSessionFactory:生成SqlSession的类,利用工厂模式 SqlSessionFactoryBuilder:构造SqlSessionFactory所需要的类,通过调用他的builder方法,采用分步构建的Builder模式 SqlSession:通过它...原创 2019-04-19 08:38:50 · 1035 阅读 · 0 评论 -
利用JSP和servlet实现文件上传
jsp部分 我们在jsp文件中创建一个简单的表单,action提交到UploadFileServlet页面,method设置为post,第一个ingput标签中type属性设置为file,第二个input标签为提交标签, 如下面代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodin...原创 2019-04-07 22:45:56 · 1339 阅读 · 2 评论 -
二分查找思路及代码实现(Java)
二分查找又称为折半查找,二分查找的关键在于,给出的一列数,必须是有序的排列,该算法的时间复杂度O(n)=O(log2^n)。假设一个数组为升序排列,通过每次找中间索引的值,来和我们要查找的数来进行比较,如果中间值大于所查找的值,则说明该值在中间值的左边,因此再从左边的数组继续寻找中间值,直到找出该数为止。我们来通过代码来作以解释: import java.util.Scanner; public...原创 2019-03-22 23:01:11 · 369 阅读 · 1 评论 -
插入排序
插入排序:就是当我们拿到一段无序数组,每次选取一个数,来对照已经排好的数,我们可以选取数组中角标为1的数,先和前面0索引位置上的书比,再依次向后推移,之后每次获取后面位置的数字,再与前面排好的数比较,默认我们按照正序排列,如下图所示 我们来用代码实现: package org.jimmy.demo3; import java.util.Arrays; /** * @Author: Admin...原创 2019-03-12 21:57:07 · 113 阅读 · 0 评论 -
快速排序java版
快速排序的关键在于要在数组中选择一个数作为一个标志位,然后通过和这个标志位的比较,来把数组分成两部分,一部分比这个标志位的值小,另一部分比这个标志位的值大,再之后继续同样的操作来对两个部分进行排序,直到最后剩下一个数,我们可以写出这些步骤的具体实现,再利用递归来将每次排序完成。笔者今天看到一段视频,很形象也很有趣的将快速排序向我们展示出来: http://url.cn/5RgeoYV 接下来我们来...原创 2019-03-11 21:55:06 · 131 阅读 · 0 评论 -
单例模式
单例设计模式,保证一个类的实例只有一个,首先我们要想到的是,将这个类的构造方法私有化,让他在内存中只有一份,节约内存。用通俗的话讲,就是不能让这个类new出来。我们在这个类中创建一个类的实例化对象,再通过一个静态方法,返回该对象。例如创建一个学生类,私有他的构造方法,如下面这段代码: public class Student { private static Student student...原创 2019-03-07 21:32:25 · 91 阅读 · 0 评论 -
关于使用idea在maven项目中出现Error:java: Annotation processing is not supported for module cycles.Pleas的问题解决方法
最近在创建一个maven项目时,遇到了一个问题,程序无法执行,并且报出Error:java: Annotation processing is not supported for module cycles.Please ensure that all modules from cycle [config,dao] are excluded from annotation processing的错...原创 2019-06-23 20:57:32 · 2468 阅读 · 0 评论