
Java
小小平不平凡
这个作者很懒,什么都没留下…
展开
-
Tomcat7启动项目报错:ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start
一、原因和解决方法(亲测可用)SEVERE: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start原因与解决转载 2021-09-07 19:41:01 · 1171 阅读 · 0 评论 -
Java中使用Python脚本及动态传参的方法
一、背景介绍在实际工作中需要使用JsonSchema解析json数据,JsonSchema中的新功能if-then-else在Java中无法生效,但是Python脚本就可以(咱也不知道为什么)。于是自己便生出一个想法,是否可以在Java中执行Python脚本呢?百度一番还真有这种操作pom.xml文件中需要引入相应的依赖包<dependency> <groupId>org.python</groupId> <artifactId>jy原创 2021-08-18 14:45:13 · 1241 阅读 · 0 评论 -
IDEA中的RunDashBoard使用
找到.idea下面的workspace.xml文件,在xml找到RunDashboard组件,如下图所示添加如下option内容<option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set></option>...原创 2021-07-27 18:52:30 · 202 阅读 · 0 评论 -
Java中整数数组排序方法
一、正序排列(从小到大)public class IntNums { public static void main(String[] args) { int[] nums = {1,4,2,3}; Arrays.sort(nums); for(int i = 0; i < nums.length; i++){ System.out.println("第i位: " + i + " 元素为" + nums[i])原创 2021-07-19 14:42:34 · 5884 阅读 · 0 评论 -
Java中数字转成字符串的方法
Java中将数字转换成字符串共有3中方法public class IntToString { public static void main(String[] args) { Integer num = 456; //方式1 String str1 = String.valueOf(num); System.out.println("方式1的结果:" + new StringBuilder(str1).reverse().toStr原创 2021-07-19 14:24:51 · 10853 阅读 · 1 评论 -
Java中整数转字符串的方法
将一个整数转成字符串共有3种方法,如下所示:public class IntToString { public static void main(String[] args) { Integer num = 456; //方式1 String str1 = String.valueOf(num); System.out.println("方式1的结果:" + str1); //方式2 String原创 2021-07-17 19:06:29 · 5728 阅读 · 0 评论 -
Java实现生成文件并将文件下载至浏览器默认路径的方法
一、生成文件1.1 生成word文件 /** * 生成 word 文件 * * @param dataMap 待填充数据 * @param templateName 模板文件名称 * @param filePath 模板文件路径 * @param fileName 生成的 word 文件名称 */ public static void createWord(Map dataMap, String templateName原创 2021-07-12 17:56:41 · 7672 阅读 · 0 评论 -
Java中强软弱虚四种引用介绍
一、引用的目的Java中Jvm操控垃圾回收器的运行,但是我们仍然可以在一定程度上与垃圾回收器进行交互。交互的目的是为了帮助垃圾回收器管理好应用的内存,避免内存出现OOM。使用JDK1.2引入的java.lang.ref包,为对象指定不同的引用类型Object obj = new Object()obj指向的是对象在内存中的地址,obj可以执行对象的一些操作二、四种引用介绍2.1 强引用(StrongReference)使用 new 关键字创建出的对象就是强引用。垃圾回收器是不会回收有强引用的对转载 2021-07-01 22:50:27 · 196 阅读 · 0 评论 -
Java中左移和右移知识介绍
在Java中 << 表示 左移、>> 表示 右移、>>> 表示 无符号右移,这些符号在Java中被称为 移位运算符。位运算比乘除快,可以被用来优化代码一、左移不分正负数,高位移出,低位补0。左移一位相当于乘以2的1次方,左移n位就相当于乘以2的n次方举例:10 << 1 的结果等于 2010 << 3 的结果等于 80二、右移区分正负数。如果操作的数是正数,则高位补0;若为负数,则高位补1。右移一位相当于除以2的1次方,右移n原创 2021-06-28 22:54:08 · 2878 阅读 · 0 评论 -
基于Freemarker实现导出数据为word文档
整体流程1、pom.xml<!-- 引入freemarker模板引擎的依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId></dependency>2、生成 .ftl 模版文件新建一个空的word文档,按照你预期的导出原创 2021-05-18 17:13:56 · 838 阅读 · 4 评论 -
fastjson中JSONObject对象的getString()方法遇到的坑
public class Test { public static void main(String[] args) { String str = "{\"context\":\"{\\\"flightNo\\\":\\\"ZH9112\\\",\\\"flightDate\\\":\\\"${rkey+1day(0,9)}\\\",\\\"userId\\\":\\\"13706024\\\", \\\"tktNum\\\":\\\"54028714511230\\\",\\\"co原创 2021-05-13 14:37:20 · 7541 阅读 · 0 评论 -
Java Agent知识
一、agent分类一种是在主程序之前运行的Agent一种是在主程序之后运行的Agent(前者的升级版,1.6以后提供)二、javaagent概述javaagent(Java代理程序)是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项Premain-Class 指定的那个类必须实现 premain() 方法。premain() 方法,从字面转载 2021-05-07 18:39:31 · 756 阅读 · 0 评论 -
JPS命令介绍及使用
一、背景介绍JPS(JavaVirtual Machine Process Status Tool)是jdk提供的一个查看当前java进程状态的小工具二、命令使用格式jps [options ] [ hostid ][options]选项 :-q:仅输出java进程号,不包括classname,jar name,arguments in main method-m:输出main method的参数-l:输出完全的包名,应用主类名,jar的完全路径名-v:输出jvm参数-V:输出通过fla原创 2021-04-16 14:28:46 · 465 阅读 · 0 评论 -
Java知识:变量在内部类中被使用的话必须在内部类外部声明为final
内部类中使用但未声明的任何局部变量必须在内部类的正文之前明确分配Java匿名内部类的方法中用到的局部变量都必须定义为final在JVM中,内部类不是直接调用方法的参数,而是内部类将传进来的参数通过自己的构造器备份到了自己的内部,自己内部的方法调用的实际是自己的属性而不是外部类方法的参数举例:class A{ final string a = “aabbcc”; class B{ print(a); }}类A中的内部类B的函数print()调用了定义在A中的参数a,这个时候如果不加.转载 2021-03-24 19:47:23 · 614 阅读 · 0 评论 -
Java GC相关知识
一、基础概念GC(垃圾收集器)1.1 GC三种分类Minor GC:新生代GC,指发生在新生代的垃圾收集动作。所有的Minor GC都会触发全世界的暂停(stop-the-world),停止应用程序的线程,不过这个过程非常短暂。Major GC:老年代GC,指发生在老年代的垃圾收集动作。Full GC:是清理整个堆空间,包括新生代和老年代。1.2 堆的内存划分新生代 ( Young ):主要用来存放新生的对象,新生代又被划分为三个区域,Eden、From Survivor、To Surv原创 2021-03-10 22:03:43 · 120 阅读 · 0 评论 -
Java中判断空字符串和null的方法
1、简单直接的方法//先判断是否为对象,再判断是否是空字符串if(s == null ||"".equals(s));2、比较字符串长度,效率高if(s == null || s.length() <= 0);3、效率和方法2几乎相等,但出于兼容性考虑,不建议此方法if(s == null || s.isEmpty());4、//判断字符串不为空if(StringUtils.isNotBlank(str))//判断字符串为空if(StringUtils.isBlank(st转载 2020-10-21 13:15:57 · 2556 阅读 · 0 评论 -
Java中Date类型字段转成JSON字符串会自动转换为时间戳
一、问题背景Java中自定义的实体类对象中存在Date类型字段,字段值为:2020-10-21 12:23:23。将该实体类对象使用FastJSON转成JSON字符串后,发现时间字段变成了“148364681324”这样的时间戳二、解决办法针对上述问题,FastJSON提供了解决方法方法1:在对应的实体类的属性上方定义一个注解@JSONField(format = “yyyy-MM-dd HH:mm:ss”)方法2: 在servlet中将数据转换成json对象时,使用JSON.toJSON原创 2020-10-21 12:35:55 · 2902 阅读 · 0 评论 -
Date对象将时间转换为毫秒的方法对比
1、Date.parse()该方法接受一个表示日期的字符串参数,然后尝试根据这个日期返回日期的毫秒数。ECMA-262没有定义该方法支持哪种日期格式,因此这个方法的行为因为浏览器实现而异。如果传入字符串不能表示日期,那么它会返回NaN。该方法返回的毫秒值后三位全为0,精确到秒数,没有毫秒数。Date.parse("2012年9月9日")NaN Date.parse("2012 9 9")1347120000000// 毫秒数转换为日期格式new Date(Date.parse("2012原创 2020-09-30 11:33:45 · 4160 阅读 · 0 评论 -
Java中定义普通数组的三种方式
int[] arr1=new int[10]; // 必须指定数组大小int[] arr2={1,2,3,6}; int[] arr3=new int[]{1,2,3,4,5,6,7,22}; // 不必指定数组大小原创 2020-09-30 10:51:05 · 261 阅读 · 0 评论 -
FastJSON使用介绍
//Javabean对象转换成JSON字符串JSONObject.toJSONString(Javabean对象) //JSON字符串转换成Javabean对象,方式一JSONObject.toJavaObject(JSON字符串,Javabean.class)//JSON字符串转换成Javabean对象,方式二JSONObject.parseObject(JSON字符串,Javabean.class) //JSON字符串转换成JSONObject对象JSONObject.parseOb原创 2020-09-30 10:48:12 · 261 阅读 · 0 评论 -
Java中存储Log日志信息经验总结
一、异常信息的格式规范问题1 logger.error("Best print: ", e);2 logger.error("Good print: {}", e); //a.3 logger.error("Bad print: " + e); //b. 或 + e.toString()4 logger.error("Bad print: " + e.getMessage()); //c. 或: {}", e.getMessage())解释:a句仍可打印异常名和堆栈信息,但多输出一对花括转载 2020-09-30 10:40:20 · 1597 阅读 · 0 评论 -
Java获取System.out输出的控制台信息
package com.demo;import java.io.ByteArrayOutputStream;import java.io.PrintStream;public class SystemOutTest { public static void outTest() { ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024); PrintStream cacheStream转载 2020-09-30 10:16:32 · 2045 阅读 · 0 评论 -
Java中Optional类的学习与使用
https://www.cnblogs.com/zhangboyu/p/7580262.html转载 2020-08-27 18:19:26 · 149 阅读 · 0 评论 -
HttpClient与OkHttpClient的区别
HttpClient简介HttpClient被用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。特性:基于标准、纯净的java语言。实现了Http1.0和Http1.1以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。支持HTTPS协议。通过Http代理建立透明的连接。利用CONNECT方法通过Http代理建立隧道的https连接。原创 2020-08-27 15:34:54 · 8067 阅读 · 0 评论 -
java.lang.reflect.Modifier.isAbstract()方法介绍
一、使用public static boolean isAbstract(int mod)参数mod:一组修饰符返回值:如果mod包含抽象(abstract)修饰符,则为true; 否则为false二、作用用来判定如果整数参数包含abstract修饰符,则返回true,否则返回false...原创 2020-08-05 19:51:21 · 702 阅读 · 0 评论 -
Java中@SuppressWarnings(“unchecked“)注解的作用
一、简介java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上注解的作用告诉编译器忽略指定的警告,不用在编译完成后出现警告信息使用方法@SuppressWarnings(“”)@SuppressWarnings({})@SuppressWarnings(value={})示例1:@SuppressWarnings(“unchecked”)告诉编译器忽略 unchecked 警告信息原创 2020-08-05 19:29:18 · 575 阅读 · 0 评论 -
Java反射使用的Field类介绍
一、Field类的作用Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括(1)获取当前对象的成员变量的类型(2)对成员变量重新设值二、获取Field类对象的四种方法(1)Class.getFields():获取类中public类型的属性,返回一个包含某些 Field 对象的数组,该数组包含此 Class 对象所表示的类或接口的所有可访问公共字段(2)getDeclaredFields():获取类中所有的属性(public、p原创 2020-08-05 18:52:23 · 3329 阅读 · 0 评论 -
JDK8中computeIfAbsent方法
Map<String, List<String>> map = new HashMap<>();List<String> list;// 一般这样写list = map.get("list-1");if (list == null) { list = new LinkedList<>(); map.put("list-1", list);}list.add("one");// 使用 computeIfAbsent原创 2020-08-05 18:12:44 · 2920 阅读 · 1 评论 -
JDK8中新增了便利的Map设置默认值方法getOrDefault
实际代码public List<ValidModel> valids(String id) { return validMap.getOrDefault(id, Collections.emptyList());}方法作用:如果map中含有指定的key,就返回该key对应的value;否则使用该方法的第二个参数作为默认值返回对比代码/* * 示范Map.getOrDefault方法并和JDK8之前的实现方法做对比。JDK8 * 中新增的Map.getOrDefault方原创 2020-08-05 18:10:19 · 1178 阅读 · 0 评论 -
Java中Class类 和 class对象(运行时的类型信息)
一、简介从某种意义上来说,Java有两种对象:实例对象和Class对象。每个类的运行时的类型信息就是用Class对象表示的。实例对象实际上就是通过Class对象来创建的。Java使用Class对象执行其RTTI(运行时类型识别,Run-Time Type Identification),多态是基于RTTI实现的。每一个类都有一个Class对象,每当编译一个新类就产生一个Class对象。基本类型(boolean, byte, char, short, int, long, float, double)有C转载 2020-08-05 17:17:43 · 1509 阅读 · 0 评论 -
Java中isAssignableFrom()方法与instanceof关键字用法的区别
使用方法// isAssignableFrom()父类.class.isAssignableFrom(子类.class)// instanceof关键字子类实例 instanceof 父类类型区别isAssignableFrom() 方法是从 类继承 的角度去判断;instanceof关键字 是从 实例继承 的角度去判断isAssignableFrom() 方法是判断是否为某个类的父类;instanceof关键字 是判断是否某个类的子类...原创 2020-08-05 15:35:31 · 256 阅读 · 0 评论 -
Spring注解@Target @Retention @Documented @Inherited
参考实例@Target({ ElementType.PARAMETER, ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interface SystemLog { boolean value() default true;}一、@Retention@Retention注解的作用是:表示被修饰的注解会被保留到哪个阶段RetentionPolicy.SOURCE:这原创 2020-08-04 20:02:55 · 892 阅读 · 0 评论 -
URI中特殊字符的处理
一、问题产生场景实际项目开发中,需要通过get请求传递一个zip包的地址参数,zip地址中含有特殊字符二、URL特殊符号及编码十六进制值特殊字符十六进制值+%2B空格URL中的空格可以用+号或者编码 %20/%2F?%3F%%25#%23&%26=%3DJava实现url encodingimport org.apache.http.client.HttpClient;import org.apache.h原创 2020-07-27 20:48:35 · 1212 阅读 · 0 评论 -
Spring中@interface的作用
@interface的作用是自定义一个新的注解例子:package com.self; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface MyTarget { }使用新定义的注解@MyTargetpackage com.self; import原创 2020-07-22 14:33:52 · 1642 阅读 · 0 评论 -
真正解决方案:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
背景实际项目中使用的是java8开发的,部署的服务器安装的是java11问题报错:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter原因分析JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。java9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包。而在 java 6/7/8 时关于这个API 都是捆绑在一起的解决办法方式一转载 2020-07-21 20:17:50 · 8508 阅读 · 1 评论 -
Java中ArrayList和JSONArray相互转换的方法
本篇主要讲解 ArrayList 和 fastjson 中的 JSONArray相互转换的几种常用方式,以实体类 Student.java 举例说明Student 实体类public class Student { private String name; // 姓名 private Integer age; // 年龄 private String gender; // 性别 public Student(String name, Integer转载 2020-07-15 20:36:57 · 5912 阅读 · 2 评论 -
Java中异常抛出后代码是否会继续执行
在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗?是否需要在异常后面加上return语句呢?public void add(int index, E element){ if(size >= elements.length) { throw new RuntimeException("顺序表已满,无法添加"); //return; //需要吗? } ....}为了回答这个问题,我编写了几段代码测试了一下,结果如下://代码1转载 2020-07-15 20:27:10 · 463 阅读 · 0 评论 -
Java中object.getClass()和Object.class的区别
区别类名.class叫做“类字面量”,因class是关键字, 所以类名.class编译时确定。而getClass()是某个具体的方法来调用,是运行时根据实际实例确定,getClass()是动态而且是final的实例抽象类package com.kang;public abstract class Animal {}子类package com.kang; public class Dog extends Animal { public static void main(S转载 2020-07-03 13:50:05 · 355 阅读 · 0 评论 -
Java中获取JSON串的值类型的方法
方式一:使用方式二:使用对象的getClass().getSimpleName()public static void main(String[] args) { String str = "{\"bussDatas\":[{\"fieldDesc\":\"string\",\"isSelected\":0,\"optionType\":0,\"optionValue\":\"string\",\"orderNum\":0,\"placeHolder\":\"string\"}],\原创 2020-07-02 21:00:40 · 5345 阅读 · 0 评论 -
Java中使用Gson将字符串转为List类型
假设存在一个Person实体类List<Person> persons =gson.fromJson(json, new TypeToken<List<Person>>() {}.getType());原创 2020-06-23 19:31:07 · 1396 阅读 · 0 评论