自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见的6种排序图解 - java语言描述

目录1、冒泡排序2、直接插入排序3. 希尔排序4、归并排序5. 快速排序6. 选择排序首先,在说几个排序算法之前,先自己写一个简单的工具类,判断一个数列是否有序(以升序为例),如果不是升序的数列,在出现乱序的地方把附近的两个元素输出一下: /** * 判断一组数据是不是升序 * @param array 传入一个需要判断是否有序的数列 ...

2019-08-10 12:01:31 457

原创 Java项目 Everything

everything1、项目描述基于Java语言,模仿Linux下的find命令,实现windows下命令行的查找文件的功能,由于是Java语言开发,所以也具有跨平台性2、项目背景在Linux下的find命令很好用,但是在windows下查找文件却不是那么方便,在windows界面查找速度非常慢而且还不能跨盘查找,因此开发这款命令行的查找工具,可以在windows下快速全盘查找。...

2019-08-04 17:33:31 631

原创 Java juc包下的常用工具类

1、java.util.concurrent.CountDownLatch;CountDownLatch 又叫闭锁,可以让一个线程等待其他一组线程都执行结束之后再继续执行,如果在主方法中使用,就会将主线程阻塞,等待指定个数的线程都执行结束之后,主线程在恢复执行。举个例子:就相当于在比赛的时候,一个裁判,要等待所有运动员都到了终点之后,裁判才会结束比赛CountDownLatch中有几...

2019-07-17 20:23:28 878 1

原创 模板设计模式 - java语言描述

下面,我将用泡茶 和 泡咖啡的例子来描述模板设计模式的思想:先来看看泡茶手册:烧开水 把茶叶放入被子中 把开水倒入杯子中 喝茶泡咖啡手册:烧开水 把咖啡倒进杯子中 把开水倒进杯子中 喝咖啡首先,如果不考虑什么设计模式,现在让我们来实现这两个过程,我们可以用一下代码实现:运行结果:运行结果:但是这样写感觉有问题,这样的话有许多代码似乎是重复的,...

2019-07-13 21:59:26 257

原创 java中的陷阱总结

1、java方法中的参数传递在java中,只有值传递,没有引用传递。值传递:当传的是基本数据类型的时候,只是将实参的值拷贝了一份传递给方法;当传的是引用类型时,是将引用类型的地址传递过去。正如下面这两个例子:对上面的程序进行分析:首先,在java中,java虚拟机会为每一个方法创建一个栈帧(栈帧简单来说其实就是支持虚拟机进行方法执行和方法调用的一种数据结构,里面存放了局部变量表,...

2019-07-13 15:18:40 261

原创 【编程题】简单错误记录 Java实现

题目描述:开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理: 1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并) 2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并) 3.输...

2019-07-08 20:16:56 365

原创 JavaEE学习篇—SpringMVC

在说什么是SpringMVC之前,先来看看什么是MVC;一、MCV三层模型MVC 是一种应用程序的分层开发模型,其中的M表示的是Model, V 表示的是View, C表示的是ControllerM(Model) : 模型 ,代表一个存取数据的一个对象,常用POJO(普通java类)、Javabean表示。Model有对数据的直接访问权限,例如对数据库的访问。Model...

2019-07-07 21:33:41 271

原创 javaEE学习篇—从代理模式到SpringAOP

SpringAOP 就是Spring实现了AOP这种设计模式,AOP的全称为:Aspect Oriented Programming,意为:面向切面编程。为什么会有面向切面编程呢。在java中,java语言是面向对象编程(OOP),但是在面向对象编程中,有时候会有一些问题,比如:当我们要给一些不具有继承关系的对象引入一些公共行为,比如安全日志检查,只能在每个对象中引入公共对象,这样做非常不便于维护...

2019-06-17 20:41:17 266

原创 Spring_IOC/DI

1、问题引入在说Spring之前,首先来回顾一下我们之前学习的javaSE部分的知识,假如我们现在有一个需求:现在有两个类(A类和B类),我们需要在第二个类(B)中调用第一个类(A)的某些方法,用我们以前学过的知识,肯定是在第二个类中实例化一个A类的对象,然后用对象调用对应的方法,具体操作如下:但是这么做并不是一个好的方法,因为这样做我们可以理解为是A类 ‘污染’ 了B类,或者说是A类...

2019-06-07 22:20:31 502

原创 JavaWeb学习篇—Servlet-Session数据处理

一、Session简介:Session 和 Cookie一样,同样是在客户端和服务器之间进行会话时用来传输数据的一种方式,不过Cookie数据是保存在客户端的,而Session数据是存储在服务器端的,然后服务器会给客户端返回一个对应Session的ID存储在客户端的cookie中,当浏览器需要对应的数据时,就可以通过存储在客户端的Sessionid去服务器获取对应的数据。这样,也就可以解决用...

2019-06-01 19:12:23 443

原创 JavaWeb学习篇—基于案例的Servlet-Cookie数据处理

目录一、Cookie简介:1.1 简介1.2 cookie的特点:二、Cookie中的常用方法: Cookie中的常用方法三、使用案例:案例1:cookie的基本使用:​案例2:记录上次登录时间案例3:记录访问商品足迹一、Cookie简介:1.1 简介Cookie一般存在与http协议头中,它是一个客户端的数据文件,用来保存一...

2019-05-26 21:45:53 281

原创 JavaWeb学习篇—Servlet的生命周期

目录1、Tomcat简介2、Servlet的生命周期简介3、用代码模拟声明周期的全过程4、ServletConfig对象 案例:读取文件内容:5、ServletContext对象 ServletContext对象用于获取上下文路径(所谓的上下文路径,其实就是项目名称) 案例:获取上下文路径1、Tomcat简介因...

2019-05-24 00:37:47 389

原创 JavaWeb学习篇—Servlet基本配置及http协议

目录一、什么是Servlet二、使用IDEA创建一个servlet程序全过程图解:关于映射路径:三、servlet的执行流程:3.1 引入概念 容器什么是容器:容器可以用来干嘛:3.2 Servlet的执行流程:四、http协议:4.1 常见的请求头:4.2常见的响应头:4.3 通过servlet获取http请求信息:4.3.1 获取请求行的信...

2019-05-19 16:03:24 877

原创 JavaWeb学习篇—XML的SXA解析

在上一篇博客中说到了xml的DOM解析,虽然DOM解析比较好理解,但是如果xml文件的结构层次太深,在使用DOM解析就不太方便了。一、SAX解析简介:1、SAX解析是基于事件编程简单来说就是当遇到某一个事件的时候就会触发一个对应的方法,满足事件编程3要素:事件编程三要素:事件源 这里的事件源值得就是写的xml文件 事件监听器 当遇到文档开始,触发方法startDoc...

2019-05-13 23:57:10 261

原创 Java学习篇之反射

一、认识反射1.1 反射的概念1.2 Class对象的三种实例化方式二、反射与类操作2.1 取得父类与父接口信息2.2 调用类中的构造方法2.3 调用普通方法2.4 调用类中的属性三、Java类加载器3.1 Java类加载器定义3.2 JDK中内置的3大类加载器3.3 双亲委派模型1、双亲委派模型的定义2、执行流程3、意义:4、如果我们自...

2019-05-09 21:41:24 233

原创 JavaWeb学习篇—XML的DOM解析

在上一篇博客:XML基础中说到,XML可以用作一个小型的数据库,那么这个“数据库”到底该怎么用呢???这就需要用到XML解析。这篇博客中,主要通过以下一个案例,来分析XML的DOM解析:一、案例:xml实现的一个简单通讯录编写一个XML文件(contact.xml),内容如下:这时候,要想实现一个通讯录系统,首先要将xml文件中的内容提取出来,然后封装成一个联系人对象。二...

2019-05-05 15:39:42 563

原创 JavaWeb学习篇—XML基础

目录一、XML简介:二、HTML 和 XML的对比三、XML的语法规则:3.1 标签3.2 属性:3.3 注释:3.4 文档声明及XML的解码过程:3.5 转移字符3.6 CDATA块 --- 批量转译四、XML的树形结构:五、XML的作用5.1 可以作为配置文件去使用5.2 作为小型数据库使用5.3 XML可以把数据从HTML中分离出来...

2019-05-03 18:45:48 224

原创 HTML学习篇01

目录一、HTML简介:二、HTML的编辑器三、HTML基础语法及基本标签3.1 标题标签 : ……(文本内容) n表示数字1-63.2 段落标签3.3 文本其他常见标签3.4 块标签和行内标签3.5 列表标签3.6 超链接标签 ...3.7 图片标签:一、HTML简介:HTML是用来写网页的一种语言。浏览器通过读取HTML文档,然后将文...

2019-05-03 14:09:52 331

原创 Java学习篇之容器篇(进阶&源码分析)

一、概括:在java中,由于数组长度固定,在实际开发中用到的并不多;为了解决数组长度固定的缺陷,在JDK1,2开始,java中提供了集合框架(容器)来解决这一问题。简单来说,java集合框架实际上就是一种数据结构,用来存放数量不固定的元素。java类集框架中提供了两个最为核心的接口,Collection 和 MapCollection :和单链表类似,每一次操作的都是单个元素Map ...

2019-05-01 20:42:57 404

原创 数据结构_搜索之哈希

1. 哈希的概念在进行顺序查找或者二叉搜索树查找时,元素存储的位置和元素各个关键码之间没有对应关系,所以在查找一个元素时必须通过关键码的比较才能判断该关键码所存放的位置,搜索的效率取决与在搜索过程中元素比较的次数。因此,这个时候就想有这么一种理想的查找算法,可以不经过任何比较,直接从存储元素的表中得到想要查找的数据。为此,我们构造一种结构,通过某种函数使元素的存储位置和存储的值...

2019-04-23 01:00:21 557

原创 编程题_删除公共字符—Java

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串示例1输入They are students. aeiou输出Thy r stdnts.解法一:暴力解...

2019-04-19 16:38:24 460

原创 Java学习篇之I/O篇

目录一,摘要:二、磁盘操作FileFile类的基本使用:三、字节流操作:InputStream 和 OutputStream1、字节输出流 OutputStream类结构:常用子类、方法:OutputStream的使用案例:向文件中写入内容2、字节输入流 :InputStream类结构:InputStream中常用方法:InputStream的使用案...

2019-04-17 18:01:00 359

原创 Java中枚举类的用法常见7种用法

对于枚举这个类,我之前一直以为它没什么用处,后来在做项目的过程中遇到枚举的时候才发现枚举这个东西居然这么强大...正如Java编程思想中有这么一句话:“有时正因为有它,你才能够‘优雅而干净’的解决问题”;1、枚举类的常规用法:public enum Color { RED, BLUE, BLACK; public static void main(String[]...

2019-04-13 15:07:51 3385

原创 统计回文

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “a...

2019-04-11 21:33:20 330

原创 求第k大的数(用快排思想 - java实现)

有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例:[1,3,5,2,2],5,3返回:2思路:利用快排的思想,取一个关键值,将其进行一趟快排之后,比它大的数都放到它左边,比他小的数都放到右边要求第k大的数,就是求数组下标为k-1的数值首先获取关键值的...

2019-04-11 21:33:13 2669 1

原创 地下迷宫 java实现

小青蛙有一天不小心落入了一个地下迷宫,小青蛙希望用自己仅剩的体力值P跳出这个地下迷宫。为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位 置;1代表小青蛙可以达到的位置。小青蛙初始在(0,0)位置,地下迷宫的出口在(0,m-1)(保证这两个位置都是1,并 且保证一定有起点到终点可达的路径),小青蛙在迷宫中水平移动一个单位距离...

2019-04-11 21:33:04 570

原创 编程题_Magic Coupon_java实现

题目描述The magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times the value of that pro...

2019-04-10 21:25:09 233

原创 编程题:在霍格沃茨找零钱_java实现

如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。输入描述:输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里G...

2019-04-10 20:22:36 476

原创 [编程题]神奇的口袋 - Java

有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入描述:输入的第一行是正整数n (1 <= n &...

2019-04-10 20:08:53 688 1

原创 编程题 _ 不要二(Java实现)

二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。 对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根 小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述 : 每组数组包含网格长宽...

2019-04-10 20:08:31 377

原创 [编程题]求最小公倍数——Java

正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。这里给出两种方法:第一种:简单粗暴的方法,按整数挨个遍历,直到遇到他们的最小公倍数为止: public static int gongBeiShu_1(int a, int b) { int max = a>b?a:b; for...

2019-04-10 20:08:03 1182

原创 小易买苹果_Java

小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描述: 输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果输出描述: 输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1输入例子: 20输...

2019-04-10 20:07:19 380

原创 [编程题]个位数统计 (15) _ Java实现

给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入描述: 每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出描述: 对N中每一种不同的个位数字,...

2019-04-10 20:06:56 600

原创 leetcode34. 在排序数组中查找元素的第一个和最后一个位置(Java)

给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,1...

2019-04-10 20:05:01 452

原创 leetcode两数之和 II - 输入有序数组

给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], ta...

2019-04-06 23:22:03 222

原创 编程题:生成格雷码-解题思路-java实现

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请返回n位的格雷码,顺序为从0开始。测试样例:1返回:["0","1"]解题思路:任意两个相邻的代码只有一位二进制数不同,即:当 n == 1 的时候,格雷码为:["0", "1"]当 n == 2...

2019-04-03 21:28:02 507

原创 木棒拼图-java+解题思路+代码实现

有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。初始集合是空的,有两种操作,要么给集合添加一个长度为 L的木棒,要么删去集合中已经有的某个木棒。每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多形。输入描述:每组测试用例仅包含一组数据,每组数据第一行...

2019-04-03 21:26:40 604

原创 LeetCode 8. 字符串转换整数 (atoi)(java实现)

请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...

2019-04-03 21:26:05 489 1

原创 [编程题] 用两个栈实现队列_java实现

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:实现队列,也就是当出队列的时候,让先进去的数先出来。代码实现:import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); ...

2019-04-03 21:25:27 254

原创 Java中常见问题总结

下面是我最近遇到的一些还不清楚的问题,有的是做题过程中的错误,有的是一些java基础方面的问题,我把这些做了一个总结,避免以后在犯,也可以给和我一样Java入门的人参考,如果有总结的不对的地方,欢迎大家可以给我提出来~~~目录一、Java一些基础方面的问题1、面向对象和面向过程的区别:2、Java语言的特点:3、关于JVM,JDK,JRE4、Java和C++的区别:...

2019-03-09 10:19:39 733

空空如也

空空如也

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

TA关注的人

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