Java
IT刘华强
贝壳找房研发工程师
展开
-
IntelliJ IDEA中Maven的安装、配置
最近在整理关于Maven的一些笔记,以前都是用的eclipse,现在因为习惯了JetBrains的编译器使用,所以现在记录一下关于在IntelliJ IDEA中Maven的安装、配置。什么是Maven请参考:Maven通俗讲解,这篇文章写的挺好的,我这里就不在赘述,只是简单写一下怎么配置。下载地址:http://maven.apache.org/download.cgiJAVA版本...原创 2018-11-04 16:49:41 · 516 阅读 · 0 评论 -
JAVA Future类详解
1. Future的应用场景在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callable接口,并用Future可以来接收多线程的执行结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callable以便在任务执行成功或失败后作出相应的操作。举个例...转载 2019-04-22 21:27:16 · 313 阅读 · 0 评论 -
Spring的自动装配 byName和byType的区别
Spring的自动装配好处:大幅度减少Spring配置坏处:依赖不能明确管理,可能会有多个bean同时符合注入规则,没有清晰的依赖关系。在装配的时候会有两种方式,byName和byType两种。byName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。byType:如果容器中存在一个与指定属性类型相同的bean,那么将...原创 2019-04-20 13:43:24 · 12642 阅读 · 0 评论 -
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" 的解决方法
今天在测试一个模块时出现了如题的错误,通过查找资料发现了如下的说法:无法加载类 org.slf4j.impl.StaticLoggerBinder 当无法将类org.slf4j.impl.StaticLoggerBinder加载到内存中时,会报告此警告消息 。如果在类路径上找不到合适的SLF4J绑定,就会发生这种情况。在类路径中放置slf4j-nop.jar slf4j-simpl...原创 2019-06-02 14:51:17 · 5890 阅读 · 1 评论 -
Redis(Jedis)连接池报错“Could not get a resource since the pool is exhausted”的解决方法
今天在使用Jedis连接池的时候出了一个问题,如题:连接池配置如下:GenericObjectPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); config.setMaxIdle(100); config.setMinIdle(10); ...原创 2019-06-02 15:04:18 · 29310 阅读 · 0 评论 -
(linux)rabbitMQ的安装与启动,包括遇到的坑与需要注意的配置问题
一、RabbitMQ是什么消息系统允许软件、应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶.或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都可以通过消息系统实现。RabbitMQ是一个消息代理 - 一个消息系统的媒介。...原创 2019-06-08 18:18:44 · 9552 阅读 · 0 评论 -
快速介绍字符串比对KMP算法(Java代码版)
一、问题的由来我们会在面试或者日常“搬砖”过程中遇到这类问题:有一个文本串S(比如“ababbbaccdddmmd”),有一个模式串Q(比如“baccdd”),判断模式串Q是否是S的字串,如果是返回Q在S中的起始位置,如果不是返回-1。我们脑海里第一个思路就是循环遍历,如果当前字符匹配成功就继续匹配下一个,否则S中的标记向后移动一位,Q的标记回到最开始,就会有如下代码:public st...原创 2019-06-28 17:51:59 · 953 阅读 · 0 评论 -
【动态规划】01背包问题
问题描述:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。物品编号 1 2 3 4 5 体积(weight) 48 7 40 12 8 价值(value) 6 1 5 2 1 这个题是很典型的一个动态...原创 2019-06-28 18:19:59 · 942 阅读 · 0 评论 -
海量数据处理方式问题
1、现在有1亿个随机数,有重复的,随机数的范围在1到1亿之间,将1到1亿之间没有在随机数中的数求出来。 /** * 用位图进行存储,产生随机数存入bitSet中相应的位置,并置1。 * 如果bitSet中相应位置为1则此数出现过,如果为0则未出现过。 * */ public static void main(String[] args) { ...原创 2019-06-28 19:57:59 · 309 阅读 · 0 评论 -
【字节跳动二面】在数组中随机选2个数使得和为K,输出所有的组合
题目:给一个数组(无序),在数组中随机选2个数使得和为K,输出所有的组合。心理活动:面试时看到这个题第一想法就是给数组两个标志位,一头一尾,然后通过判定两个数的和,如果比target大,尾--,如果比target小,头++;这个想法是好的,但是如果中间出现了重复的值就会计算错误,所以要是想处理重复元素的问题一定要对次数下手,所以面试结束后重新对这个题做了一遍。分析:首先需要将数组排序,然后...原创 2019-07-11 21:13:05 · 1235 阅读 · 0 评论 -
Maven配置远程仓库
方法一:修改maven配置文件我使用的是IDEA编译器,使用maven自己的库下载文件非常的慢。阿里代理了很多公共的maven仓库,使用maven.aliyun.com中的仓库地址作为下载源,速度更快更稳定。打开你的maven的安装地址,找到conf文件夹下面的settings.xml文件并打开,在<mirrors></mirrors>标签中间插入镜像的配置参数。...原创 2019-04-13 19:19:11 · 21411 阅读 · 0 评论 -
(IDEA)maven项目中打war包并在服务器上部署
项目打war包当我们在本地调试好了程序后目录结构通常如下图所示,target存放的是编译结果。接着在编辑器的左下角选中图标后选择Maven Projects。在最右侧会出现Maven Projects,选中package进行打包。打包完成后返回看项目的目录结构出现了你的war包。将这个war包准备好,此时打war包步骤完成。服务器部署将前面的war包拷...原创 2019-04-12 19:23:31 · 5224 阅读 · 0 评论 -
内存溢出、内存泄露和FULL GC
内存溢出和内存泄露内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复的对象实体等。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间...原创 2019-03-30 17:06:37 · 2035 阅读 · 0 评论 -
Java中List及其实现类的解析
集合:集合,集合是java中提供的一种容器,可以用来存储多个数据。集合的长度是可变的,集合中存储的元素必须是引用类型数据。集合继承关系图: List: List是一个接口,继承自Collection,除了有Collection的方法以外,又有多的属于自己的方法,比如add()、remove()等等。public static void fun...原创 2018-11-23 18:19:32 · 461 阅读 · 0 评论 -
Java中队列的解析
定义队列是一种特殊的线性表,遵循的原则就是“先入先出”。在我们日常使用中,经常会用来并发操作数据。在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列通常有两种方式:一种是使用阻塞队列,另一种是使用线程同步锁。什么是阻塞队列?假设有一个面包房,里面有一个客人吃面包,一个师傅烤面包。篮子里面最多放2个面包,师傅考完了面包放到篮子里,而客人吃面包则从篮子里面往外拿,为了...原创 2018-11-22 16:28:29 · 7422 阅读 · 2 评论 -
Java中Set解析
关系在JAVA集合的这里会设计到比较多的东西,所以我们先看一下继承关系,连接一下在Set这里到底的先后顺序是什么,有一个宏观的了解:Set:用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。不重复性:Set中判断是否相等通过两个方法:通过计算hashCode值和equals方法来比较。如果想要让两个不同的Person对象视为相等的,就必须覆盖Object继下来的h...原创 2018-11-23 11:14:15 · 378 阅读 · 0 评论 -
Java中Map接口的解析
Map详解:先看图,便于宏观了解Map的地位。Map接口中键和值一一映射. 可以通过键来获取值。给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。...原创 2018-11-26 15:56:29 · 19186 阅读 · 1 评论 -
Java中栈的解析
栈的继承图:栈的定义:栈是Vector的一个子类,它实现了一个标准的后进先出的栈。栈的方法:方法演示:.public static void main(String[] args) { Stack<String> stack = new Stack<>(); stack.push("a"); stack.push("...原创 2018-11-27 13:37:39 · 1502 阅读 · 0 评论 -
二叉树
定义:二叉树是一个连通的无环图,从根节点开始,每一个顶点的度不大于3(每一个节点的子节点不大于3),如下图所示。树的结点(node):包含一个数据元素及若干指向子树的分支;孩子结点(child node):结点的子树的根称为该结点的孩子;双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点;祖先结点:...原创 2018-11-28 20:27:57 · 924 阅读 · 0 评论 -
ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量
当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指 即当 元素个数 超过容量长度*加载因子的系数时,进行扩容。另外,扩容也是有默认的倍数的,不同的容器扩容情况不同。List元素是有序的、可重复Arr...转载 2019-03-11 12:12:05 · 171 阅读 · 0 评论 -
BeanFactory not initialized or already closed - call 'refresh' before access ... 的解决方法
今天在用spring写登录页面的时候tomcat无法正常启动,查看日志,发现了错误:Exception in thread "main" java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the Appl...原创 2019-04-03 22:11:44 · 104605 阅读 · 3 评论 -
JVM垃圾回收算法解析
回收区域:我们都知道java内存回收是java语言中非常著名的机制,我们也知道其针对的是java内存的垃圾回收,但是具体是内存中的哪部分区域呢?所以,这里首先说一下java垃圾回收的区域问题。JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域是线程私有的区域,随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备...原创 2019-03-30 17:04:20 · 225 阅读 · 0 评论 -
(Java版本)快速排序-----数组和链表
数组快排快速排序很多人都懂,大体思路是首先选中一个标志位(通常选定数组的第一个元素),然后用首尾两个标识分别找出大于标志位的和小于标志位的两个数,然后交换,接着继续找下去,直到首尾两个标识相等,此时再将标志位于标识交换,就得到了标志位索面的元素小于标志位,右面的大于标志位,接着递归下去就行了。网上写代码的很多,但是感觉都很乱,思路不清晰,这里我将数组快排的两种形式(递归与非递归)写出来,方...原创 2019-07-27 14:58:28 · 297 阅读 · 0 评论