自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (5)
  • 收藏
  • 关注

原创 敏感词过滤

  实现 敏感词过滤 我们用的是DFA思想,就是提前构建好一个Trie树(前缀树),让指定词在前缀树中搜索,搜索过程类似于KMP算法,找到了就是敏感词,否则就不是。那么Trie树是什么呢?  Trie树 是一个数据结构,一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字...

2019-10-13 17:09:32 898

原创 Java 分支合并框架(Fork/Join)

    Java的 分支合并框架 是以递归方式将可以并行的任务拆分成更小的任务,然后将每个子任务的结果合并起来生成整体结果。它是ExecutorService接口的一个实现,它把子任务分配给线程池(称为ForkJoinPool)中的工作线程。    该框架由 JDK1.7 提供,思想类似于 分治法,只不过是并行执行。要使用它首先需要创建 RecursiveTask<V> 的一个子类,...

2019-08-05 22:02:11 848

原创 Java 注解

    Java在JDK5之后引入了"注解"的概念,实际上就是为了起到简化代码、易于理解的作用,并且通过注解也可以在编译时期发现一些代码格式的错误,更方便的进行开发。注:这里只是简单记录下 Java 注解的相关概念,未详细讨论。且不涉及 Java 8 新加入的注解。后续会更新补充…注解的声明类似于 接口 的声明,但稍有不同// 声明注解使用 @interface 关键字public @in...

2019-03-16 16:26:57 226

原创 Quartz 任务调度

    Quartz是一个完全由java编写的开源作业调度框架。为在 Java 应用程序中进行作业调度提供了简单却强大的机制。多用在轮询、定时任务处理等。相对于JDK 自带的Timer 有着更强大的功能。    使用Quartz需要在quartz.jar官网下载相应的jar包(访问可能比较慢) 或者 pom文件导入&lt;groupId&gt;org.quartz-scheduler&lt;/...

2019-03-02 13:26:49 424

原创 代理模式(Proxy)

设计模式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。(结构型模式)代码示例:业务需求:银行提供 存钱 和 取钱 的功能1、提供一个银行类的接口,包含 存钱 和 取钱 的功能p...

2018-12-01 21:46:49 353

原创 Guava(十二)

【散列】&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;散列码也可称作哈希函数,即我们在存储数据时,数据和关键字是按照一定的规律存放,以便在查找时能按照这样的规律高效准确的找到对应记录,这里的规律就是由哈希函数确定的。&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;JDK对于散列码并没有提供很好有效的方法,因此

2018-11-24 17:11:41 370

原创 Guava(十一)

【数学运算】    Guava 对于数学运算进行了专门的封装,对运算溢出、性能以及可读性等方面做了精心的设计。来看看吧:Guava Math主要处理三种整数类型:int、long和BigInteger。这三种类型的运算工具类分别叫做IntMath、LongMath和BigIntegerMath。一、整数运算有溢出的检查运算:当运算结果溢出时,会抛出运算失败异常而不是忽略溢出。in...

2018-11-11 11:59:58 340

原创 Guava(十)

【缓存】    缓存在很多场景下都是相当有用的。例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存。Guava Cache与ConcurrentMap很相似,但也不完全一样。最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地,Guava Cache为了限制内存占用,通常都设定为自动回收元素。在某些场景下,尽管 Lo...

2018-11-03 12:18:11 435

原创 Guava(九)

