
Java编程开发
文章平均质量分 71
java专栏
血煞长虹
欢迎交流切磋,欢迎吐槽!
金币不够的小伙伴,想下载我的资源时,可以留言,无偿发放哦!
展开
-
Spring boot锦集(一):日期格式化的两种方式 | 在Bean对象的日期对象上添加注解 | 对Bean的日期格式统一处理
本文带你走进,Spring boot小技巧(一):日期格式化的两种方式,感受其妙用。方式一、单独在Bean对象的日期对象上添加注解方式二、创建配置类,对Bean的日期格式统一处理原创 2022-10-06 13:36:48 · 3540 阅读 · 0 评论 -
IDEA工具避坑指南(九):在文件夹下创建子文件夹,无法展示文件夹之间的层级关系 | 多级目录不能正常展示 | 分层展示目录
在Eclipse工具,转IDEA的时候,总是出现各种各样奇葩的问题,虽然简单,总是要耗费不少精力去处理,比如:你创建文件夹后,却不能正常展示文件夹的层级关系,而是static.images……原创 2022-10-04 11:49:14 · 5151 阅读 · 0 评论 -
java开发:Class.forName 和 ClassLoader的区别和联系 | 使用场景 | 多方位解析
1.两者都可以使用类的全量限定名,通过反射获得实体类。2.Class.forName完成类的加载后,会继续完成类的初始化,而ClassLoader.loadClass仅仅只会完成类的加载。3.它们的使用场景略有不同,前者主要用于加载驱动、后台代码的反射等场景,后者主要配合懒加载(主要用于配合加载配置等)。4.两者的缺点也十分明显,就是在加载类的时候,只能加载类的无参构造函数,不能直接使用类的有参构造函数。原创 2022-03-06 16:31:50 · 4726 阅读 · 1 评论 -
JAVA多线程:守护线程 setDaemon全方位剖析| 守护线程是线程吗 |thread.isAlive()反思(五)
本文目的,通过短小精悍的实例,让你在最短时间,全面揭晓thread.setDaemon(true)守护线程的使用,及其使用场景。一看就懂,一学就会!其作用主要是用来,来让其(这里暂称之为子线程)随着调用它的主线程(这里暂称之为main方法)的结束而结束,不管该线程任务是否圆满完成,只要调用它的主线程结束了,它(子线程)就跟随这结束。原创 2022-02-23 17:45:57 · 4614 阅读 · 4 评论 -
Java多线程:synchronized | Volatile 和Lock和ReadWriteLock多方位剖析(一)
本文较为系统,全面的介绍了在多线程中,synchronized理论和用法 | Lock和ReentrantLock Volatile 区别和联系,主要涉及常区分不清的理论,不涉及过深的源码剖析,是多线程爱好者不可多得的好文,点击进入一饱眼福吧!............原创 2022-02-19 23:44:49 · 2377 阅读 · 0 评论 -
JAVA多线程:狂抓 join()方法到底会不会释放锁,给你彻底介绍清楚(三)
结论是:join()只会释放Thread的锁,不会释放线程对象的锁(可能会造成死锁),原因是因为:join底层调用的是wait(),而wait是Object的方法,wait本身是会释放锁(彻底交出CPU的执行权),所以 Thread 的join() 方法会释放锁,单独需要看情况(synchronized作用对象是thread还是object)原创 2022-02-19 23:33:49 · 6044 阅读 · 23 评论 -
JAVA多线程:sleep(0)、sleep(1)、sleep(1000)的区别(四)
三者都使用了参数,只是睡眠的时间长短不一样。如果单单从睡眠时间结束后的结果来看,三者的作用是一样的,都是不释放锁,都是睡醒后重新同其他线程竞争CPU的执行权,问题就出在0、1、1000,这段时间发生了什么。0,意味着没有休息,离开进入下一轮的CPU执行权竞争中,可能竞争成功也可能失败。1,是一样的,仅仅是休息1毫秒后,离开进入下一轮的竞争,仅仅是在这1毫秒内进入了等待状态。1000,相对于1,此时的1000就不难理解了,它仅仅是休息的时间(放弃竞争CPU执行权)的时间更长。原创 2022-02-19 23:25:54 · 6225 阅读 · 0 评论 -
JAVA多线程:yield/join/wait/notify/notifyAll等方法的作用(二)
讨论这个问题前,需要先了解以下知识点!1、等待队列(blocked)中的线程不参与cpu竞争,就绪队列(runable)中的线程才会参与cpu竞争。2、CPU竞争策略有多种,Unix使用的是时间片算法,Windows属于抢占式。yield仅仅是告诉系统让出CPU执行权,什么时候让,由系统决定,不会释放锁。join让调用该方法的线程优先执行,关于锁,会释放对象锁(可能造成死锁),不释放线程锁。wait,它是Object的方法,会释放锁……原创 2022-02-19 23:20:07 · 2695 阅读 · 0 评论 -
Java开发:反射的意义价值和用法 | 通过反射获取私有属性和方法 |反射的作用 | 反射的优缺点 | 反射破坏了封装性为什么还要用
1.反射可以提高程序灵活性和扩展性。2.反射就像一面具有特异功能的镜子,通过类的全量限定名(包名+类名),复制出和原类功能上没有任何差异的镜像类,包括类的私有属性、私有方法一并会被这面镜子穿透,并获取其全部使用权!3.弊端是执行效率低于常规写法;它绕过了源代码的技术,会带来维护问题,比如他操作了不该操作的私有属性和方法。择其善者而从之,则其不善者而改之,Nice!原创 2021-12-20 00:21:02 · 3750 阅读 · 2 评论 -
zookeeper节点的scheme是digest时,怎么把明文密码转换为密文 | 如何获取加密后的digetst密码
在zookeeper中,我们添加一个节点时,通常要赋予节点ACL权限,一般我们会给最大权限Ids.CREATOR_ALL_ACL。然而,有时需要控制一下节点的访问权限,此时的scheme就应该是digest而不是word,此时就需要使用密文,这个时候就需要使用上面的AclUtils工具转换一下。原创 2021-12-09 23:31:27 · 3570 阅读 · 0 评论 -
Curator/Zookeeper如何判断一个节点是否存在
zookeeeper提供了一个很给力的方法,就是:zk.exists(String nodePath, boolean ifWatch),前面是node路径,后面是调用这个方法时,是否回调watch监测节点发生变化。ZK客户端Curator也提供了类似方法,也比较好用cto.client.checkExists().forPath(nodePath);其节点路径前缀会自动添加workspace。zk原生态的exists方法,需要手动添加workspace前缀。原创 2021-12-04 21:35:01 · 4080 阅读 · 0 评论 -
org.apache.zookeeper.KeeperException$InvalidACLException: KeeperErrorCode = InvalidACL 节点操作权限问题
遇到这个问题,就是操作某个节点时,ACL权限不足。或许是你没有登录具有该节点操作权限的用户;或许是你登录了,但是登录代码没有生效(可能是因为:登录代码和节点操作代码不在一个方法内),总之,该问题的解决,要围绕登录权限展开。如果找不到解决思路,先排查都有哪些用户具有该节点的操作权限吧,比如:#getAcl /succ/testDigest 登录具有权限的用户后,再对节点进行操作。原创 2021-12-01 19:42:44 · 4972 阅读 · 0 评论 -
手写一个JedisPool连接池 | jedis-2.7.2下载
用Jedis操作redis数据库,是一个不错的选择,构建一个自己的Jedis连接池尤为重要,它可以避免创建大量socket连接并且会实现高效的性能。原创 2021-11-20 10:51:32 · 1354 阅读 · 0 评论 -
linux异常(八):JedisConnectionException: java.net.SocketTimeoutException | Java代码不能和Redis数据库连接/互通 | 深度解析
本文仅针对Eclipse模式下,通过Jedis访问redis提示:JedisConnectionException: java.net.SocketTimeoutException: connect timed out超时的错误,分析和解决每个步骤遇到的问题,逢山修路遇水架桥,问题终会解决!原创 2021-11-20 00:06:41 · 3189 阅读 · 0 评论 -
SpringMVC+MyBatis项目,通过Controller访问不到WEB-INF下面的jsp页面+expected single matching bean but found 2
一、错误提示1.message/WEB-INF/jspaddUser.jspdescriptionThe requested resource is not available.2.SqlSessionFactory] is defined: expected single matching bean but found 23.found for dependency: expected at least 1 bean which qualifies as autowire candid...原创 2021-04-19 01:01:33 · 1403 阅读 · 0 评论 -
no declaration can be found for element‘contest:property-placeholder解决办法
问题描述:报错文件:applicationContext-dao.xml报错提示:The matching wildcard is strict,but no declaration can be found for element'contest:property-placeholder'.意思是,找不到元素标签。解决思路:1、顺藤摸瓜倒推,既然提示找不到这个元素,应该是xml头文件没有引入这个标签。引入一下就可以了。xmlns:context="http://www.spr原创 2021-04-11 12:14:20 · 1626 阅读 · 0 评论 -
java设计模式之—追美眉的技术:状态模式(State):同一个方法,根据不同的状态来执行不同的结果
对读者的要求:1、具备面向对象思想。2、对抽象类、接口有一定了解。核心思想:同一个方法,根据不同的状态,表现出不同的结果。案例一:MM的cry().可以愉快的哭、高兴的哭、傻傻的哭等。设计思路:1、定义一个MmState抽象类,分别:cry()、smile()、say()三个方法;2、定义MM的一系列状态的具体实现类,比如:MMHappyState、MMUnHappyState;3、MM类定义mmCry()方法,入参MmState(传入一个MmState具体实现类)。//1.定义MM原创 2021-04-02 20:03:56 · 914 阅读 · 0 评论 -
java设计模式之—追美眉的技术:命令模式(Command)
概述:模式比较简单,一个发起命令,一个执行命令。核心思想:Command接口类定义一个execute()命令执行和 unDo()命令回撤。案例一:MM向boy发起一组命令,boy执行命令设计思路:1、定义一个Command抽象类,分别定义两个方法:execute()、unDo();2、给Boy类分别定义执行命令的方法、回滚命令的方法:executeCommands()、unDoCommands();3、定义一些具体命令类,并继承Command类诸如:ShoppingCommand、.原创 2021-04-02 19:38:12 · 190 阅读 · 0 评论 -
java设计模式之—追美眉的技术:中介者模式(Mediator)和 外观模式(Facade)核心思想
概述:1、中介者模式(Mediator),好比一个大管家,处理家族内部事务。核心:处理内部事务(统一调和)。2、外观模式(Facade),好比国家外交部一把手。核心:处理一切外部事务(统一入口)。举例说明:一、中介者模式1、boy 和 MM,在谈恋爱:七大姑,八大姨,你一嘴,她一嘴的分别给Boy和MM出主意,甚至他们之间还相互私下沟通。相互之间错综复杂,显得很乱。怎么能调理清晰一点呢?2、关于boy和MM谈恋爱这事儿,所有人都不要相互沟通了,都找居委会大妈说。最后居委会大妈统一口原创 2021-04-02 17:44:46 · 210 阅读 · 0 评论 -
java设计模式之—追美眉的技术:桥接模式Bridge (适用范围:一个大类涵盖各种具体实现类,每个实现类又区分为不同的维度(子类之间可能出现排列组合,两个维度相互交叉))
核心思想:就是在父类中聚合子类(高内聚),避免出现两个维度的类之间有交叉现象。使 WildGift、WarmGift、ColdGift和具体的Flower、Rouge、Ring彼此独立,低耦合。而不是出现ColdFlower、WarmFlower、WoldFlower、ColdRing、WarmRing、WoldRing、这种情况出现。原创 2021-04-01 19:00:32 · 221 阅读 · 1 评论 -
java设计模式之—工厂模式Spring Factory (三套方案:步步深入,模拟Spring工厂),涵盖JDOM对XML解析
一、目的:为你揭开Factory的神秘面纱,其实很简单。本案例适用人群:1、对面向对象有深入了解。2、接口、抽象类有所了解。3、对反射了解。可以帮你:1、爱上工厂(只用关注自己的业务,生产新类、给类创建新方法,通过配置文件xml通知一个Spring就可以了)。2、学会读取配置文件。3 、学会解析XML文件。二、工厂模式的前世今生举例说明:有一个Person1、他可以有很多交通工具(Vehicle),都有一个Run的方法:Car、Tank、Train、Plane、Broom等等。2、他原创 2021-03-31 05:23:36 · 3053 阅读 · 0 评论 -
XML解析,简单易学(Jdom+XPath)让你轻松上手: 精简Demo(含jar包)
一、前言:对于初学者而言,XML文档操作,让人望而止步。本案例让你轻松上手。二、准备工作:下载 Jdom jar包。方法一:http://www.jdom.org/downloads/index.html进入网页后:点击左侧:DownloadsBinaries ,然后选择右侧的版本下载。方法二:http://www.jdom.org/dist/binary/archive/ 直接下载对应版本方法三:https://dom4j.github.io/进入页面后,页面中上方,寻找DownL...原创 2021-03-31 03:28:25 · 634 阅读 · 0 评论 -
java设计模式:动态代理Dynamic_Proxy详解 (使用场景:事务、日志、监控等)
编者的话:如果你想灵活,对方法执行前后(添加代码),进行监控(比如:方法运行[多少毫秒、记录日志、事务提交或回滚、权限监控、数据拦截、数据过滤]等)。时,动态代理模式,最适合你。特别提示:1、本案例主要是阐述动态代理的原理,及其模拟过程,可以提示对动态代理的理解和掌握。2、JDK6以上版本,系统自带的有动态代理类Proxy,我们可以直接用,我们只需要专注于我们的InvocationHandler就可以了。原创 2021-03-27 03:50:05 · 2972 阅读 · 0 评论 -
java设计模式之—策略模式strategy (案例:模拟java.lang.Comparable 和 java.util.Comparator) 灵活扩展,深入解析,让你专心写算法。
策略模式:共性的东西抽离出来,解放你的左手,专心写算法。实际场景,需要哪个算法,信手拈来。正如下面这段代码:sortImpl.sortArr(cats, new CatWeightComparator());//根据体重排序。参考:马士兵老师的strategy视频课,在视频课的基础上略有改进和深入。原创 2021-03-21 22:17:40 · 218 阅读 · 0 评论 -
java设计模式之—迭代器 Iterator (案例:分别模仿ArrayList 、LinkList 实现Collection接口 和 Iterator迭代方法)
参考:该案例是马士兵老师的部分案例。马老师只讲述了ArrayList的Iterator迭代方法,未讲述LinkList的迭代方法。LinkList实现Iterator比较烧脑筋。原创 2021-03-20 05:42:41 · 308 阅读 · 0 评论 -
java设计模式之—OO面向对象思维 Object Oriented(农场一头小母牛,每年生头小母牛,母牛5岁产母牛,20年上多少牛?)
参考:该案例是马士兵老师课后作业。 课程本身是:老张开车去东北,撞了……一首歌,提供的案例过于简单。以课后作业为例,该案例短小精悍!让我们一起来较深层次的学习面向对象。原创 2021-03-18 18:48:06 · 301 阅读 · 2 评论 -
java设计模式之—责任链模式 ChainOfResponsibility(提供两套方案)
参考:根据马士兵老师课程整理。 目的:相互交流学习,日后便于自己查看。 要求:Demo1、对Request 请求的字符串数据,进行过滤,并替换掉。Demo2、在demo1基础上,逆向调用责任链,处理Response。控制台输出答案原创 2021-03-18 01:23:14 · 254 阅读 · 0 评论 -
java设计模式之——观察者模式observer (附带读取配置文件)
参考:根据马士兵老师课程整理。目的:相互交流学习,日后便于自己查看。要求:小孩睡醒后,要吃东西,监护者对小孩做出一些列反映。据此模拟为程序。延伸:小偷偷东西,有望风的小弟看风,也比较适合用这个设计模式原创 2021-03-16 01:50:24 · 346 阅读 · 0 评论 -
点击a超链接 下载而不是直接打开
核心代码:在a标签里添加 download=""原创 2017-10-28 19:56:16 · 23047 阅读 · 10 评论 -
ORA-27101
序: 以下观点仅适用于“操作系统不是Window32位、Oracle9i”(一)概述:该问题主要出现在Oracle9i上面。(二)原因:(1)数据库被正常关闭导致,比如电脑非正常关机。(2)Oracle9i在Windows32位单线程操作系统对有内存最大使用量为2G的限制(超过1.5G,有时也会报错),如果设置超过了最大值就会报“ORA-27101”的错误。注:SGA+PGA其原创 2013-12-19 12:00:13 · 2365 阅读 · 0 评论 -
ORM是什么
1 O/R是什么?(对象关系映射 Object Relationship Mapping)就是一大推类库我们调用他们的时候,用面向对象来调它帮我们翻译成面向关系的方式2 为什么使用O/R? 它使我们的编程更加的面向对象,更简单, 我们不用考虑sql该怎么写的问题了(比如Hibernate中我们可以直接调用.save()方法直接存储1条数据)。 3 和JDB原创 2012-12-10 20:30:00 · 555 阅读 · 0 评论 -
MyEclipse10系列破解步骤(非原创)
上面有myeclipse10和myeclipse10.1的破解注册软件下载链接,我下了下来后,正如博主说的详细操作步骤在10的破解里,10.1的没加说明。我破解的步骤是把两个压缩包解压后,把10.1中的文件全部复制粘帖到10.0的文件夹中,然后点击run.bat,接着按照10.0中的破解步骤一步步做(下附):第一步:输入任意用户名第二步:点击System转载 2014-08-26 16:38:20 · 1275 阅读 · 0 评论 -
Oracle报错:ORA-01034 或者 ORA-27101 终极解决办法(图文)
当我们的Oracle异常关闭或者其他情况,导致当我们用Plsql登录数据库时报以下错误:ORA-01034: ORACLE not availableORA-27101: shared memory realm does not exist解决办法:(在此一Oracle 9i为例)开始菜单-->Oracle - OraHome90-->Enterprise Manager Co原创 2013-06-24 15:12:25 · 13639 阅读 · 0 评论 -
MyEclipse操作:如何把项目的开发环境(JDK、JRE等)同服务器 的JDK 版本调整一致
我们使用MyEclipse开发Java项目开发中,偶尔会遇到因项目开发环境不协调,导致这样那样的问题,在这里以把所有环境调整为JDK1.6 为例。原创 2012-11-30 18:23:02 · 2974 阅读 · 0 评论 -
在MyEclipse中如何构建自己的library
这里以 构建自己的hibernate的library 为例 1 打开MyEclipse2 Windows-->Perferences-->Java-->Build Path-->User Libraries 点击右侧的 New 按钮,这里 我新建一个叫“hibernate3”的自定义library3 添加自己的jar包,分为以下几个步骤 a:准备工作 在网上下原创 2012-12-10 20:29:31 · 1560 阅读 · 0 评论 -
在Java 项目开发中 Log4j和slf4j结合
注:hibernate3 是我自己自定义的libraries步骤:一 鼠标对着项目右键-->Build Path-->Configure Build Path-->Java Build Path -->点击选项卡libraries-->选择自定义的hibernate3-->点击右侧的Edit按钮 -->点击 User Libraries 按钮-->移除slf4j-nop-原创 2012-12-10 20:28:03 · 563 阅读 · 0 评论