自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指offer:打印数组拼接后的最小数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。这道题利用排序的思想,将每个数转为字符串,从第一个开始,第一个元素先和后面的元素拼接,然后后面的元素再和第一个元素拼接,转为int值,比较大小,如果比较之后后面加前面比前面加后面要小,就交换数组中这两个数的顺序。代码如下:...

2019-08-04 22:37:09 254

原创 剑指offer:求1出现的次数

求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。public class Solution { public int Num...

2019-08-04 22:32:41 149

原创 剑指offer:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

import java.util.Stack;public class Solution { //借助两个栈,一个存放所有元素,一个存放比较的元素 Stack<Integer> stack1=new Stack<Integer>(); Stack<Integer> stack2=new Stack<Intege...

2019-07-31 10:16:24 157

原创 剑指offer:判断是否为弹出序列

/**输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)*/import java.util.ArrayList;import ja...

2019-07-31 10:13:57 125

原创 剑指offer:输入一个链表,反转链表后,输出新链表的表头。

public class Solution { public ListNode ReverseList(ListNode head) { if (head==null){ //判断为null的情况 return null; } ListNode pre=null; ListNode...

2019-07-29 21:41:46 124

原创 剑指offer:题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)

/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { publi...

2019-07-29 21:36:21 91

原创 剑指offer:从头到尾打印链表

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList链表类:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Solution { /...

2019-07-07 21:47:21 84

原创 简单了解java类加载的过程

一个类从被加载到虚拟机内存中,到卸载出内存,生命周期包括了:加载,验证,准备,解析,初始化,使用和卸载。大致的顺序可如下图:关于类加载的全过程,也就是指加载,验证,准备,解析和初始化这五个阶段的具体操作。加载(Loading)首先我们要明白,加载是类加载的第一个阶段,而并非相同,加载的过程中,虚拟机所要进行如下操作:通过一个类的全限定名来获取定义该类的二进制字节流将这个字节流所代表的静...

2019-07-04 15:54:48 117

原创 一些常见的HTTP状态码

在面试的时候经常会被提问到一些关于状态码的意义问题,今天就写一篇博客,来总结一些常见的状态码:关于状态码,在《图解HTTP》这本书里给出了这样的总结1xx该类状态码表示接收的请求正在被处理2xx请求正常处理完毕3xx需要进行附加操作以完成请求4xx服务器无法处理请求5xx服务器处理请求出错2xx 成功200 ok表示客户端所发出的请求被服务端正常...

2019-07-01 21:30:05 129

原创 关于使用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 2400

原创 二叉树的三种遍历方式

理解了二叉树之后,我们先解释一下二叉树的三种遍历方式的顺序。先序遍历:根 左子树 右子树中序遍历:左子树 根 右子树后序遍历:左子树 右子树 根根据这些顺序,我们就可以用代码来实现二叉树的遍历。如上图的二叉树,用先中后三种遍历方式来进行遍历:先构建二叉树:public class Node { int value;//节点值 Node leftchild;//左子树...

2019-06-13 20:40:48 303

原创 使用maven创建MyBatis项目遇到BindingException的一个可能原因

今天用maven创建了一个mybatis项目,在基本的xml文件和接口都配置好之后,想在数据库中实现增加操作,结果编译之后,出现了这样一个错误:BindingException——绑定异常,什么意思呢?我的sql语句没有办法执行,查询一番之后才明白,后来发现,使用maven创建mybatis项目时,在pom.xml文件里面的build标签里,要加入这样一段代码: <build>...

2019-05-29 11:17:01 456

原创 Java的四种引用方式

我们都知道,java垃圾回收都是由JVM自动进行的,而垃圾回收机制的根据就在于该对象有没有引用。Java共有四种引用方式:强引用软引用弱引用虚引用强引用创建一个对象并将其赋给一个引用变量,这就是强引用,而强引用的特点在于,引用的变量永远不会被GC回收,即使发生内存溢出,照样不会!软引用软引用(SoftReference),如果一个对象是被软引用,当内存足够时,就不会对它进行垃...

2019-05-17 17:45:43 196

原创 关于volatile关键字在多线程单例模式下的应用

多线程下单例模式存在的问题单例模式相信很多人都了解过,不过对于初学者来说,单例模式主要是在单线程中的操作,事实上很多问题只要涉及到了多线程当中,就会暴露出许多问题,同样的,单例模式如果应用到多线程当中,那它就不叫单例模式了,不信?让我们来瞧一瞧。首先编写一个单例模式对于大家来讲应该是很简单的事了,那么在测试方法中,我们来开启多个线程,来获取我们单例模式new出来的对象回怎样呢?我们来看下面一段...

2019-05-08 22:45:25 400

原创 SpringMVC实现文件上传

上次利用jsp和servlet实现文件上传,但在实际工作中几乎不用这种方式来实现文件上传,因为实在有点过于麻烦,而利用SpringMVC来实现文件上传只需要简单地几步就可达到目的。添加jar包同jsp和servlet上传文件一样,同样需要在项目中添加两个jar包,在springmvc-servlet.xml中添加文件解析器如图所示添加创建controller和jsp文件在jsp文件...

2019-04-24 21:16:10 83

原创 MyBatis环境下利用XML和接口操作数据库

在搭建好MyBatis应用后,我们不妨来了解一下MyBatis的一些核心部件。MyBatis的核心部分分为如下四个部分:SqlSessionFactory:生成SqlSession的类,利用工厂模式SqlSessionFactoryBuilder:构造SqlSessionFactory所需要的类,通过调用他的builder方法,采用分步构建的Builder模式SqlSession:通过它...

2019-04-19 08:38:50 979

原创 利用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 1252 2

原创 二分查找思路及代码实现(Java)

二分查找又称为折半查找,二分查找的关键在于,给出的一列数,必须是有序的排列,该算法的时间复杂度O(n)=O(log2^n)。假设一个数组为升序排列,通过每次找中间索引的值,来和我们要查找的数来进行比较,如果中间值大于所查找的值,则说明该值在中间值的左边,因此再从左边的数组继续寻找中间值,直到找出该数为止。我们来通过代码来作以解释:import java.util.Scanner;public...

2019-03-22 23:01:11 321 1

原创 插入排序

插入排序:就是当我们拿到一段无序数组,每次选取一个数,来对照已经排好的数,我们可以选取数组中角标为1的数,先和前面0索引位置上的书比,再依次向后推移,之后每次获取后面位置的数字,再与前面排好的数比较,默认我们按照正序排列,如下图所示我们来用代码实现:package org.jimmy.demo3;import java.util.Arrays;/** * @Author: Admin...

2019-03-12 21:57:07 97

原创 快速排序java版

快速排序的关键在于要在数组中选择一个数作为一个标志位,然后通过和这个标志位的比较,来把数组分成两部分,一部分比这个标志位的值小,另一部分比这个标志位的值大,再之后继续同样的操作来对两个部分进行排序,直到最后剩下一个数,我们可以写出这些步骤的具体实现,再利用递归来将每次排序完成。笔者今天看到一段视频,很形象也很有趣的将快速排序向我们展示出来:http://url.cn/5RgeoYV接下来我们来...

2019-03-11 21:55:06 118

原创 单例模式

单例设计模式,保证一个类的实例只有一个,首先我们要想到的是,将这个类的构造方法私有化,让他在内存中只有一份,节约内存。用通俗的话讲,就是不能让这个类new出来。我们在这个类中创建一个类的实例化对象,再通过一个静态方法,返回该对象。例如创建一个学生类,私有他的构造方法,如下面这段代码:public class Student { private static Student student...

2019-03-07 21:32:25 83

原创 Java学习:初识反射

首先我们来了解一下Java的反射机制:在运行状态下,我们能够知道一个类有哪些属性和方法,对于一个对象来说我们能够调用他的属性和方法,这种获取一个类的信息和调用一个对象的属性和方法就是Java的反射机制,我们要解刨一个类,就必须先得到他的字节码对象,通过使用class类的方法才能对这个类进行剖析,所以我们要先获得每一个字节码文件对应的class类型的对象。获得class对象有三种方法:1.通过o...

2019-03-06 22:56:17 101

原创 一些有意思的IO流

一.数据输入输出流数据输入流: DataInputStream数据输出流: DataOutputStream这类流的特点是可以读和写基本数据类型我们通过调用方法来实现这一目的package org.jimmy.demo;import java.io.*;/** * @Author: Administrator * @CreateTime: 2019-01-21 15:50 ...

2019-01-21 18:53:59 164 1

原创 通过IO流进行文件复制

通过IO流的类进行复制操作,将指定路径的文件复制到另一个盘符中package org.jimmy.demo;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * @Author: Administrator * @CreateTime: 201...

2019-01-16 21:53:25 413

原创 Java学习:IO流了解

IO流,就是在处理数据在设备之间的传输,I,就是输入,O就是输出,我们也可以根据数据类型分为两大类:字节型和字符型,其中字节型IO流可以处理任意类型的文件,比如视频音频等,而字符型IO流只能处理文本文件,今天就来讨论一下这两大类。字节流:字节流有两大基本抽象类——InputStream,OutputStream,我们可以说只要是尾部是Stream结尾的,就是字节流,今天我们通过这两大基本抽象类...

2019-01-16 21:39:07 103

原创 将一个数组按照指定字符串形式输出(Java语言实现)

package org.jimmy.demo2;import java.util.Arrays;/** * @Author: Administrator * @CreateTime: 2018-12-25 21:59 */public class StringDemo6 { public static void main(String[] args) { i...

2018-12-25 22:08:27 2122 1

原创 Java学习:String类概述及部分方法

我们可以查询API文档中对String类的解释:String类表示的字符串。java程序中的所有字符串,如 “abc”,实现这个类的实例。所有字符串实现这个类的实例又是什么意思呢?就是说,你敲出一个字符串,默认这个字符串就是String的一个对象。比如下面这段代码package org.jimmy.demo2;/** * @Author: Administrator * @Creat...

2018-12-25 21:46:23 144

原创 Java学习:Object类的部分方法

Object类是Java语言中的根类,就是所有类的父类,如果一个类没有特别指定的父类,那么默认这个类继承于Object类。Object类中的hashCode()方法public int hashCode()方法:返回该对象的哈希码值package org.jimmy.demo;/** * @Author: Administrator * @CreateTime: 2018-12-2...

2018-12-25 20:08:17 82

原创 Java学习:内部类部分了解

内部类:将一个类定义在另一个类的内部,我们就称之为内部类内部类根据定义的位置不同,分为成员内部类和局部内部类成员内部类:就是这个类,定义在另一个类的成员位置(类中方法外)局部内部类:将一个类定义在另一个类的局部位置(方法中)成员内部类的特点:可以直接访问外部类的成员,包括私有的都能访问到外部类想要访问内部类的成员,得创建内部类的对象public class Wai { ...

2018-12-18 22:46:40 345

原创 Java学习:Java中的修饰符

四种权限修饰符类中的修饰符:权限修饰符:默认修饰符(缺省),public状态修饰符:final抽象修饰符:abstract成员变量:权限修饰符:private,默认的,protected,public状态修饰符:static,final构造方法:权限修饰符:private,默认的,protected,public成员方法:权限修饰符:private,默认的,protecte...

2018-12-18 22:27:23 136

原创 Java学习:方法参数类型以及返回值类型问题

当类名作为形式参数时:我们用代码来体会:public class Person { public void show(){ System.out.println("父类的show方法"); }}public class Student extends Person { @Override public void show() { su...

2018-12-18 22:10:37 1640

原创 Java学习:对接口的了解

接口:跟类同级别,接口经常用来定义一些额外的功能和定义,接口中是用来定义一些拓展功能的,而且接口里面不能定义非抽象方法,只能定义抽象方法。**interface关键字:**接口用interface关键字表示,可以和class类比,定义格式:interface 接口名{}**implement关键字:**类实现接口用implement关键字表示,定义格式:implement 类名{}接口的特点...

2018-12-18 20:59:15 115

原创 Java学习:抽象类的理解

我们在猫狗案例中可以看出,猫和狗都继承于动物这个父类,但是如果我们只看到动物这个父类,只知道是动物,并不知道是具体的哪个动物,就像是一个抽象的事物,而父类所包含的功能,对于不同子类也会有不同的体现,所以我们在父类中可以不用给这些功能具体的表现,只需要给出声明即可,这就是抽象类的概念,一个类中如果有抽象方法,那么这个类就一定是抽象类。abstract关键字:用来修饰抽象类和抽象方法抽象类格式: ...

2018-12-18 20:20:08 141

原创 Java学习:多态

多态:就是指一种事物,在不同时刻,所表现出来的不同状态。在我们编写程序时,经常会发现一个父类的许多子类继承了父类的功能,但不同的子类所体现出的功能却不尽相同,例如经典的猫狗案例。多态的前提:1.要有继承2.要有方法重写,不重写也可以,但是就失去了多态的意义3.父类引用指向子类对象我们可以通过一个程序来做以了解public class Animal { public Strin...

2018-12-18 19:53:19 99

原创 Java学习笔记十:继承

多个类中存在相同的属性和行为,我们可以把这些属性和行为抽取到一个类中,在这些类用到这些属性和行为时,直接继承那个类就可。继承格式通过extends关键字来继承父类class 子类名 extends 父类名{}ackage org.westos.demo;public class Animals { String name; int age; ...

2018-12-11 23:46:30 121

原创 Java学习笔记九:构造方法及构造方法重载

一.构造方法构造方法的名字必须要和类名相同,构造方法是没有返回值的,但是不能声明void,如果在一个类中,有一个方法和类名相同,但是有返回值类型,那这就不是构造方法,而是一个普通方法。当一个类没有定义一个构造方法时,那么系统会默认给你一个无参的构造方法,但是当你定义了一个构造方法后,无论这个方法有参无参,默认的无参方法都会消失,构造方法的功能在于创建一个类的对象时初始化的状态,在通过new来创...

2018-12-11 22:44:32 304

原创 Java笔记八:private、this、super、static、final关键字

一.private关键字特点:1.是一个权限修饰符2.可以修饰成员变量和成员方法3.private修饰后只能被本类的成员访问为什么会要用private关键字呢?有的时候在一个类中调用另一个类所创建的对象的变量和方法时,再给这个变量赋值时,可能并不符合这个变量在实际中的应用,这就可以通过private关键字修饰,在类中通过方法调用,加一些条件判断,这样在调用时就不会出现不符合实际的量。...

2018-12-11 21:45:15 255

原创 Java学习笔记七:面向对象思想

我们都知道Java是一门面向对象的语言,在这里我们所说的面向对象是基于面向过程而言的,举一个生活中的例子:人要吃饭,如果从面向过程的角度来看,要先买菜,洗菜,炒菜,最后才能吃到饭;如果用面向对象的角度来看呢?直接叫外卖,让商家帮你做好,我们要做的只是通知商家做饭。这个例子反映到我们的程序也是一样的,每一个程序都有要实现的功能,当我们只需要实现少数功能时,看起来很简单,但是当我们的需求增多,要更改的...

2018-12-11 18:56:23 91

原创 Java语言输出杨辉三角

实现由自己输入行数,输出n行的杨辉三角package org.jimmy.demo3;import java.util.Scanner;public class Yanghui { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n ...

2018-12-04 22:52:12 453

原创 Java学习笔记六:数组

一.一维数组6.1 数组定义格式:数据类型[] 数组名;数据类型 数组名[];6.2 数组的初始化:数组的初始化可以分为动态初始化和静态初始化;动态初始化:数据类型[] 数组名=new 数据类型[数组长度];例如:int[] arr=new int[5];就是指定义了一个可以存放五个int类型值的数组。静态初始化:数据类型[] 数组名 = {元素1,元素2,…};例如:int...

2018-12-04 22:46:01 94

空空如也

空空如也

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

TA关注的人

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