【区间】    第二章 提到的RangeSet中有用到 Range区间工具,现在就这里详细了解下。Range就是指所谓的区间,仅支持传入所有实现 Comparable接口的类型,但支持多种区间的定义、计算等操作。一、构建区间由于 Range的构造器被声明为私有类型,因此初始化实例都是通过静态方法实现。静态方法区间类型open(C, C)(a, b)closed(...

2018-10-27 16:51:08 238

原创 Guava(八)

【原生类型】    Java原生类型就是指8中基本类型:byte、short、int、long、float、double、char和boolean。    原生类型不能当作对象或泛型的类型参数使用,就意味着许多通用方法都不能应用于它们。Guava提供了若干通用工具,包括原生类型数组与集合API的交互,原生类型和字节数组的相互转换,以及对某些原生类型的无符号形式的支持。原生类型Gua...

2018-10-21 22:37:02 203

原创 Guava集

    最近学了一段时间的Guava,感觉是个不错的工具,在原有的JDK基础上封装、修饰了许多集合、工具以及开发中经常会用到的数据结构等等,使用起来真的有很大的帮助,因此想在这里分享记录下学习的内容,方便后续回顾。    学习内容来源于并发编程网站,有一些内容直接粘贴自这里,还有些自己所写。由于初接触Guava,在某些方面有偏差的还请留言讨论,博客会不定期完善更新和添加新内容。目录一、基本...

2018-10-14 13:09:16 259

原创 Guava(七)

【并发编程】    并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写。出于这样的考虑,Guava 定义了 ListenableFuture 接口并继承了JDK concurrent包下的 Future 接口。Guava强烈建议在代码中多使用 ListenableFuture 来代替JDK的 Future, 因为:● 大多数 Futures 方法中需要它。● 转到 List...

2018-10-13 17:07:45 622

原创 Guava(六)

【字符串处理】一、Joiner 连接器    Joiner用于将字符串序列通过指定的分隔符连接起来,另外通过一些属性的设置可以让字符串的连接变的更简单。String join = Joiner.on(&quot;,&quot;).skipNulls().join(Lists.newArrayList(1, 2, null, 3)); // 1,2,3Joiner.on(&quot;;&quot;).useForNull(&quot;-1...

2018-09-23 15:56:23 269

原创 Guava(五)

【函数式编程】     Guava推出的函数式编程起到简化代码的作用。但过度使用会造成代码的冗长、混乱、可读性差等缺点。此外,还可以了解下Java8中的函数式编程,但仅限于JDK8及以上的版本。 一、Function 函数     Function&amp;amp;lt;F, T&amp;amp;gt; 函数声明了一个 T apply(F input) 的方法,通过对输入F的操作,输出类型T的结果。Function&amp;amp;l...

2018-09-15 10:17:16 249

原创 Guava(四)

【强大的集合工具】     之前的章节中不少次提到了Lists集合工具,通过 Lists.newArrayList(E… elements) 可以很方便的构建ArrayList集合去使用。除了List,Guava对所有的集合类型都有对应的封装,包括JDK没有的新集合类型,并且构造器支持多种类型的参数传递,光这一点就很强大了! 集合 来源 Guava工具类 Colle...

2018-09-08 16:06:55 664

原创 Guava(三)

【不可变集合】     不可变集合就是在初始化时定义好数据,在之后的使用过程中不能再修改的集合。Guava对所有的JDK集合类型和新集合类型都封装了对应的不可变集合。但需要注意的是,所有Guava不可变集合的实现都不接受null值。一、为什么使用不可变集合 Guava给出了使用原因: 不可变对象有很多优点,包括: ● 当对象被不可信的库调用时,不可变形式是安全的;  ● 不可变对...

2018-09-01 21:36:05 188

原创 Guava(二)

【新集合类型】     Guava在现有的JDK集合中有新增了Multiset、Multimap、BiMap、Table、ClassToInstanceMap、RangeSet、RangeMap等新集合。这些新集合能够跟JDK集合框架共存,并遵循JDK接口契约。所有新集合的构造器都进行了私有化处理,并通过静态函数生成实例。一、Multiset Multiset多用于统计元素个数,例如统计一...

2018-08-26 20:42:33 412

原创 Guava(一)

【基本工具】 一、Optional     针对Java开发中null的问题,guava设计了Optional类。虽然util包下也有自带的Optional类,但是Guava对其做了更好的处理。Optional 用来表示可能为null的T类型的引用,两个实现类Present(存在)和Absent(不存在)。 那么Optional究竟有什么用呢,我们来看一下主要的方法: 1. Optiona...

2018-08-12 18:22:19 2034

原创 Java生成图形验证码

    验证码是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试的操作。     图形验证码是最传统的一种的验证码形式,都是由后台进行生成绘制的,生成过程要考虑到机器识别的可能性,因此要添加干扰线来扰乱机器的识别。下面贴下生成图形验证码的Java代码(该代码运行后会生成JFrame窗口...

2018-08-04 11:49:29 2143 4

原创 Eclipse配置Maven+Git

最近开发配置了Maven和Git工具,在这里记录分享下。Maven配置maven的配置包可以在 maven-3.0.5 中下载。下载好后,直接解压到指定的位置,就可以进行配置啦。 1. 首先跟配置Java的环境变量相似,打开计算机的”环境变量”配置”MAVEN_HOME”,变量值为maven的解压路径。 2. 之后配置”PATH”,如果之前有值,记得加 “;” 隔开。变量值为mav...

2018-07-21 14:08:06 1748

原创 Eclipse配置tomcat服务器(带资源)

手动配置tomcat到eclipse。 tomcat的压缩包资源可以去这里下载。(win32和win64都有)1、 打开eclipse–>Window–>Preferences,按下图步骤选择:2、 博主给的资源是tomcat7.0版的,所以这里选择配置7.0版的tomcat,之后点击next。3、 将下载好的tomcat压缩包解压,点击Browse按钮,选择解压好的tomc

2017-12-28 20:30:42 50145 8

原创 Java网络编程

一、网络通信IP地址: 1. IP网络中每台主机都必须有一个惟一的IP地址; 2. IP地址是一个逻辑地址; 3. 因特网上的IP地址具有全球唯一性; 4. 32位,4个字节,常用点分十进制的格式表示,例如:192.168.0.16。协议: 1. 为进行网络中的数据交换(通信)而建立的规则、标准或约定;(=语义+语法+规则) ; 2. 不同层具有各自不同的协议。端口号: 端口使用一个1

2017-12-23 13:38:39 255

原创 Java多线程(图解)

这里总结下java多线程的相关概念一、线程的创建和启动1.扩展java.lang.Thread类 用户的线程类只需要继承Thread类, 覆盖Thread类的run()方法,然后通过该类的实例对象调用start()方法启动线程即可。// 类A继承了Thread类 A a = new A(); a.start() // 启动线程注意:不要覆盖Thread类的start()方法、一个线

2017-12-20 22:49:52 1827

原创 冒泡排序的最优算法

冒泡排序是一种交换类排序的算法,比较常用,这里讨论下算法的优化。 // 待排序数组,升序排序 int[] arr = {2,6,4,5,3,7,8,11,14}; 算法一这是最简单也是最容易的写法,两层for循环,前后比较,大的交换。若数组长度为n,总共需要比较n*(n-1)/2次。public static void bubbleSort1(int[] arr) { int c

2017-12-09 15:23:57 4836

原创 群硕笔试、面试总结

先笔试,过了后在面试的,一面、二面都过了,成功拿offer。 第一天笔试,第二天上午面试到中午,晚上就收到通知了。不知道是不是在培训机构面的原因,总之感觉很快。个人感觉,拿offer其实就是靠实力,说简单说难的都是相对的,没什么统一标准,所以说与其到处打听还不如静下心,找一个准确方向好好学比什么都有用。 不多说了,先把笔试、面试内容发下,根据自己能力参考吧:笔试:总共8道题,3道简答,5道算法编

2017-12-02 12:51:23 2061

原创 十进制数转换n进制(Java)

十进制数转换 将十进制数转换为n(2<=n<=16)进制数,原理跟数学上的转换方法相同,即对一个数不断的进行除n取余运算,直至商为0,将余数倒序排出即为转换结果。以下是递归代码:// 2-16进制表示的位数public String[] arr = {"0", "1", "2", "3", "4", "5", "6", "7",

2017-11-23 21:39:07 5172

原创 Linux下配置jdk

Liunx下进行Java开发首要的的就是个jdk环境的配置,下面就来具体介绍下配置过程。 首先配置Java环境必备的就是jdk,这里我们用的是linux64位的jdk1.7版本,点击这里下载jdk1.7-linux-x64。下载完成后在Linux系统下进行配置。详细步骤: 1、打开终端,进入 /opt 目录下,因为opt目录一般用于存放第三方应用。$> cd /opt2、将下好的jdk1.7

2017-11-20 22:06:48 209

原创 初识Linux

说明:初学Linux,在这里总结好,顺便分享下,以便之后笔记太多又找不到了。个人感觉:还是很容易入手的,关键就是命令太多,经常用的话还好,放一段时间就生了,但平时常用Windows,感觉很心累。一、Linux操作系统的构成总结起来三部分:Kernel、Shell、文件系统1. Kernel:意思就是内核,是操作系统的核心组成部分。管理硬件、设备、内存、进程、控制系统程序和硬件系统、管理

2017-11-18 14:36:53 306

原创 CCF JSON查询(Java)

试题编号: 201709-3试题名称: JSON查询时间限制: 1.0s内存限制: 256.0MB问题描述:   JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,可以用来描述半结构化的数据。JSON 格式中的基本单元是值 (value),出于简化的目的本题只涉及 2 种类型的值:   * 字符串 (string):字符串是由双引号

2017-10-13 14:14:08 1365 2

原创 CCF Markdown(Java)

试题编号: 201703-3试题名称: Markdown时间限制: 1.0s内存限制: 256.0MB问题描述:   Markdown 是一种很流行的轻量级标记语言(lightweight markup language),广泛用于撰写带格式的文档。例如以下这段文本就是用 Markdown 的语法写成的:  这些用 Markdown 写成的文本,尽管本身是纯文本格式,然而读者可以很

2017-10-04 16:52:23 910

原创 CCF 分蛋糕(Java)

试题编号: 201703-1试题名称: 分蛋糕时间限制: 1.0s内存限制: 256.0MB问题描述:   小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继

2017-10-03 22:36:36 321

原创 Java实现“前世今生”测试

模拟网上的“前世今生”应用程序,通过输入今生的姓名来计算你前世的姓名。 PS:输入不合法可纠错。import java.util.*;public class PreviousAndPresent{ private String name; // 今生姓名 private String FirstName; // 姓 private String Last

2017-10-03 22:31:47 715

原创 Linux终端编译并执行Java文件

条件: 配置好jdk,搭建好java环境。shell 中操作:1、先创建java项目目录,名称project。 mkdir project2、在项目中创建src和bin目录,src下用于存放 “.java” 文件,bin下存放 “ .class ” 文件。 cd project mkdir src bin3、在src下创建包com.company。 mkdir -p

2017-09-10 16:51:28 43158

原创 CCF 数字排序(Java)

试题编号: 201503-2试题名称: 数字排序时间限制: 1.0s内存限制: 256.0MB问题描述:   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式   输出多行,每行包含两个整数,分别表示一个给定的

2017-09-01 13:45:46 411

原创 CCF 日期计算(Java)

试题编号: 201509-2试题名称: 日期计算时间限制: 1.0s内存限制: 256.0MB问题描述:   给定一个年份y和一个整数d,问这一年的第d天是几月几日?   注意闰年的2月有29天。满足下面条件之一的是闰年:   1) 年份是4的整数倍,而且不是100的整数倍;   2) 年份是400的整数倍。输入格式   输入的第一行包含一个整数y,表示年份,年份在1900

2017-08-31 13:02:18 352

原创 CCF 消除类游戏(Java)

试题编号: 201512-2试题名称: 消除类游戏时间限制: 1.0s内存限制: 256.0MB问题描述:   消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。   现在给你一个n行m列

2017-08-30 10:39:05 424

原创 CCF 俄罗斯方块(Java)

试题编号: 201604-2试题名称: 俄罗斯方块时间限制: 1.0s内存限制: 256.0MB问题描述:   俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。   游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板

2017-08-29 12:08:31 839

原创 CCF 火车购票(Java)

试题编号: 201609-2试题名称: 火车购票时间限制: 1.0s内存限制: 256.0MB问题描述:   请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。   假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。   购票时,一个人可能购一张或多张

2017-08-28 12:22:49 1786

原创 CCF 工资计算(Java)

试题编号: 201612-2试题名称: 工资计算时间限制: 1.0s内存限制: 256.0MB问题描述:   小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算:   1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算

2017-08-27 09:10:00 1997

原创 CCF 学生排队(Java)

201703-2试题名称: 学生排队时间限制: 1.0s内存限制: 256.0MB问题描述:   体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。   例如,下面给出了一组移动的例子,例子中学生的人数为8人。   0)初始队列中学生的学号依次

2017-08-26 18:09:44 1901

Java敏感词过滤源码

Java敏感词过滤源码。内附三个文件,敏感词(仅测试),两个类文件(用于功能实现)

2019-10-13

maven-3.0.5

Web开发,maven配置工具。下载后直接解压,配置环境变量即可,无需安装。

2018-07-21

tomcat配置文件(win32+win64)

本资源为tomcat7.0版本,内附windows系统32和64位的tomcat配置文件

2017-12-28

jdk1.7-linux-x64 工具下载

本资源为jdk1.7版本,适用于Linux64位系统下进行java开发。

2017-11-20

zxing-3.3.0.jar(core+javase)

zxing-3.3.0,java开发二维码的jar包,包含core和javase下的内容,可分别调用其中方法生成二维码并输出到文件

2017-08-22

空空如也

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

TA关注的人

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