202205-27 Java struts2请求源码分析案例详解 Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。我这里的struts2源码是从官网下载的一个最新的struts-2.3.15.1-src.zip,将其解压即可。里面的目录页文件非常的多,我们只需要定位到struts-2.3.15.1\src\core\src\main\jav... 继续阅读 >
202205-27 Java httpClient连接池支持多线程高并发的实现 当采用HttpClienthttpClient=HttpClients.createDefault()实例化的时候。会导致Addressalreadyinuse的异常。信息:I/Oexception(java.net.BindException)caughtwhenprocessingrequestto{}->http://**.**.**.**Addressalreadyinuse:connect十一月22,20185:02:13下午org.apache.http.impl.execchain.RetryExecexecute信息:Retryingrequestto{}->http://**.**.**.**java.net.BindException:Addressal... 继续阅读 >
202205-27 基于java中的null类型---有关null的9件事 目录关于null的9件事1、首先,null是java中的关键字,像public、static、final2、就像每种原始类型都有默认值一样3、要澄清一些误解4、null可以赋值给引用变量5、任何含有null值的包装类6、如果使用了带有null值的引用类型的变量,instanceof操作会返回false7、可以使用静态方法来使用一个值为null的引用类型变量8、可以将null传递给方法使用9、可以使用==或者!=操作来比较null值Java:null是什么??null是什么?1、对于null的... 继续阅读 >
202205-27 Java读取json数据并存入数据库的操作代码 Java读取json数据并存入数据库1.pom依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>2.students.json文件{"students":[{"stuId":1,"stuName":"meilanfang","stuAge":93},{"stuId":2,"stuName":"zhangguorong","stuAge":92},{"stuId":3,"stuNam... 继续阅读 >
202205-27 JAVA JVM面试题总结 目录JVM的主要作用是什么?请你描述一下Java的内存区域?请你描述一下Java中的类加载机制?加载验证文件格式验证元数据验证字节码验证符号引用验证准备解析初始化使用卸载在JVM中,对象是如何创建的?内存分配方式有哪些呢?请你说一下对象的内存布局?对象头Header锁的两个列表实例数据InstanceData对齐Padding对象访问定位的方式有哪些?如何判断对象已经死亡?JVM的主要作用是什么?JVM就是JavaVirtualMachine... 继续阅读 >
202205-27 Java dom4j生成与解析XML案例详解 一)dom4j介绍使用方式:在pom.xml中导入dom4j对应的jar<dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency>优点:dom4j使Java生成和解析XML灵活性变高,并且代码易于维护API操作类:Document:表示xml文档信息,是一个树形结构Eelment:表示xml的元素结点,提供一些操作其子元素方法的,如文本、属性、名称空间等Attribute:表示元素结点中的属性... 继续阅读 >
202205-27 java枚举类型-Enum 目录前言应用定义基本Enum特性Enum的静态导入Enum中添加新方法Switch语句中的EnumEnum的继承EnumSet的使用EnumMap的使用常量相关方法枚举值向枚举类型转换前言枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。应用定义关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。enumWeekEnum{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,we... 继续阅读 >
202205-27 深入理解java final不可变性 目录一、javafinal基本概念:1、主要用于修饰类、属性和方法:2、finalfinallyfinalize区别:二、final不可变: 1、JAVAString类为什么是final不可变的?2、String的不可变性:一、javafinal基本概念:1、主要用于修饰类、属性和方法:被final修饰的类不可以被继承被final修饰的方法不可以被重写被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的2... 继续阅读 >
202205-27 Java ArrayAdapter用法案例详解 拖延症最可怕的地方就是:就算自己这边没有拖延,但对方也会拖延,进而导致自己这边也开始拖延起来!现在这个项目我这边已经是完工了,但是对方迟迟没有搞定,导致整个项目无法提交。 这就是拖延症的可怕:我们不仅是与自己的拖延症作战,而是与所有有关人士的拖延症作战,决定项目是否能够提交,在于那个最慢的人。 既然决定权已经不在我的手上,... 继续阅读 >
202205-24 浅谈Java包装类型Long的==操作引发的低级bug 目录背景两个Long 类型的 ==对Collections.EMPTY_SET进行add引发的异常Collections的空集合使用注意事项启示录背景一个简单的列表检索功能,列表元素有一个Long类型的属性,遍历过程中犯了一个低级错误,导致功能流程始终错误,本文将分享两个低级错误引发的bug。两个Long 类型的 ==查找某个元素A在列表B中对应的对象的时候,根据元素主键查询,主键类型为包装类型Long,遍历流程如下:for(MyData... 继续阅读 >
202205-24 Java Structs框架原理案例详解 1Struts2框架内部执行过程Structs请求过程源码分析参考链接https://www.jb51.net/article/220585.htm从上图来看,整个框架的运行过程是围绕着核心过滤器StrutsPrepareAndExecuteFilter展开工作,深入到filter的源码会对理解有所帮助。一个请求在Struts的处理中大概有以下几个步骤:客户端初始化一个指向Servlet容器(Tomcat)的请求;这个请求经过一系列的过滤器(Filter)例如ActionContextCleanUp的可选过滤器;接... 继续阅读 >
202205-24 Java getRealPath("/")与getContextPath()区别详细分析 一.以下是在servlet中测试的。二.运行结果如下(其中myfile文件夹是不存在的)。三.总结。1.getRealPath("/")方法返回的是项目在服务器的绝对路径,而getRealPath("WEB-INF/myfile")返回的是包含一个给定虚拟路径的绝对路径,其中/myfile是虚拟的。2.getContextPath()方法返回的是项目相对路径,并不会返回其绝对的路径,就是说并不知道项目在哪个位置。到此这篇关于JavagetRealPath("/")与getContextPath()区别详细分析的文章就介绍... 继续阅读 >
202205-24 JAVA十大排序算法之基数排序详解 目录基数排序代码实现时间复杂度算法稳定性基数排序vs桶排序vs计数排序总结基数排序常见的数据元素一般是由若干位组成的,比如字符串由若干字符组成,整数由若干位0~9数字组成。基数排序按照从右往左的顺序,依次将每一位都当做一次关键字,然后按照该关键字对数组排序,同时每一轮排序都基于上轮排序后的结果;当我们将所有的位排序后,整个数组就达到有序状态。基数排序不是基于比较的算法。基数是什么意思?对于十进制整数... 继续阅读 >
202205-24 Java java.lang.InstantiationException异常案例详解 java.lang.InstantiationException是指不能实例化某个对象,一般在我们使用java反射机制去创建某个对象的时候实例化到了一个抽象类或者接口(java中抽象类和接口是不能被实例化),而今天我遇到的则是我在使用反射机制实例化某个持久类的时候爆出这个异常,后来发现是因为iBATIS在对象建立中,会使用不带参数的构造函数来建立对象,而自己的持久化类中含有带参数的构造方法,将默认无参构造方法覆盖,导致在实例化过程出现... 继续阅读 >
202205-20 JAVA十大排序算法之桶排序详解 目录桶排序代码实现时间复杂度算法稳定性总结桶排序桶排序是计数排序的升级,计数排序可以看成每个桶只存储相同元素,而桶排序每个桶存储一定范围的元素,通过函数的某种映射关系,将待排序数组中的元素映射到各个对应的桶中,对每个桶中的元素进行排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序),最后将非空桶中的元素逐个放入原序列中。桶排序需要尽量保证元素分散均匀,否则当所有数据集中在同一个桶中时,桶排... 继续阅读 >
202205-20 JAVA十大排序算法之计数排序详解 目录计数排序问题代码实现时间复杂度算法稳定性总结计数排序一种非比较排序。计数排序对一定范围内的整数排序时候的速度非常快,一般快于其他排序算法。但计数排序局限性比较大,只限于对整数进行排序,而且待排序元素值分布较连续、跨度小的情况。如果一个数组里所有元素都是整数,而且都在0-k以内。对于数组里每个元素来说,如果能知道数组里有多少项小于或等于该元素,就能准确地给出该元素在排序后的数组的位置。如给定一个0~5... 继续阅读 >