
java
Fant_J
千千阙文。
展开
-
J - 位操作练习 (Java)
给出两个不大于65535的非负整数,判断其中一个的16位二进制表示形式,是否能由另一个的16位二进制表示形式经过循环左移若干位而得到。 循环左移和普通左移的区别在于:最左边的那一位经过循环左移一位后就会被移到最右边去。比如: 1011 0000 0000 0001 经过循环左移一位后,变成 0110 0000 0000 0011, 若是循环左移2位,则变成 1100 0000 000原创 2017-12-08 18:42:08 · 227 阅读 · 0 评论 -
Java数据结构与算法(八)-二叉树
一、为什么要使用树有序数组插入、删除数据慢。链表查找数据慢树可以解决这两个问题二、相关术语树的结点:包含一个数据元素及若干指向子树的分支;孩子结点:结点的子树的根称为该结点的孩子;双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点;祖先结点: 从根到该结点的所经分支上的所有结点子孙结点:以某结点为根原创 2018-01-04 20:30:53 · 214 阅读 · 0 评论 -
Java数据结构与算法(九)-哈希表
1. 什么是哈希表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 也是基于数组来实现。 Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树原创 2018-01-04 20:31:19 · 432 阅读 · 0 评论 -
2018最新(最全)手机号正则
/** * Created by Fant.J. */public class CheckFormat { public static boolean isEmail(String email){ String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\....原创 2018-08-14 13:50:41 · 9234 阅读 · 0 评论 -
Jenkins 教程(一)实现自动化打包及邮件通知
个人不喜欢装腔作势一堆专业术语放上去,让大多数人看不懂来提升逼格(所谓的专家),所以我简单的介绍jenkins是干啥的。本文使用jenkins,就是让它把git仓库里的东西取出来,然后在jenkins容器中编译打包,然后执行脚本,可以是运行jar等,根据自身情况量身定制脚本。下载官方下载链接:https://jenkins.io/download/windows可以直接下载...原创 2018-08-15 21:08:08 · 878 阅读 · 0 评论 -
Jenkins 教程(二)实现本地资源ssh上传
在教程一中我们只实现了在jenkins容器中的打包和结果通知,这节教程将用一个ssh工具将我们package完的项目上传到我们的服务器中。1. 安装插件Publish over SSH 完了点击直接安装2. 插件的系统配置配置完成后测试一下:3. 插件的工程配置最后一个框是在服务器运行什么脚本。4. 立即构建...原创 2018-08-15 21:08:32 · 2701 阅读 · 1 评论 -
SpringBoot 整合JPA | PageHelper 的分页最简实现
JPA又自己的Pageable来帮助我们实现分页,Mybatis有PageHelper帮我们实现分页,下面直接贴代码。1. 用JPA实现分页1.1 pom添加依赖 <dependency> <groupId>org.springframework.boot</groupId> ...原创 2018-08-15 21:08:50 · 2847 阅读 · 0 评论 -
设计模式快速学习(一)工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。我们熟悉的Spring 的 bean 工厂等。直接上demo.先代码,后介绍。1. 编写接口ShapeShape .java/** * 一个接口:关于形状 * Created by Fant.J. */public...原创 2018-08-15 21:12:48 · 170 阅读 · 0 评论 -
设计模式快速学习(二)抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。直接上demo.先代码,后介绍。如果在之前你没有看过工厂模式,请坐下面的时光机传送,不光是思想基础,主要是演变的过程要知道。 设计模式快速学习(一)工厂模式1. 编写接口Shape...原创 2018-08-15 21:13:07 · 294 阅读 · 0 评论 -
设计模式快速学习(三)单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。优点1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建...原创 2018-08-16 10:29:36 · 171 阅读 · 0 评论 -
设计模式快速学习(四)建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。优点建造者独立,易扩展。便于控制细节风险。缺点产品必须有共同点,范围有限制。如内部变化复杂,会有很多的建造类。角色介绍...原创 2018-08-16 10:30:06 · 216 阅读 · 0 评论 -
spring boot2 整合(二)JPA(特别完整!)
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。 JPA是需要Provider来实现其功能的,Hibernate就是JPA Provide...原创 2018-08-16 11:31:16 · 6124 阅读 · 0 评论 -
spring boot2 整合(一续)Druid数据库连接池和FastJson
本项目教程环境建立在spring boot2 整合(一)Mybatis (特别完整!) 的基础上。1. Druid配置1.1 修改pom.xml <!-- alibaba的druid数据库连接池 --> <dependency> <groupId>com.alibaba</gr...原创 2018-08-16 11:31:34 · 1476 阅读 · 0 评论 -
spring boot2 整合(四)定时任务Scheduled || Quartz并持久化
在进入正文前,我想把所有java可以实现的定时任务介绍一下,其实这个也是底层实现思路。本教程大概目录: 1. 线程等待实现定时任务 2. 用Timer实现定时任务 3. 用ScheduledExecutorService实现定时任务 4. Quartz 定时任务框架单机应用 5. spingboot2 整合 Scheduled 6. spingboot2 整合 Quartz...原创 2018-08-16 11:32:10 · 3865 阅读 · 0 评论 -
SpringBoot 整合(五)Swagger2
日常我们开发完后端接口,如果是返回restful,写API文档是免不了的,Swagger可以帮我们解决大多数问题(自动生成API文档)。他会帮我们生成一个html页面,大概就是这个样子。 好了,开始正文,如果你觉得有需要的话,往下看。1. 添加依赖<dependency> <groupId>io.springfox</grou...原创 2018-08-16 11:32:30 · 474 阅读 · 0 评论 -
Java数据结构与算法(七)-快速排序
一、快速排序思想 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二、如何进行划分&关键字的设定 首先任意选取一个数据(通常选用数组的第一个数)作为关原创 2018-01-04 20:30:21 · 185 阅读 · 0 评论 -
Java数据结构与算法(六)-希尔排序
一、希尔排序的产生 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。二、希原创 2018-01-04 20:29:53 · 220 阅读 · 0 评论 -
Java数据结构与算法(五)-双向链表
什么是双向链表 每个结点除了保存了xui下一个结点的引用,同时还保存这对前一个节点的引用。从头部进行哈如 要对链表进行判断,如果为空则这是尾结点为信添加的结点。如果不为空,还需要设置投结点的前一个结点为心田的结点。从尾部进行插入 如果链表为空,则直接设置头结点为新添加的结点,否则设置尾结点的后一个结点为新添加的结点。同时设置新添加的结点的前一个结点为尾结点。从头部进行删除 判断头结点原创 2018-01-04 20:29:24 · 241 阅读 · 0 评论 -
Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, w原创 2017-12-03 21:26:21 · 189 阅读 · 0 评论 -
A - 不定方程求解
problem: 给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。input: 一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。output: 一个整数,即不定方程的非负整数解组数。input demo: 2 3 18output demo:4package com.fantJ.ACM;import jav原创 2017-12-03 22:10:28 · 3564 阅读 · 0 评论 -
B - 数制转换
problem: 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。 不同进制的表示符号为(0,1,…,9,a,b,…,f)或者(0,1,…,9,A,B,…,F)。Input: 输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。 a,b是十进制整数,2 =< a,b <= 16。Outp原创 2017-12-04 12:02:33 · 442 阅读 · 0 评论 -
java8-lambda
1. lambda解决的问题:java不能函数式编程java匿名内部类只能单线程运行匿名内部类缺陷: 语法复杂this容易混淆不能引用外部变量不能抽象化来控制流程2. Lambda实现匿名内部类在lambda中,可以使用方法内部变量 ,但是不能改变它的值(i++报错)package com.fantJ.JAVA_8;/** * Created by Fant.J. * 201原创 2017-12-12 22:04:36 · 225 阅读 · 0 评论 -
java8-stream
1. 什么是streamstream被定义为泛型接口stream接口代表数据流stream不是一个数据结构,不直接存储数据stream通过管道操作数据2. 什么是管道管道包括: 1、数据集:可以是集合、数组等list 、array 2、过滤器filter 3、终端操作,如Stream.forEach方法3. 什么是过滤器stream的过滤器可以匹配数据源,并返回一个stream原创 2017-12-12 22:05:02 · 432 阅读 · 1 评论 -
C - 不吉利日期
在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7) Input 输入有一行,即一月一日星期几(w)。(1 <= w <= 7) Output 输出有一到多行,每行一个月份,表示该月的13日是原创 2017-12-05 16:36:43 · 2734 阅读 · 0 评论 -
D - 数字反转
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2) 。 Input 输入共 1 行,一个整数 N。 Output 输出共 1 行,一个整数,表示反转后的新数。 Sample Input 样例 #1: 123 样例 #2: -38原创 2017-12-05 17:08:10 · 332 阅读 · 0 评论 -
E - 鸡兔同笼
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 Input 一行,一个正整数a (a < 32768)。 Output 一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。 如果没有满足要求的答案,则输出两个0,中间用一个空格分原创 2017-12-05 17:24:50 · 317 阅读 · 0 评论 -
F - 数字方格
如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3。已知0 <= a1, a2, a3 <= n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 + a3是5的倍数。你的任务是找到一组a1,a2,a3,使得a1 + a2 + a3最大。 Input 一行,包含一个整数n (0 <= n <= 100)。 Output 一个整数,即a原创 2017-12-05 17:46:11 · 1483 阅读 · 0 评论 -
G - IP地址转换--java
IP地址总是由4个0-255的数字以”.”隔开的形式来显示给用户,例如192.168.0.1。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。 Input 每行输入一个IP地址,如果输入为-1,结束输入 Output 每行输出一个IP地址原创 2017-12-06 19:48:24 · 667 阅读 · 0 评论 -
I - 信号转换 (Java)
有的时候对一种编码信号需要转换成另一种信号以便于发送或达到其他目的。考虑一种字母信号,只有ABCD四个大写字母组成。要求给定一串字母信号,转为数字信号,转化方式为:A转为数值1,B转为数值2,C表示符号,D表示换行符。给定一串字母信号,求其数字信号。例如字母信号:AABBCBACADAB转化后数字信号为:1122,D表示换行符。给定一串字母信号,求其数字信号。 例如字母信号: AAB原创 2017-12-07 19:42:29 · 387 阅读 · 0 评论 -
H - 1的个数 (Java)
给定一个十进制整数N,求其对应2进制数中1的个数 Input 第一个整数表示有N组测试数据,其后N行是对应的测试数据,每行为一个整数。 Output N行,每行输出对应一个输入。 Sample Input 4 2 100 1000 66 Sample Output 1 3 6 2import原创 2017-12-07 19:42:56 · 204 阅读 · 0 评论 -
Java数据结构与算法(二)-简单排序
1.冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。2.选择排序 选择排序(Selection sort)是一种原创 2018-01-04 20:27:44 · 176 阅读 · 0 评论 -
Java数据结构与算法(三)-栈和队列
1.栈先进后出,后进先出 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 package co原创 2018-01-04 20:28:20 · 238 阅读 · 0 评论 -
Java数据结构与算法(四)-链表
链表是一种物理存储单元 上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针 链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针 域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表原创 2018-01-04 20:28:52 · 153 阅读 · 0 评论 -
SpringBoot 整合(六)Security & Oauth2.0(完整篇)
1. 快速实现篇(实现最基本的登录):SpringSecurity 快速实现项目2. 企业级封装篇我的 Spring Security 文集 SpringBoot 整合 Security(一)实现用户认证并判断返回json还是viewSpringBoot 整合 Security(二)实现验证码登录SpringBoot 整合 oauth2(三)实现 token 认证S...原创 2018-08-16 11:32:54 · 7775 阅读 · 0 评论