首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

同步响应参数验签示例(Java

一、同步返回参数和同步响应参数的区别 1.同步返回的参数是指在接口的请求参数中传入return_url参数,在支付成功后在return_url地址后面返回的如: [url]https://m.alipay.com/Gk8NF23?total_amount=9.00&timestamp=2016-08-11+19%3A36%3A01&sign=ErCRRVmW%2FvXu1XO76k%2BUr4gYKC5%2FWgZGSo%2FR7nbL%2FPU7yFXtQJ2CjYPcqumxcYYB5x%2FzaRJXWBLN3jJXr01Icph8AZGEmwNuzvfezRoWny6%2Fm0iVQf7hfgn66z2yRfXtRSqtSTQWhjMa5YXE7MBMKFruIclYVTlfWDN30Cw7k%2Fk%3

优秀的个人博客,低调大师

Java数据结构——单向链表实现

/** * 单向链表实现类 * @Description * 类描述: * @author GaoAnQiu * @Date * @modify * 修改记录: * */ public class Link { private int size = 0; private Node first; private Node last; public Node getFirst() { return first; } public void setFirst(Node first) { this.first = first; } public Node getLast() { return last; } public void setLast(Node last) { this.last = last; } public Link() { } /** * 返回链表长度 * @Description * 方法描述: * @return 返回类型: int * @return */ public int getLength() { return size; } public void printLink(Link link) { Node temp = first; while (temp != null) { System.out.print(temp.getData() + "-->"); temp = temp.getNext(); } System.out.println(); } /** * 返回指定位置的节点 * @Description * 方法描述: * @return 返回类型: Node * @param index * @return */ public Node get(int index) { Node temp = first; for (int i = 0; i < index; i++) { temp = temp.getNext(); } return temp; } /** * 插入第一个元素,头和尾都指向同一个元素 * @Description * 方法描述: * @return 返回类型: void */ private void onetNode(int element) { first = new Node(); first.setData(element); last = first; } public void addHead(int element) { if (size == 0) { onetNode(element); } else { Node node = new Node(); node.setData(element); node.setNext(first); first = node; } size++; } /** * 插入尾结点 * @Description * 方法描述: * @return 返回类型: void * @param element */ public void addTail(int element) { if (size == 0) { onetNode(element); } else { Node node = new Node(); node.setData(element); last.setNext(node); last = node; //将插入的结点设置为尾结点 size++; } } /** * 插入中间元素 * 头尾两处需要特殊处理 * @Description * 方法描述: * @return 返回类型: void * @param index * @param element */ public void add(int index, int element) { if (index > size) { throw new IndexOutOfBoundsException("待插入的位置超过链表的最大长度。"); } else { if (index == 0) { //下标为0时,插入头元素 addHead(element); } else if (size == index) { //下标与链表长度一致时,插入尾元素 addTail(element); } else { Node preNode = get(index - 1); // Node nextNode = get(index); Node newNode = new Node(); newNode.setData(element); preNode.setNext(newNode); newNode.setNext(nextNode); size++; } } } /** * 删除头节点 * @Description * 方法描述: * @return 返回类型: void */ public void delHead() { if (size == 0) { throw new IndexOutOfBoundsException("空链表,无元素可删除"); } else { if (size == 1) { //只有一个节点时,清空链表 clear(); } else { Node nextNode = first.getNext(); first = nextNode; } size--; } } /** * 清空链表 * @Description * 方法描述: * @return 返回类型: void */ public void clear() { first = last = null; size = 0; } public void delTail() { if (size == 0) { throw new IndexOutOfBoundsException("空链表,无可删除的元素。"); } else if (size == 1) { clear(); } else { //取出尾节点的前一个节点,next赋值为null Node preTail = get(size - 2); preTail.setNext(null); last = preTail; size--; } } /** * 删除节点 * @Description * 方法描述: * @return 返回类型: void * @param index */ public void del(int index) { if (index >= size) { throw new IndexOutOfBoundsException("删除位置越界"); } else { if (index == 0) { delHead(); } else if (index == size - 1) { delTail(); } else { Node preNode = get(index - 1); Node nextNode = get(index + 1); preNode.setNext(nextNode); size--; } } } } public class Node { private int data;//数据 private Node next;//指针 public int getData() { return data; } public void setData(int data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } }

优秀的个人博客,低调大师

java经常使用16种工具类

一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块toString:转换IO流、 Uri、 byte[]为Stringcopy:IO流数据复制,从输入流写到输出流中,最大支持2GBtoByteArray:从输入流、URI获取byte[]write:把字节. 字符等写入输出流toInputStream:把字符转换为输入流readLines:从输入流中读取多行数据,返回List<String copyLarge:同copy,支持 2GB以上数据的复制lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败二. org.apache.commons.io.FileUtils deleteDirectory:删除文件夹readFileToString:以字符形式读取文件内容deleteQueitly:删除文件或文件夹且不会抛出异常copyFile:复制文件writeStringToFile:把字符写到目标文件,如果文件不存在,则创建forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级write:把字符写到指定文件中listFiles:列举某个目录下的文件(根据过滤器)copyDirectory:复制文件夹forceDelete:强制删除文件三. org.apache.commons.lang.StringUtils isBlank:字符串是否为空 (trim后判断)isEmpty:字符串是否为空 (不trim并判断)equals:字符串是否相等join:合并数组为单一字符串,可传分隔符split:分割字符串EMPTY:返回空字符串trimToNull:trim后为空字符串则转换为nullreplace:替换字符串四. org.apache.http.util.EntityUtils toString:把Entity转换为字符串consume:确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉toByteArray:把Entity转换为字节流consumeQuietly:和consume一样,但不抛异常getContentCharset:获取内容的编码五. org.apache.commons.lang3.StringUtils isBlank:字符串是否为空 (trim后判断)isEmpty:字符串是否为空 (不trim并判断)equals:字符串是否相等join:合并数组为单一字符串,可传分隔符split:分割字符串EMPTY:返回空字符串replace:替换字符串capitalize:首字符大写六. org.apache.commons.io.FilenameUtils getExtension:返回文件后缀名getBaseName:返回文件名,不包含后缀名getName:返回文件全名concat:按命令行风格组合文件路径(详见方法注释)removeExtension:删除后缀名normalize:使路径正常化wildcardMatch:匹配通配符seperatorToUnix:路径分隔符改成unix系统格式的,即/getFullPath:获取文件路径,不包括文件名isExtension:检查文件后缀名是不是传入参数(List<String )中的一个 七. org.springframework.util.StringUtils hasText:检查字符串中是否包含文本hasLength:检测字符串是否长度大于0isEmpty:检测字符串是否为空(若传入为对象,则判断对象是否为null)commaDelimitedStringToArray:逗号分隔的String转换为数组collectionToDelimitedString:把集合转为CSV格式字符串replace 替换字符串7. delimitedListToStringArray:相当于splituncapitalize:首字母小写collectionToDelimitedCommaString:把集合转为CSV格式字符串tokenizeToStringArray:和split基本一样,但能自动去掉空白的单词八. org.apache.commons.lang.ArrayUtils contains:是否包含某字符串addAll:添加整个数组clone:克隆一个数组isEmpty:是否空数组add:向数组添加元素subarray:截取数组indexOf:查找某个元素的下标isEquals:比较数组是否相等toObject:基础类型数据数组转换为对应的Object数组九. org.apache.commons.lang.StringEscapeUtils 参考十五:org.apache.commons.lang3.StringEscapeUtils十. org.apache.http.client.utils.URLEncodedUtils format:格式化参数,返回一个HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串parse:把String或者URI等转换为List<NameValuePair 十一. org.apache.commons.codec.digest.DigestUtils md5Hex:MD5加密,返回32位字符串sha1Hex:SHA-1加密sha256Hex:SHA-256加密sha512Hex:SHA-512加密md5:MD5加密,返回16位字符串十二. org.apache.commons.collections.CollectionUtils isEmpty:是否为空select:根据条件筛选集合元素transform:根据指定方法处理集合元素,类似List的map()filter:过滤元素,雷瑟List的filter()find:基本和select一样collect:和transform 差不多一样,但是返回新数组forAllDo:调用每个元素的指定方法isEqualCollection:判断两个集合是否一致十三. org.apache.commons.lang3.ArrayUtils contains:是否包含某个字符串addAll:添加整个数组clone:克隆一个数组isEmpty:是否空数组add:向数组添加元素subarray:截取数组indexOf:查找某个元素的下标isEquals:比较数组是否相等toObject:基础类型数据数组转换为对应的Object数组十四. org.apache.commons.beanutils.PropertyUtils getProperty:获取对象属性值setProperty:设置对象属性值getPropertyDiscriptor:获取属性描述器isReadable:检查属性是否可访问copyProperties:复制属性值,从一个对象到另一个对象getPropertyDiscriptors:获取所有属性描述器isWriteable:检查属性是否可写getPropertyType:获取对象属性类型十五. org.apache.commons.lang3.StringEscapeUtils unescapeHtml4:转义htmlescapeHtml4:反转义htmlescapeXml:转义xmlunescapeXml:反转义xmlescapeJava:转义unicode编码escapeEcmaScript:转义EcmaScript字符unescapeJava:反转义unicode编码escapeJson:转义json字符escapeXml10:转义Xml10这个现在已经废弃了,建议使用commons-text包里面的方法。 十六. org.apache.commons.beanutils.BeanUtils copyPeoperties:复制属性值,从一个对象到另一个对象getProperty:获取对象属性值setProperty:设置对象属性值populate:根据Map给属性复制copyPeoperty:复制单个值,从一个对象到另一个对象cloneBean:克隆bean实例

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册