- 博客(43)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 简单记录一下hashmap的红黑树以及分享一个hashmap原理的代码
好久好久好久没有发博了,那是因为新公司确实很忙,一个比较大的互联网公司。。言归正传。这里主要简单记录一下红黑树,1.7和1.7以前HashMap都是“数组+链表”实现的,1.8之后就是“数组+(链表或红黑树)”来实现了,HashMap底层依旧是个数组,然后数组中的元素是链表或者红黑树来实现。那么HashMap是怎么使用红黑树的呢?JDK1.7的时候是使用一个Entry数组来存储...
2019-03-27 15:40:56
287
原创 如何书写一手优雅的代码之3:不得不该面对的单例模式(设计模式)
单例模式从刚接触Java起就有听说,到后来在工作中慢慢发现,好像并不像当初所了解的那样,现在就让我们来揭开单例模式这神秘的面纱吧! 我也一直在想怎么样才能让大家更好地掌握设计模式,可能最最通俗易懂的说明和适量的代码是我能表达的最多的。 单例模式说白了就是一个实例,换句话说就是无论你实例化多少个,其实都一样,更重要的是,当存在两个或者两个以上的实例时,程序会产生...
2018-02-28 22:00:17
340
2
原创 如何书写一手优雅的代码之2:不得不该掌握的编程六大原则(设计模式)
在学习设计模式之前,为了不让设计模式显得很僵硬,我们必须先了解一样东西,那就是程序设计模式的六大原则。 这些原则并非要你完完全全去遵守,只能说是在我们编程设计上能给我们一个很好参照点,只能说在可能的情况下,尽量遵守。 单一职责原则(六大原则中的小柴犬,听话懂事,人见人爱):描述是每个类只负责单一的功能,切不可太多,并且一个类应当尽量的把一个功能做到极致。 ...
2018-02-25 23:00:53
386
原创 什么是volatile关键字?
自从上一篇静态工厂方法代替构造函数方法以后,时隔两周没有再写也是因为lz身边一堆的事情,时间突然发现时间周期会非常的长,但是我不想放弃,就像马斯克在采访的时候说的那样,我不想放弃,除非我被困死。这次也是在一次机缘巧合中把volatile关键字深入了解了一下,在此仅做一次分享。 想必学java这么多年,static、final、transient、volatile这一类关键字也是必须
2018-01-26 16:26:09
382
原创 如何书写一手优雅的代码之1:考虑用静态工厂方法代替构造器(EffectiveJava)
lz敲代码这些年其实还没有思考过这个问题,其实说白了,之前的做法无非就是创建一个公有的构造器,当需要时便new,代码如下:public class Role01 { private String name; private Integer age; private String address; private String car; //空的无参构
2018-01-11 16:41:13
289
原创 如何书写一手优雅的代码之小刚有话说
前言:为表诚意先简单介绍一下lz本人,lz在2016年毕业于兰州某所二流大学(安宁区),计算机相关专业的我其实早在大学就已经接触到了C、C++、Java以及C#等课程,当然,那时年轻的我和好多人一样并没有太当回事,只是蜻蜓点水式象征的学了一下(剩余时间当然是干自己喜欢的事情喽),等到毕业季当看到同学、舍友们都找到了不错的工作时才发现自己已经落后了一大截,所以从此立下誓言,一定要在自己稍微了解的Ja
2018-01-10 14:30:20
979
原创 关于Result Maps collection already contains value for com......的解决方案
研究了一下午,看了很多解决方案都不太符合我的情况,最后看了日志才明白原因,因为用了mybatis的逆向工程,当时新创建的用户由于对权限管理不是特别懂,就附了dba的权限,最后发现在同一个数据库中,可以获取到不同表空间的相同表名的表,所以需要严格控制Oracle的用户权限,这里推荐新用户为resource role。(修改用户权限网址http://localhost:1158/em),这样不会造
2017-12-05 11:04:00
1237
1
原创 Redis 如何在系统启动时设置为开机自启
下载: 地址:http://download.redis.io/releases/redis-4.0.2.tar.gz(最新版)安装:tar zxvf redis-4.0.2.tar.gzcd redis-4.0.2.tar.gz#直接make编译make#可使用root用户执行make install ...,将可执行文件拷贝到/路径make install PR
2017-09-29 13:58:55
6702
3
转载 LinkedHashMap底层源码解读
初识LinkedHashMap大多数情况下,只要不涉及线程安全问题,Map基本上都可以使用HashMap,不过hashmap有一个问题,就是迭代hashmap的顺序并不是hashmap的放置顺序,也就是无序。hashmap的这一缺点往往会带来困扰,因为有些场景,我们期待一个有序的Map。这个时候,linkedhashmap就闪亮登场了,它虽然增加了时间和空间上的开销,但是通过维护一个运行于
2017-08-10 18:05:36
260
原创 HashMap底层源码解读
最近,手头的事情基本搞定,闲暇的时间,就看了看HashMap的源码,为了方便以后用的时候能更灵活自如吧。HashMap是我们常见的Map接口的一个实现类,以key-value的形式存在,在hashmap中总是会被当做一个整体来处理,系统会根据hash算法来计算key-value的存储位置,我们总是可以通过key快速存取value。下面来一起感受一下HashMap的强大。一、概念
2017-08-09 20:10:44
298
原创 连接IBM MQ no mqjbnd in java.library.path错误解决方法
IBM MQ的学习已经有一段时间了,今天重新打开eclipse准备搭建一个系统跑MQ。结果就出现了以下症状:com.ibm.msg.client.jms.DetailedJMSException: JMSFMQ6312: Java? MQI 中发生异常。Java? MQI 已抛出描述该问题的异常。请参阅链接的异常以获取进一步的信息。 at sun.reflect.NativeConstr
2017-08-07 17:33:54
2908
原创 连接IBM MQ原因码报2035的错误解决方法
因为已经有了IBM MQ的一些开发经验,当看到2035的时候就应该意识到是权限问题导致的。如下图MQJE001: 完成代码为 '2',原因为 '2035'。Exception in thread "main" com.ibm.mq.MQException: MQJE001: 完成代码为 '2',原因为 '2035'。 at com.ibm.mq.MQManagedConnectionJ11
2017-08-07 14:42:53
20562
3
转载 Java HotSpot Client VM 和 Java HotSpot Server VM的配置.
JDK包括2个JVM的实现JavaHotSpot Client VM(-client),为在客户端环境中减少启动时间而优化;javaHotSpot Server VM(-server),为在服务器环境中最大化程序执行速度而设计。比较:Server VM启动比Client VM慢,运行比Client VM快。如何将VM设置成 Server VM:找到 [jdk安装目录]j
2017-08-03 17:03:03
6006
原创 关于Spring整合IBM MQ实战案例
本以为之前对MQ的学习就要结束了,结果发现这才刚刚开始,送给刚入职场的每一位新人和我。今天主要分享一下自己对Spring整合IBM MQ的一些学习心得。再次感谢一个csdn博主,名字没记住,头像是一个戴墨镜的皮卡丘。需求:定时查询数据库中的表,将新增数据查询出来并放入mq队列中。1.模拟表字段:2.引入ibm mq依赖由于ibm mq依赖的jar包不在maven的中
2017-07-28 11:33:39
2689
4
原创 关于多态的一些学习感悟
今天,看了java编程思想以后,对多态又有了一些新的感悟,在这里和大家分享学习。多态也称为动态绑定、后期绑定或运行时绑定。java中的所有方法都是通过动态绑定实现多态的。可能有点迷糊,代码可能比较直观package cn.bababa;class Instrument{ public void play() { System.out.println("instrume
2017-07-24 10:57:23
391
原创 windows、linux下之IBM MQ两个队列管理器之间的通信(终篇)
继前两篇IBM MQ简单使用用法分享心得之后,八戒决定再写最后一篇也是最最重要的一篇,本篇将主要介绍两个不同主机间的队列管理器是如何实现相互通信的。在此之前,我想要先说两点, 第一点:向大家解释一些名词概念并描述一下这个交互流程,大家学了以后可能对整体的交互过程更加清晰,第二点:说一个小概念。java连接MQ的两种方式:MQ Java Binding方式和MQ Java Cli
2017-07-13 10:26:36
4310
1
原创 windows、linux下java连接本地MQ队列实现输入(二)
上一篇文章环境为windows,这一篇将说一下linux环境下java连接本地队列实现输入输出,其实大同小异,但是八戒在这里有很多心得感悟,想和大家做一分享,八戒将尽全力实现跨系统java远程访问MQ队列实现输入输出,争取下一篇文章快点出炉。(下一篇:客户端windows,服务器端linux)说到linux,不得不说的就是命令,当然八戒也希望自己将来在linux上有一些建树。哈哈~~,整理一下
2017-07-11 17:11:25
1511
1
原创 windows、linux下java连接本地MQ队列实现输入
自从前几天写了一篇websphere MQ安装以后,今天打算再写一篇java连接本地MQ队列实现put,get操作,希望可以给大家带来一些帮助,同时也给自己做一个总结。先windows,后linux。八戒(本人)下载的版本是WS_MQ_V7.5.0.2_TRIAL_FOR_WINDOWS_ML.zip,下面附上官网下载链接:https://www.ibm.com/developerwo
2017-07-11 14:23:33
1147
1
原创 WebSphere MQ中将消息发送至远程队列的配置
在学习本教程之前,你需要先在linxu环境下安装MQ并配置完成,可以百度一下教程很多,很简单。(入职第一天老大给了一个任务四天时间学习IBM MQSeries并写一份学习报告,现在基本上初步对MQ消息队列有了初步的了解,写一些笔记总结总结,也方便大家学习...)。注:部分内容转本教程介绍了如何设置一台计算机上的队列管理器 QM_ORANGE 与另一台计算机上的队列管理器 QM_APPLE 之间
2017-07-06 17:13:19
3675
1
原创 ajax动态查询数据库数据并显示在前台
今天做了一个ajax动态查询数据库的小Demo,又重新学习了一下ajax的一些知识。在此和大家分享一下......啥都别说了,先上代码Controller层 查询总用户数 @RequestMapping(value = "/findTotalUsers.do",method = RequestMethod.GET) public @ResponseBody Long fi
2016-08-16 18:24:31
30344
2
原创 关于SpringOpenSessionInViewFilter的配置及处理方案
spring 4的SpringOpenSessionInViewFilter的配置及处理方案
2016-08-12 15:23:10
3222
转载 ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
1. ActionContext在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request
2015-10-18 11:07:12
322
原创 技术 blog20 之 Java正则表达式 by 八戒
一:什么是正则表达式1. 定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是有普通的字符以及特殊字符组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。2. 用途:字符串匹配字符串查找字符串替换字符串分割 例如:从网页中揪出email地址IP地址是否正确
2015-06-14 14:45:21
452
原创 技术 blog19 之集合框架 by 八戒
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。集合有ArrayList、Vector、hashmap、linklist、treemap、hashset等多种实现。为了屏蔽实现差异,java提供了一个Collection接口,规定必须实现一些公用的方法,比如add、remove、size等等,不管底层如何实
2015-06-13 16:44:35
706
原创 技术 blog18 之 Java 泛型 by 八戒
泛型泛型是对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。没有使用泛型时,只要是对象,不管是什么类型的对象,都可以存储进同一个集合中。使用泛型集合,可以将一个集合中的元素限定为一个特定类型,集合中只能存储同一个类型的对象,这样更安全;并且当从集合获取一个对象时,编译器也可以知道这个对象的类型,不需要对对象进行强制类型转换,更方便。示例:
2015-06-12 19:45:48
748
原创 技术 blog17 之 javaBean by 八戒
一、 javabean 是什么?Bean的中文含义是“豆子”,顾名思义,JavaBean是指一段特殊的Java类,就是有默然构造方法,只有get,set的方法的java类的对象. 专业点解释是:JavaBean定义了一组规则JavaBean就是遵循此规则的平常的Java对象 满足这三个条件: 1.执行java.io.Serializable
2015-06-11 13:05:54
551
原创 技术 blog16 之 java设计模式 by 八戒
java设计模式设计模式:解决某一类问题最行之有效的方法,java中有23种设计模式。一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂
2015-06-10 14:46:52
547
原创 技术 blog15 之 反射 by 八戒
反射的概念反射就是把java类中的各种成分映射成相应的java类。一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示。 反射的基础:Class-->用来描述java中的类 如何得到各个字节码对应的实例对象 ->类名.cla
2015-06-09 08:13:00
718
原创 技术blog14 之 I/O体系 by 八戒
java I/O 体系java.io在jdk中的定义:为系统提供输入和输出通过数据流,序列化以及文件系统。在学习IO体系的时候,我们可以遵循这样的规律: 看父类的共性功能,用子类的对象。而且,IO体系的好处在于: 每个子类的后缀名都是所属体系的父类的名称,很容易区分所属的体系;而且每个子类前缀名都是该子类对象的功能体系。Java IO体系:|--
2015-06-08 20:42:39
513
原创 技术 blog13 之 网络编程 by 八戒
java网络编程网络基本知识:OSI参考模型应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP参考模型应用层、传输层、网际层、主机至网络层在Java中网络程序有两种协议:TCP和UDP,TCP通过握手协议进行可靠的连接UDP: 将数据及源和目的封装成数据包中,不需要建立连接 每个数据报的大小在限制在64
2015-06-08 16:07:38
718
原创 技术 blog12 之 类库 by 八戒
这里简单介绍Java类库中的System类,数据类型累,Cloneable类接口,Arrays类,Date类,Calendar类,Scanner类。1,System类。包含很多静态方法和变量,可以获取系统属性,以及包含标准输入输出。示例1:这个示例中分别使用两种计算方法来计算百元百鸡问题,然后使用System类中的方法获取当前时间,从而得到算法的运算时间。我们也可以通过Syst
2015-06-08 14:39:33
498
原创 技术 blog11 之多线程 by 八戒
多线程线程由两种实现方式:第一种方式:class MyThreadextends Thread{ public void run(){ 需要进行执行的代码,如循环。}} public classTestThread{ main(){ Thread t1=newMythread(); T1.start();}} 只有等
2015-06-06 11:44:35
743
原创 技术 blog10 by 八戒
一、线程类1、新建状态:新创建了一个线程对象。2、就绪状态:线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3、运行状态:就绪状态的线程获取了CPU,执行程序代码。4、阻塞状态:阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
2015-06-06 11:28:28
560
原创 技术blog09 by 八戒
集合集合是指一个对象容纳了多个对象,这个集合对象主要用来管理维护一系列相似的对象数组就是一种对象java.util.*定义了一系列的接口和类,告诉我用什么类new出一个对象,可以进行超越数组的操作集合框架接口的分类(分collection接口和map接口)Collection接口:集合中每一个元素为一个元素,这个接口将这些对象组织起来,形成一维结构List接口:代表按照元素
2015-06-06 10:43:30
414
原创 技术blog08 by 八戒
要了解接口,就先要了解抽象类。抽象类什么是抽象类,为什么要有抽象类?当多个类中出现相同功能,但是功能主体不同,可以进行向上抽取,这是只抽取功能定义,而不抽取功能主体。抽象类的特点:1. 抽象方法一定在抽象类中2. 抽象方法和抽象类都必须被abstract关键字修饰3. 抽象类不可以用new创建对象,因为调用抽象方法没意义。4. 抽象类中的抽象方法要被使用,必须由子类
2015-03-31 17:20:35
447
原创 技术blog07 by 八戒
类是面向对象编程中最重要的概念,类是Java程序的基本组成要素。1. 类声明类声明: [类修饰符]class类名[extends父类名][implements[,接口名]]{...}类的修饰符主要有:abstract(抽象类) 没有实现的方法,也没有构造方法,可以有抽象方法(只定义方法,不实现)。不能用new操作直接生成实例。不能派生之类。final(终结类)
2015-03-31 17:16:32
439
原创 技术blog06 by 八戒
1.如何理解面向对象?面向过程:强调的是功能行为面向对象:将功能封装进对象,强调对象所具备的功能面向对象是基于面向过程的2.类和对象的关系类:对现实生活中事物的描述对象:实实在在的类的个体匿名对象:匿名对象使用方法一:当对对象方法只调用一次时,可以用匿名对象来完成,这样比较简化匿名对象使用方法二:可以将匿名对象作为实际参数进行传递面向对象三大
2015-03-31 17:13:46
464
原创 技术blog05 by 八戒
1.struts2中,actionerror与fielderror的区别 (1).actionerror里面加入的为错误信息,为一个集合 fielderror里面加入的为一个键值对,为一个map this.addFieldError("birthday","birthday should be before gradution");
2015-03-29 19:04:02
414
原创 技术blog04 by 八戒
document.getElementsByName() 是根据控件名称获取这个控件对象,因为控件名称可以相同,返回的是一个对象数组。 document.getElementById() 是根据控件ID获取这个控件对象,因为控件ID唯一,返回的是一个对象。 document.getElementsByTagName() 是根据控件TAG获取这个控件对象,返回的是一个对象数组
2015-03-29 19:01:31
501
原创 技术blog03 by 八戒
今天来一发重量级的,保证大家学会后感觉自己瞬间高大上了。(友情提示:考点内部类)(面试题)1.interface Inter { public abstract void show();}class Outer{ //补全代码}class Test{ public static
2015-03-28 13:35:36
444
关于websphereMQ 对死信队列的处理
2017-08-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人