JAVA
NIO4444
这个作者很懒,什么都没留下…
展开
-
JAVA系列:Runtime.getruntime.exec包含重定向 ‘ < ‘ ‘ > ‘ 和管道符‘ | ‘ 时处理方法
Runtime.getruntime.exec调用的命令中包含重定向 ' < ' ' > ' 和管道符' | ' 时,exec(String command)方法没有执行。需要使用exec(String [] cmdArray) 或者exec(String []cmdarray,String []envp,File dir)来执行。原创 2023-02-12 15:46:17 · 719 阅读 · 0 评论 -
JAVA系列:JAVA开发常见的第三方库概述
可以根据项目所需引入: Guava:来自Google的常用类库 Apache Commons:来自Apache的常用类库 Mockito:主要用于单元测试的mock DBUnit:测试中管理数据库测试数据 Rest Assured:用于Rest API测试 Jackson 2:Json数据的序列化和反序列化 jjwt:Jwt token认证 Lombok:自动生成常见Java代码,比如equals()方法,getter和setter原创 2022-06-01 00:15:00 · 1065 阅读 · 0 评论 -
Idea系列 :IDEA反编译查看class文件
原创 2021-10-02 23:22:49 · 729 阅读 · 0 评论 -
JAVA系列:java.io.tmpdir默认目录查看与修改
目录默认目录手动设置目录默认目录操作系统不同 这个系统属性所表示的目录也不同Windows: java.io.tmpdir:[C:\temp\]Solaris: java.io.tmpdir:[/var/tmp/]Linux: java.io.tmpdir: [/tmp] 或 [/var/tmp/]Mac OS X: java.io.tmpdir: [/tmp]手动设置目录java -Djava.io.tmpdir=/path/to/tmpdir.原创 2021-10-04 12:00:00 · 13062 阅读 · 0 评论 -
JAVA系列:String数组转List,List转String或String数组
目录数组转ListList转StringList转String[]数组转List String[] arr = new String[] {"nnn", "io"}; List list = Arrays.asList(arr); System.out.println(list);List转String String result = String.join("-",list) ; System...原创 2021-03-28 21:57:42 · 419 阅读 · 1 评论 -
JAVA系列:SimpleDateFormat解析带T字符的时间格式( yyyy-MM-ddTHH:mm:sssZ )
目录字母意思编码实现字母意思SSS指的是毫秒,Z代表的时区,中间的T代表可替换的任意字符。编码实现 public static void main(String[] args) { SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:sssZ"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd原创 2021-03-20 23:19:30 · 5031 阅读 · 2 评论 -
Spring系列:WebSocket完整入门例子
目录效果配置application.propertiespom引入JAVA文件HelloWorldApplicationWebSocketConfigWebSocket网页2.html浏览器前台数据后台数据效果配置application.properties#spring.main.banner-mode = offspring.output.ansi.enabled=ALWAYSserver.port=8888...原创 2021-03-15 23:29:04 · 541 阅读 · 0 评论 -
JPA系列:使用原生SQL、使用JPQL查询方法简单例子
目录使用原生SQL使用JPQL(默认)使用原生SQLnativeQuery = true,设置表示使用最原生的SQL语句package com.pjb.jpauserdemo.dao; import com.pjb.jpauserdemo.entity.UserInfo;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.reposi原创 2021-03-15 22:40:11 · 1298 阅读 · 0 评论 -
JAVA系列:配置文件log4j2.xml详解(log4j2文件结构、完整样例)
目录需求log4j2.xml样例文件结构说明根节点ConfigurationAppenders节点Loggers节点日志level需求1.最多保留6个月(180D)之内的日志文件2.每个日志文件最大为200MB3.每天备份一次日志文件4.备份的日志文件压缩为gz格式5.备份的文件放到以当前年月命名的目录6.每天备份的日志文件个数最多为5个7.自动检测和重新加载配置,每30分钟(1800s)检测一次log4j2.xml样例<?xml v.原创 2021-03-11 23:36:47 · 3032 阅读 · 0 评论 -
JAVA系列:POI 导出Excel时文件名中文乱码(兼容浏览器)
String agent = request.getHeader("USER-AGENT").toLowerCase(); response.setContentType("application/vnd.ms-excel"); String fileName = "文件名"; String codedFileName = java.net.URLEncoder.encode(fileName, "UTF-8"); if (agent.contains("fire...原创 2021-02-27 00:24:04 · 1421 阅读 · 0 评论 -
JAVA系列:commons.lang3工具包 String、日期、等常用处理方法demo
目录判断null或“”List 2 String拼接删除所有空格删除前后空格默认值位数补齐判断是否整数、字母日期转换处理判断null或“” /*** * 字符串 */ if (StringUtils.isEmpty(null)) System.out.println("null "); if (StringUtils.isEmpty(" ")) //不...原创 2021-02-17 22:46:03 · 702 阅读 · 0 评论 -
JAVA系列:commons.lang3工具包一览表
目录一. org.apache.commons.io.IOUtils二. org.apache.commons.io.FileUtils三. org.apache.commons.lang.StringUtils四. org.apache.http.util.EntityUtils五. org.apache.commons.lang3.StringUtils六. org.apache.commons.io.FilenameUtils七. org.springframework.u原创 2021-02-17 22:21:19 · 2116 阅读 · 0 评论 -
JAVA8特性:Optional使用方法
目录常见场景demo传统 Java 的写法显得冗长难懂,而新的Optional<T>+Lambda 则清新脱俗常见场景demopackage com.nio4444.demo.java8;import com.google.common.collect.Lists;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;...原创 2021-02-17 14:29:58 · 250 阅读 · 0 评论 -
JAVA8特性:Stream使用方法
目录重要方法demo重要方法stream: 返回数据流,集合作为其源 parallelStream: 返回并行数据流, 集合作为其源 filter: 方法用于过滤出满足条件的元素 map: 方法用于映射每个元素对应的结果 forEach: 方法遍历该流中的每个元素 limit: 方法用于减少流的大小 sorted: 方法用来对流中的元素进行排序 anyMatch: 是否存在任意一个元素满足条件(返回布尔值) allMatch: 是否所有元素都满足条件(返回布尔值) non原创 2021-02-17 14:19:44 · 307 阅读 · 0 评论 -
JAVA8特性:函数式接口Supplier、Function、Predicate、Consumer使用方法
目录ConsumerdemoConsumer① Consumer是一个接口,并且只要实现一个 accept 方法,就可以作为一个“消费者”输出信息。② 其实,lambda 表达式、方法引用的返回值都是 Consumer 类型,所以,他们能够作为 forEach 方法的参数,并且输出一个值。demopackage com.nio4444.demo.java8;import com.google.common.collect.Lists;import jav..原创 2021-02-17 13:24:26 · 487 阅读 · 0 评论 -
JAVA8新特性:方法引用
目录构造器引用某个类的成员方法、静态方法构造器引用import java.util.Arrays;import java.util.List;import java.util.function.Supplier;public class MethodRefDemo { public static void main(String[] args) { Person p0 = Person.create(Person::new) ; //等同于原创 2021-02-17 13:01:45 · 265 阅读 · 0 评论 -
JAVA8新特性:Lambda 表达式使用方法(为什么慢探索)
目录demo为什么慢?Lambda表达式简洁,但是性能不佳。demopackage com.nio4444.demo.java8;import java.util.ArrayList;import java.util.List;public class LambdaDemo { public static void main(String[] args) { System.out.println("--1-------"); te原创 2021-02-17 12:34:59 · 363 阅读 · 0 评论 -
Spring系列:IOC依赖查找(根据注解查找)实例
目录basecode效果baseSpring系列:IOC依赖查找(根据类型查找)实例codepackage com.test.anonation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Tar原创 2020-11-09 00:06:43 · 401 阅读 · 0 评论 -
Spring系列:IOC依赖查找(根据类型查找)实例
baseSpring系列:IOC依赖查找(根据名称查找)实例codeDemo02101package com.test;import com.test.pojo.User;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.ListableBeanFactory;import org.springframework.beans.factor.原创 2020-11-09 00:03:38 · 456 阅读 · 0 评论 -
Spring系列:IOC依赖查找和IOC依赖注入区别对比
依赖查找实现初始化bean到map的value中,使用时根据bean名字作为key从map中获取。通过beanFactory或者context的getBean()方法是依赖查找依赖注入比如@Autowired @Resource是依赖注入原创 2020-11-08 13:49:57 · 632 阅读 · 0 评论 -
JAVA系列:几种主流的IOC容器实现一览
原创 2020-11-08 13:41:06 · 772 阅读 · 0 评论 -
Spring系列:Spring5大核心模块
原创 2020-11-07 21:17:24 · 814 阅读 · 0 评论 -
JAVA系列:JDK各版本特性语法变化
原创 2020-11-07 19:54:01 · 516 阅读 · 0 评论 -
JAVA系列:HTTP缓存
强缓存不会向服务器发送请求,直接从缓存中读取资源。disk cache或memory cache两种(耗时几毫秒)关键字Cache-Control:当值设为max-age=300时,表示5分钟内的请求从disk或memory读取。协商缓存向服务器发送请,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源;关键字1...原创 2020-11-03 22:27:21 · 773 阅读 · 0 评论 -
JAVA系列:JWT(JSON Web Tokens)
JWT的构成第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature):第一、第二两个字符串加密后的得到的串后台只需要同样加密第一、第二,然后校验签证,就知道是不是自己签发的了!!有点:后台不用保存,支持跨域、不需要session缺点:不能限制调用次数。...原创 2020-11-01 23:43:44 · 243 阅读 · 0 评论 -
JAVA系列:浏览器禁用cookie后如何实现session?
目录URL地址重写session和cookie的有效时长URL地址重写绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写。原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。HttpServletResponse类提供了encodeURL(String url)实现URL地址重写,该方法会自动判断客户.原创 2020-11-01 21:30:32 · 1618 阅读 · 0 评论 -
JAVA系列:我们常说的CURD指的是什么?
CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写,CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。原创 2020-10-27 21:39:24 · 5454 阅读 · 0 评论 -
设计模式系列: 合成(Composite)模式模式应用实践
合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。安全式合成模式的结构涉及到三个角色 ● 抽象构件(Component)角色:这是一个抽象角色,它给参加组合的对象定义出公共的接口及其默认行为,可以用来管理所有的子对象。合成对象通常把它所包含的子对象当做类型为Component的对象。在安全式的合成模式里,构件角色并不定义出管理子对象的方法,...原创 2020-10-24 21:40:17 · 932 阅读 · 0 评论 -
JAVA系列:除去json数据中的双引号
除去json数据中的双引号 private static String jsonString(String s){ char[] temp = s.toCharArray(); int n = temp.length; for(int i =0;i<n;i++){ if(temp[i]==':'&&temp[i+1]=='"'){ for(int j =i+2;j<n;j++){ if(temp[j]==原创 2020-10-24 20:15:35 · 1522 阅读 · 0 评论 -
JAVA系列:(BigDecimal转String)科学计数法转字符串
科学计数法--->字符串newBigDecimal(valueFrom.toString()).toPlainString()原创 2020-10-24 20:10:02 · 1897 阅读 · 0 评论 -
JAVA系列:POI导出Excel最大行限制65535、1048576(超过的不显示,数据丢失)
目录#生成Excel注意事项#官方说明#生成Excel注意事项Excel 97-2003 中,工作表的大小为 256 列 × 65,536 行,sheet表名最大32位Excel 2010 和 Excel 2007 中,工作表的大小为 16,384 列 × 1,048,576 行,在 Excel 中,超出最大行列数单元格中的数据将会丢失。#官方说明Excelspecifications and limits:http://office.microsoft.co...原创 2020-10-24 19:29:50 · 6634 阅读 · 0 评论 -
JAVA系列: Object 、泛型T、?
目录为什么需要泛型泛型和Object对比例子T和?泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型为什么需要泛型把对象扔进集合中,集合是不知道元素的类型是什么的,仅仅知道是Object。因此在get()的时候,返回的是Object。外边获取该对象,还需要强制转换泛型和Object对比例子定义在变量上定义在类上T和?T和?运用的地方有点不同,?是定义在引用变量上,T是类上或方法上“<T>"和"..原创 2020-10-24 19:28:03 · 897 阅读 · 0 评论 -
JAVA系列:HashSet、TreeSet、LinkedHashSet
目录HashSetTreeSetLinkedHashSetHashSetSet本质是HashMap,key是set的值,value是固定的PRESENTTreeSetNavigableMap是接口,默认传入TreeMap,LinkedHashSetLinkedHashMap原创 2020-10-24 18:08:57 · 246 阅读 · 0 评论 -
JAVA系列:Hashtable、TreeMap 、LinkedHashMap、ConcurrentHashMap
HashtableHashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为nullConcurrentHashMap在JDK1.7的实现上,ConrruentHashMap由一个个Segment组成,简单来说,ConcurrentHashMap是一个 Segment 数组,它通过继承ReentrantLock 来进行加锁,通过每次锁住一个segment来保证每个 segment 内的操作的线程安全性从而实现全局线程安全。只有在求size等操作时才..原创 2020-10-14 23:30:01 · 443 阅读 · 1 评论 -
JAVA系列:HashMap按key或value排序
目录按key排序按value排序List<Map.Entry<String, Integer>> infoIds =new ArrayList<Map.Entry<String, Integer>>(map.entrySet());按key排序按value排序原创 2020-10-14 22:42:29 · 307 阅读 · 0 评论 -
JAVA系列:HashMap常见问题
目录HashMap的key可以重复吗?为什么用它“当两个对象的hashcode相同会发生什么?”“HashMap怎么解决碰撞?”“如果两个键的hashcode相同,你如何获取值对象?”“如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?”“你了解重新调整HashMap大小存在什么问题吗?”为什么String, Interger这样的wrapper类适合作为键?我们可以使用自定义的对象作为键吗?我们可以使用CocurrentHash..原创 2020-10-13 23:28:18 · 598 阅读 · 1 评论 -
JAVA系列: 哈希表/散列表定义
哈希表哈希表也叫散列表,是根据关键字而直接进行访问内存存储位置的数据结构。它通过把关键字通过散列函数映射到哈希表中的一个位置来访问记录,以加快查找的速度。存放记录的数组叫做散列表。哈希表就是一种依托于数组的数据结构,只不过增加了一些规则来在数组上存储元素和访问元素。...原创 2020-10-13 23:21:40 · 289 阅读 · 0 评论 -
JAVA系列:HashMap源码分析
HashMap的NodeHashMap的存储结构HashMap的数据结构为数组+(链表+红黑树)为什么采用这种结构来存储元素呢?数组的特点:查询效率高,插入,删除效率低。链表的特点:查询效率低,插入删除效率高。在HashMap底层使用数组加(链表或红黑树)的结构完美的解决了数组和链表的问题,使得查询和插入,删除的效率都很高。HashMap就是使用哈希表来存储的。哈希表为解决冲突,可以采用开放地址法和链地址法等来解决问题,Java中HashMap采用了...原创 2020-10-13 23:14:52 · 227 阅读 · 0 评论 -
JAVA系列: Iterator和Enumeration
IteratorIterator遍历Collection时,是fail-fast机制的。即,当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。Enumeration 比 Iterator 的遍历速度更快从中,我们可以看出。Enumeration 比 Iterator 的遍历速度更快。为什么呢?这是因为,H...原创 2020-10-11 22:14:42 · 309 阅读 · 0 评论 -
JAVA系列:Arrays.sort和Collections.sort区别
区别如果我们需要对一个对象数组进行排序,我们可以使用Arrays.sort()方法。如果我们需要排序一个对象列表,我们可以使用Collections.sort()方法。Collections.sort内部实现也是Arrays.sort()Arrays.sort()Arrays.sort() 采用了2种排序算法 -- 基本类型数据使用快速排序法,对象数组使用归并排序。在Java 6中Arrays.sort()和Collections.sort()使用的是Me...原创 2020-10-11 22:12:29 · 941 阅读 · 0 评论