202010-10 Java pom.xml parent引用报错问题解决方案 问题如下本质就是jar包引用不到,这个时候就要需要去windows-preferences-Maven-usersettings中查看jar包存放在本地的那个仓库之中我存放的是D:\tools\study_tools\maven\apache-maven-3.6.3\repository关闭eclipse,进入对应的maven本地仓库,也就是D:\tools\study_tools\maven\apache-maven-3.6.3\repository,将所有文件删除干净,再重新打开eclipse,等待Maven下载依赖包,然后updatePrograms,项目就不会报错了以上就是本文... 继续阅读 >
202010-10 Java mockito单元测试实现过程解析 待测试的服务接口:publicinterfaceItemService{StringgetItemNameUpperCase(StringitemId);}预览待测试的服务的实现类:@ServicepublicclassItemServiceImplimplementsItemService{@ResourceprivateItemRepositoryitemRepository;@OverridepublicStringgetItemNameUpperCase(StringitemId){Itemitem=itemRepository.findById(itemId);if(item==null){returnnull;}return... 继续阅读 >
202010-10 Java HashMap实现原理分析(一) 从本文开始,介绍一下最常用的一个集合对象HashMap,HashMap存储的是键值对,本文采用的基于JDK11的源码实现。一般大家都知道HashMap是通过put操作把一组键值对(key和value)存储到HashMap中,然后可以通过get(key)去获取key对应的value。而最重要的这两个过程是怎么实现的呢?下面我们就来对put和get这两个过程做一个分析。HashMap基本工作原理下面先看一段源码:/***Thetable,initializedonfirstuse,andresizedas... 继续阅读 >
202010-10 JAVA spark创建DataFrame的方法 述说正传,接下来开始说正事。以前用Python和Scala操作Spark的时候比较多,毕竟Python和Scala代码写起来要简洁很多。今天一起来看看Java版本怎么创建DataFrame,代码写起来其实差不多,毕竟公用同一套API。测试数据可以参考我之前的文章。先来总结下Spark的一般流程:1,先创建Spark基础变量,spark,sc2,加载数据,rdd.textFile,spark.read.csv/json等3,数据处理,mapPartition,map,filter,reduce等一系列transformation操... 继续阅读 >
202010-10 Java NIO异步文件通道原理及用法解析 在Java7,AsynchronousFileChannel被添加到了JavaNIO中。使用AsynchronousFileChannel可以实现异步地读取和写入文件数据。创建一个AsynchronousFileChannel我们可以使用AsynchronousFileChannel提供的静态方法open()创建它。示例代码如下:Pathpath=Paths.get("data/test.xml");AsynchronousFileChannelfileChannel=AsynchronousFileChannel.open(path,StandardOpenOption.READ);第一个参数是一个PATH的对像实例,它... 继续阅读 >
202010-10 Java策略模式实现简单购物车功能 策略模式是一种行为模式。用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略。策略模式也被称作政策模式。实现过程为,首先定义不同的算法策略,然后客户端把算法策略作为它的一个参数。使用这种模式最好的例子是Collection.sort()方法了,它使用Comparator对象作为参数。根据Comparator接口不同实现,对象会被不同的方法排序。本文例子是,完成一个简单地购物车,两种付款策... 继续阅读 >
202010-10 Java简单高效实现分页功能 今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的CRUD接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法1、Utils.java工具类中的方法/**2*获取Sort**@paramdirection-排序方向*@paramcolumn-用于排序的字段*/publicstaticSortgetSort(Stringdirection,Stringcolumn){Sortsort=null;if(column==null||column=="")returnnull;if(direc... 继续阅读 >
202010-10 Java并发编程如何降低锁粒度并实现性能优化 在高负载多线程应用中性能是非常重要的。为了达到更好的性能,开发者必须意识到并发的重要性。当我们需要使用并发时,常常有一个资源必须被两个或多个线程共享。在这种情况下,就存在一个竞争条件,也就是其中一个线程可以得到锁(锁与特定资源绑定),其他想要得到锁的线程会被阻塞。这个同步机制的实现是有代价的,为了向你提供一个好用的同步模型,JVM和操作系统都要消耗资源。有三个最重要的因素使并发的实现会消耗大量资源,... 继续阅读 >
202010-10 Java基本概念监视器实习原理解析 大学有一门课程叫操作系统,学习过的同学应该都记得,监视器是操作系统实现同步的重要基础概念,同样它也用在JAVA的线程同步中,这篇文章用一种类推的思想解释监视器”monitor”。1.什么是监视器监视器可以看做是经过特殊布置的建筑,这个建筑有一个特殊的房间,该房间通常包含一些数据和代码,但是一次只能一个消费者(thread)使用此房间,当一个消费者(线程)使用了这个房间,首先他必须到一个大厅(EntrySet)等待,调度程序将基于... 继续阅读 >
202010-10 java输入数字,输出倒序的实例 我就废话不多说了,大家还是直接看代码吧~packagec10;importjava.util.Scanner;publicclasszhengzhengshu{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.println("输入一个正整数:");intnum=input.nextInt();while(num!=0){intb=num%10;num=num/10;System.out.print(b);}}}控制台效果显示:补充知识:Java实现整数的逆序输出(三种方法)Java... 继续阅读 >
202010-10 java list随机抽取元素的案例 我就废话不多说了,大家还是直接看代码吧~/***从list中随机抽取元素**@paramlist*@paramn*@returnvoid*@throws*@Title:createRandomList*@Description:TODO*/privatestaticListcreateRandomList(Listlist,intn){//TODOAuto-generatedmethodstubMapmap=newHashMap();ListlistNew=newArrayList();if(list.size()<=n){returnlist;}else... 继续阅读 >
202010-10 Java List集合返回值去掉中括号('[ ]')的操作 如下所示:调用StringUtils工具类的strip()方法去掉中括号"[]":StringUtils.strip(word.toString(),"[]")//第一个参数放集合,第二个参数去掉中括号"[]"StringUtils工具类代码:packagecom.ktamr.common.utils;importcom.ktamr.common.core.text.StrFormatter;importjava.util.Collection;importjava.util.Map;/***字符串工具类**@authorktamr*/publicclassStringUtilsextendsorg.apache.commons.lang3.Stri... 继续阅读 >
202010-10 Java Stream的基本概念以及创建方法 前言相信很多人(包括我自己),在很长一段时间内虽然使用了JDK1.8,却从来没有使用过自1.8开始增加的Stream这一强大使用的新特性,本文则将先从如何创建Stream开始,逐步去学会Stream的使用。本文不会涉及对流中数据的操作,而只讨论创建流的几种方法,以及一些基础概念,关于流的实用操作将会在后续文章中一一介绍。Stream与Collection的区别1.用途与关注点不同Collection主要关注于对象的存储方面,通过使用List、... 继续阅读 >
202010-10 通过代码实例解析JAVA类生命周期 代码publicclassTestClass{publicstaticintk=0;publicstaticTestClasst1=newTestClass("t1");publicstaticTestClasst2=newTestClass("t2");publicstaticinti=print("i");publicstaticintn=99;publicintj=print("j");{print("构造块");}static{print("静态块");}publicTestClass(Stringstr){System.out.println((++k)+""+str+"i="+i+"n="+n);++n;++i;}pub... 继续阅读 >
202010-10 Java BigDecimal使用及基本运算(推荐) BigDecimal简介Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中... 继续阅读 >
202010-10 java项目中的绝对路径和相对路径用法说明 绝对路径:不可改变的路径本地绝对路径:增加盘符的路径(e:/test/test.html)网络绝对路径:增加协议,IP地址,端口号的路径(http://localhost:8080/test/test.html)相对路径:可以改变的路径,但是以基准路径为参考,查找其他路径默认情况下,相对路径的基准路径是以当前资源的访问路径为基准在项目中引入资源文件路径以斜杠开头,表示的特殊的相对路径,在不同的场景中,相对的位置会发生变化。url:http://localhost:8080/a... 继续阅读 >