![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
行者彡
这个作者很懒,什么都没留下…
展开
-
H5链接分享到微信中形成小卡片(后端代码签名实现(超详细))
(这两个方法都写了缓存,和是失效时间,并且在用的时候都会去判断缓存里面有没有值,没有的话,我们再去请求重新获取,而不是每次都请求获取,这样会造成接口请求频繁受到限制的问题)返回结果集类(可用自己的,附上仅为了复制代码直接可用)原创 2023-10-17 16:15:31 · 2017 阅读 · 0 评论 -
idea2021版本后项目运行报错——Error running xxx : Command line is too long.Shorten command line ..解决方法
Calendar calendar= Calendar.getInstance();calendar.setTime(new Date());int i=0;while(i<days){ calendar.add(Calendar.DATE,-1);//整数往后推日期,负数往前推日期 i++; if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY || calendar.get(Cale.原创 2021-09-01 11:11:47 · 29666 阅读 · 3 评论 -
java计算上个工作日方法
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对于String是不可变对象总是存有疑惑。看下面代码: String s = "ABCabc"; .原创 2021-08-02 18:11:38 · 1510 阅读 · 0 评论 -
java集合中retainAll方法
@Test public void reTian(){ int[] arr1={1,2,3,4}; int[] arr2={1,2,3,5}; int[] arr3={5,6,7,8}; int[] arr4={1,2,3,4}; initList(arr1, arr2, arr3, arr4); } private static void initList(int[] arr1, int[] a...原创 2021-06-18 11:40:55 · 1850 阅读 · 1 评论 -
IDEA中maven的 Lifecycle 基本用法
1.clean用于清除之前构建生成的所有文件其中具体为清楚了Target目录中的所有文件,包括该目录i.e:删除了install生成的所有文件2.validate用于验证项目是否真确,并且其说有必要信息是否都可用3.compile编译项目的源代码,主要是java文件一般是编译scr/main/java或是scr/test/java里面的文件4.test用合适的测试框架来进行测试,测试compile中编译出来的代码测试的东西一般不加包和部署5.packaging...原创 2021-06-17 18:15:33 · 1292 阅读 · 0 评论 -
Java中的String为什么是不可变的? -- String源码分析(通俗易懂)
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对于String是不可变对象总是存有疑惑。看下面代码: String s = "ABCabc";.转载 2021-05-13 18:22:11 · 190 阅读 · 0 评论 -
创建数组的几种方法
public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; System.out.println("创建数组的第一种方法:"+arr[5]); //创建数组的第二种方法 int[] x={1,2,3,4}; System.out.println("创建数组的第二种方法:"+x[3]); //创建数组的..原创 2021-05-12 16:00:35 · 11937 阅读 · 0 评论 -
java8 字符串拼接的正确姿势
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("湖南"); list.add("哈哈"); System.out.println("方式一:"+String.join(",", list)); System.out.println("方式二:"+list.stream().c.原创 2021-01-28 15:53:25 · 652 阅读 · 0 评论 -
Dom4j&$XPath 完整教程详解
Dom4j完整教程目录Dom4j完整教程1、DOM4J简介2、XML文档操作12.1、读取XML文档:2.2、获取根节点2.3、.新增一个节点以及其下的子节点与数据2.4、写入XML文件2. 5、遍历xml节点2.6、创建xml文件2.7、修改节点属性2.8、删除节点2、XML文档操作22.1、Document对象相关1、读取XML文件,获得document对象.2、解析XML形式的文本,得到documen...转载 2020-12-23 11:40:21 · 2520 阅读 · 2 评论 -
JAVA - JDK 1.8 和 jQuery1.8 API 帮助文档-中文版
JAVA - JDK 1.8 和 jQuery1.8 API 帮助文档-中文版 都在API包里面链接:https://pan.baidu.com/s/16Rt9JiR2li5IxziD9-vwxQ提取码:69aj原创 2020-12-09 19:25:42 · 266 阅读 · 0 评论 -
idea中maven导入依赖报红的解决办法(版本不一致)
使用idea创建maven项目,maven导入依赖报红查看maven的安装和配置有没有问题。maven的安装位置、maven的setting.xml中的配置以及maven的环境变量配置。一般都是setting文件和存放地址不一样导致的---》 <localRepository>C:\Users\.m2\repository</localRepository>...原创 2020-11-12 17:33:51 · 3978 阅读 · 0 评论 -
JVM模块(十九)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405(如有发现不足之处欢迎指教,相互学习,只为自己学习的同时,方便大家)JVM194.说一下 jvm 的主要组成部分?及其作用?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)组件的作用: 首先通过类加载.转载 2020-10-27 10:58:20 · 184 阅读 · 0 评论 -
Redis模块(十八)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405(如有发现不足之处欢迎指教,相互学习,只为自己学习的同时,方便大家)Redis179.redis 是什么?都有哪些使用场景?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 使用场景:数据高并发的读写海量数据的读写对扩展性要求.转载 2020-10-27 10:51:37 · 143 阅读 · 0 评论 -
MySql模块(十七)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405MySql (如有发现不足之处欢迎指教,相互学习,只为自己学习的同时,方便大家)164.数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性。165. .转载 2020-10-27 10:47:30 · 119 阅读 · 0 评论 -
Zookeeper(十六)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405Zookeeper157.zookeeper 是什么?zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。158. zookeep.转载 2020-10-27 10:41:52 · 103 阅读 · 0 评论 -
Kafka模块(十五)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405Kafka152.kafka 可以脱离 zookeeper 单独使用吗?为什么?kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。153. kafka 有几种数据保留的策略?kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。.转载 2020-10-27 10:39:48 · 182 阅读 · 1 评论 -
RabbitMQ模块(十四)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405RabbitMQ135.rabbitmq 的使用场景有哪些?①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。②. 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消.转载 2020-10-27 10:38:07 · 351 阅读 · 0 评论 -
Mybatis模块(十三)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405Mybatis125.mybatis 中 #{}和 ${}的区别是什么?#{}是预编译处理,KaTeX parse error: Expected 'EOF', got '#' at position 21: …串替换; Mybatis在处理#̲{}时,会将sql中的#{}替…{}时,就是把${}替换成变量的值;使用#{}可以有效的防..转载 2020-10-27 10:32:55 · 199 阅读 · 0 评论 -
Hibernate模块 (十二)
Hibernate113. 为什么要使用 hibernate?对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。114. 什么是 ORM 框架?对象转载 2020-10-27 10:25:31 · 123 阅读 · 0 评论 -
Spring Boot / Spring Cloud(十一)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405Spring Boot / Spring Cloud104. 什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建.转载 2020-10-27 10:23:00 · 150 阅读 · 0 评论 -
Spring / Spring MVC(十)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405Spring / Spring MVC90. 为什么要使用 spring?1.简介目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。2.轻量从大小与开销两方面而.转载 2020-10-26 10:11:55 · 167 阅读 · 0 评论 -
JAVA设计模式(九)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405设计模式88. 说一下你熟悉的设计模式?参考:常用的设计模式汇总,超详细!89. 简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成: 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断.转载 2020-10-26 10:07:34 · 159 阅读 · 0 评论 -
JAVA网络模块(八)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405网络79. http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。 302 redirect: 302 代表暂时性转移(Temporarily Mov.转载 2020-10-26 10:05:08 · 228 阅读 · 0 评论 -
JAVA异常模块(七)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405异常74. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。75. final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表.转载 2020-10-26 09:53:58 · 186 阅读 · 0 评论 -
JAVA WEB模块(六)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405Java Web64. jsp 和 servlet 有什么区别? jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类) jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。 Serv.转载 2020-10-26 09:50:08 · 124 阅读 · 0 评论 -
JAVA对象拷贝(五)
Java综合常见面试题+ 答案汇总https://blog.csdn.net/sinat_21843047/article/details/109247405对象拷贝61. 为什么要使用克隆?想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆了,Java语言中克隆针对的是类的实例。62. 如何实现对象克隆?有两种方式:实现Cloneable接口并重写Object类中的clone()方法; 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以.转载 2020-10-26 09:48:05 · 195 阅读 · 0 评论 -
JAVA反射模块(四)
57. 什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类。 在运行时构造任意一个类的对象。 在运行时判断任意一个类所具有的成员变量和方法。 在运行时调用任意一个对象的方法。 58. 什么是 java 序列化?什么情况下需要序列化?.转载 2020-10-26 09:37:43 · 137 阅读 · 1 评论 -
JAVA多线程模块(三)
35. 并行和并发有什么区别? 并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。 所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。36. 线程和进程的区别?简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执转载 2020-10-26 09:35:53 · 180 阅读 · 1 评论 -
JAVA基础模块(一)
Java 基础1.JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了转载 2020-10-26 09:21:24 · 632 阅读 · 0 评论 -
Java综合常见面试题及答案
Java最新常见面试题 + 答案汇总1、面试题模块汇总面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示:可能对于初学者不需要后面的框架和 JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。适宜阅转载 2020-10-23 18:04:39 · 1127 阅读 · 1 评论 -
@Autowired 与@Resource的区别(通俗易懂)
@Autowired 与@Resource的区别:1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用3、@Resource(这个...原创 2020-09-17 12:08:27 · 17608 阅读 · 3 评论 -
Java中 intValue,parseInt,Valueof 关键字的区别
intValue()是把Integer对象类型变成int的基础数据类型;parseInt()是把String 变成int的基础数据类型;Valueof()是把给定的String参数转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)intValue()用法与另外两个不同,比如int i = new Integer("123"), j = i.intValue(); 相当...原创 2017-10-23 17:13:16 · 398 阅读 · 0 评论 -
containsKey方法——判断是否包含指定的键名(通俗易懂)
Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断Map<String, Object> mp = new HashMap<S...原创 2017-10-23 17:14:31 · 5395 阅读 · 1 评论 -
Log4j配置详解
来自:http://www.blogjava.net/zJun/archive/2006/06/28/55511.htmlLog4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:#配置根Logg...转载 2019-06-26 17:50:54 · 431 阅读 · 0 评论 -
Java源码阅读的真实体会(一种学习思路)
刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《深入Java虚拟机》这类书,别人觉得好,未必适合现在的你。 虽然Tomc...转载 2018-02-22 15:23:32 · 443 阅读 · 0 评论 -
JAVA length属性和length()方法和size()方法的区别详解
1.Java中 length属性是针对数组来说的,length属性:用于获取数组长度;2.Java中 length()方法是针对字符串来说的,length()方法:用于获取字符串长度;3.java中 size()方法是针对泛型集合说的, size()方法:用于获取泛型集合有多少个元素;用这个例子来演示这个属性和两个方法的区别public static原创 2017-07-03 09:16:10 · 2538 阅读 · 0 评论 -
java找出2个集合相同和不同的元素(以及去除List中的重复元素)
一、找到2个集合中相同和不同的元素此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list)实现代码如下:import java.util.ArrayList;import java.util.Collection;import java.util.List;public class Test {public static vo...转载 2017-12-12 16:57:06 · 29721 阅读 · 1 评论 -
抽象和接口的区别(通俗易懂)
抽象和接口的对比:抽象和接口的区别:1、概念不一样。接口是对动作的抽象,抽象类是对本质的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。所以,在高级语言上,一个类只能继承一个类(抽象类)...原创 2018-04-12 21:48:49 · 2429 阅读 · 0 评论 -
java中的String,StringBuilder,StringBuffer三者的区别
Java中的String,StringBuilder,StringBuffer三者的区别 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的...原创 2018-12-13 21:08:13 · 242 阅读 · 0 评论 -
Request常用方法(通俗易懂)
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。request常用方法:一、获取客户机环境信息常见方法: 1.getRequestURL方法返回客户端发出请求时的完整URL。 2.getRequestURI方法返回请求行中的资源名部分。原创 2017-08-23 17:24:55 · 2409 阅读 · 0 评论