![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 70
@红@旗下的小兵
求知若渴 虚心若愚
展开
-
freemarker模板引擎结合node puppeteer库实现html生成图片
freemarker模板引擎结合node puppeteer库实现html生成图片,支持flex布局及所有css3属性原创 2024-02-24 23:39:38 · 989 阅读 · 0 评论 -
Velocity
示例:在celo01.vm中定义组件,在下边可重复复用该组件。原创 2024-02-21 22:15:34 · 972 阅读 · 0 评论 -
工具类Apache Commons Lang3 之StringUtils
概述Lang3提供了许多Java库无法提供的辅助工具类,比如字符串,数值,反射,序列化等。如果熟练使用该包下的工具类,将节省我们的开发时间,避免重复实现,减少出错的可能。版本当前版本:3.12.0 3.x版本最低支持java7使用<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId>&l原创 2022-04-14 21:00:08 · 7905 阅读 · 3 评论 -
ScheduledExecutorService - 定时周期执行任务
ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序(每隔一段时间执行一次)时比较方便。接口中四个方法如下:该接口中前两个方法只会执行一次,后两个方法会定时循环执行。— 三个方法简介—1. ScheduledFuture<?> schedule(Runnable command,long delay,T...原创 2022-02-22 10:48:48 · 6635 阅读 · 0 评论 -
Calendar
Calendar定义Calendar 中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?比如有:月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同;阴(农)历,每个月固定28天每周的第一天 - 阳(公)历星期日是第一天;阴(农)历,星期一是第一天。实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期。所以为了计时的统一,必需指定一原创 2022-02-14 16:20:04 · 265 阅读 · 0 评论 -
java内置线程池ExecutorService、ScheduledExecutorService 接口、Executors工具类、ScheduledThreadPoolExecutor
构造方法 七个参数:构造方法:int corePoolSize ->核心线程数量(允许刚开始创建线程的数量)int maximumPoolSize ->最大线程数量long keepAliveTime ->最大空闲时间TimeUnit unit ->时间单位BlockingQueue<Runnable> workQueue ->任务列队(临时缓冲区)ThreadFactory threadFactory ->线程工厂,是一个接原创 2021-09-04 20:45:09 · 896 阅读 · 0 评论 -
java 线程池概念、优缺点、应用场景
Excutors JDK1.5提供的线程池工具类原创 2021-09-04 10:42:24 · 2772 阅读 · 0 评论 -
Comparator 排序函数式接口
Comparator功能主要用于排序,至于其它供着这里不记录,只记录下如何排序:目前常用的排序方法:数组排序、集合排序、集合转化为流排序public class sortTest { public static void main(String[] args) { List<User> usersList = new ArrayList<>(){ { for(int i = 0; i &l.原创 2021-08-30 14:10:10 · 302 阅读 · 0 评论 -
jvm记录
对JVM的理解?java8虚拟机有什么更新?什么是oom?什么是StackOverflowError?有哪些方法分析?JVM常用调优参数?JVM中,对诶加载器的认识?JVM体系概述位置JVM是运行在操作系统之上的,它与硬件 硬件没有直接的交互。体系结构一、类装载器 ClassLoader负责加载class文件,class文件内容在开头有特定的文件标识 ,将calss文件字节码内容加载到内存中,并将这些内容转化成方法区中的运行时数据结构并且ClassLoad原创 2021-08-12 23:17:18 · 202 阅读 · 0 评论 -
线程安全以及线程同步synchronized
项目放在服务器中,而服务器已经将线程的定义、线程对象的创建,线程的启动等都已经实现了,这些代码我们不需要编写。最重要的是:编写的程序需要放到一个多线程的环境中,这些数据在多线程并发的环境下是否是安全的。1、什么时候数据在多线程并发的环境下会存在安全问题?要满足三个条件:(1)多线程并发(2)有共享数据(3)共享数据有修改行为满足上边条件会存在线程安全问题。2、如何解决排队执行解决线程安全问题。这种机制被称为: "线程同步机制"(就是线程不能并发了,要排队)3、两个术语.原创 2021-08-10 17:24:50 · 301 阅读 · 0 评论 -
Thread
线程和线程之间占内存和方法区内存是共享的,但是栈内存独立,一个线程一个栈。假设启动10个线程,或有10个栈空间,每个栈和每个栈互不干扰,各自执行各自的,这就是多线程并发。启动分支线程两种方式:方式一:继承 Thread类,重写run方法(run方法不需要手动调用java虚拟机会自动调用)class MYThread extends Thread{ @Override public void run() { super.run(); }}原创 2021-08-10 11:19:47 · 161 阅读 · 0 评论 -
集合继承结构
在java中,集合分为两大类:一类: 单个方式存储元素,这一类集合中超级父类接口 :java.util.Collection;一类:以键值对的方式存储元素,这一类集合中超级父类接口:java.util.Map;...原创 2021-08-05 08:32:29 · 126 阅读 · 0 评论 -
StringBuffer、StringBuilder
java中的String是不可变的,每一次拼接都会产生一个新字符串,这样会占用的大量的方法区内存,造成内存浪费。字符串答大量拼接可以使用如下两个:StringBuffer、StringBuilder一、StringBuffer字符串缓存区对象。默认字符串容量是16StringBuffer s = new StringBuffer("1");优化创建StringBuffer时,尽可能给定一个最终的初始化容量,这样减少底层数组的扩容。String和String.原创 2021-08-04 21:32:33 · 105 阅读 · 0 评论 -
java8 新特性Stream
概要首先要澄清的是 java8 中的stream 与InputStream和OutputStream是完全不同的概念, stream 是用于对集合迭代器的增强,使之完成 能够完成更高效的聚合操作(过滤、排序、统计分组)或者大批量数据操作。此外与stream 与lambda 表达示结合后编码效率与大大提高,并且可读性更强。应用场景:数据源从多个地方汇集而来(必须从多个数据库中查到的数据)@Data@AllArgsConstructor@NoArgsConstructor@Equals..原创 2021-08-04 19:56:05 · 300 阅读 · 0 评论 -
java DecimalFormat
格式化数字。实例方法:以下使用format() 方法返回的都是一个StringBuffernew DecimalFormat("0")、new DecimalFormat("0.0")1、"0"只取整数 或 取一位小数(取小数时会四舍五入)public static void main(String[] args) { double num = 12.348; // 去所有的整数 DecimalFormat df1 = new DecimalFormat("原创 2021-07-28 12:10:32 · 423 阅读 · 0 评论 -
java String
1、char str.charAt(int index)返回指定索引处的值public static void main(String[] args) { String str = "123"; for(int i = 0; i < str.length(); i ++) { System.out.println(str.charAt(i)); // "1" "2" "3" }}2、int str.codePointAt( int ind...原创 2021-07-27 16:52:57 · 152 阅读 · 0 评论 -
java日期对象 LocalDate
java8新APILocalDateLocalDate和LocalDateTime在实际开发中很常用,因为实体类中往往会存在日期时间字段。类方法:1、LocalDate.now()获取当前时间,返回的是LoCalDate实例,不是一个字符串!!!public static void main(String[] args) { // 默认根据当前操作系统获取日期,也可以指定一个TimeZone类型的参数 LocalDate localDate = LocalDa..原创 2021-07-27 14:43:05 · 2990 阅读 · 0 评论 -
java final关键字
final(1)final修饰的类无法被继承。(2)final修饰的方法无法被覆盖、重写。(3)对于普通类型,final修饰的变量只能被赋值一次。(4)对于引用类型,final修饰的变量是引用类型,只要引用类型不变,值可以被修改。public class AAA { static final private Map<String, Object> map = new HashMap<>(); public static void m...原创 2021-07-27 09:59:45 · 91 阅读 · 0 评论 -
java TimeUtil使用
TimeUtil是在 java.util.concurrent包下的,是一个枚举类。常用方法:TimeUnit. 常量.方法把上边的常量转化为 天、小时、分钟、秒、毫秒以DAYS 和HOURS常量为例:(1)TimeUtil.DAYS.把 天 转化为 秒 .toSeconds、毫秒 .toMillis、天 .toDay、小时 .toHours、分钟 .toMinutes(2)TimeUnit.HOURS.把 小时 转化为 秒 .toSeconds、天 .t...原创 2021-07-20 19:58:49 · 2226 阅读 · 0 评论 -
java File类
File类不能完成文件的读和写。它是文件和路径名的抽象表现形式。C:\lxc 这是一个File对象C:\lxc\a\b\.1.txt 这也是一个FIle对象File类的常用方法(1)file.exists( )判断一个文件是否存在、file.mkdir( ) 创建一个文件夹public class FileTest { public static void main(String[] args) { try { // 先获取一个文...原创 2021-07-12 14:36:03 · 201 阅读 · 0 评论 -
java IO
IOI: InputO:Output通过IO可以完成硬盘文件的读和写。IO流的分类:1、流的方向分类(1)往内存中去读 - 输入;(2)从内存中出来,写 - 输出。2、另一种方式是按照读取数据方式不同进行分类(1)按字节读取有的流是按照字节的方式读取数据,一次读取1个字节byte,等同于一次读取8个二进制位,这种流是万能的,什么类型的文件都可以读取,包括:文本文件、图片、声音文件、视频文件等等··· ···(2)按字符读取有的流是按照字符的方式读取数据的,一次读原创 2021-07-12 10:59:11 · 476 阅读 · 0 评论 -
java日期对象 Date
Date获取年月日时分(获取年月日时分秒这几个方法已经过期)public static void main(String[] args) { // 获取当前系统毫秒数 long time = System.currentTimeMillis(); System.out.println(time); // 日期对象 long time1 = new Date().getTime(); System.out.println(time1);原创 2021-07-09 12:41:08 · 711 阅读 · 3 评论 -
java Lamda表达式
java8新特性,Lamda是一个匿名函数,类似Python中的Lamda表达式、js中的箭头函数,目的简化操作。为什么要使用Lamda?可以对一个接口进行非常简洁的实现。Lamda对接口的要求?接口中定义的抽象方法有且只有一个才可以。传统实现一个接口需要这样做:方法一:// 实现接口,同时必须重写接口中抽象方法class Test implements IntrfacefN { @Override public void getUser(int a, in..原创 2021-06-30 11:11:53 · 186 阅读 · 1 评论 -
java 注解
定义1、如果注解中有属性,那么必须给属性赋值。package com.lxc.Test;// 定义一个注解public @interface Annotation { String name(); // 看似name像一个方法,实际上我们把name称为属性}使用上边注解:package com.lxc.Test;public class Test { @Annotation(name="lxc") public void test() { }.原创 2021-06-25 11:14:19 · 495 阅读 · 1 评论 -
java 类加载器
Jdk自带的类加载器:专门负责加载类的命令、工具JDK中自带3个类加载器:(1)(2)(3)原创 2021-06-20 09:08:38 · 112 阅读 · 0 评论 -
java中关于读取读取文件路径问题
关于文件路径的问题上边在new FileReader() 时,用到了一个文件路径,上边我是在IDEA中的文件路径,但是如果文件换了一个地方,文件的路径也需要跟着改变,移植性太差了!下边记录一种通用的方法,即使代码换了位置了,这样编写也是通用的:注意:使用以下前提是文件必须在类路径下,类路径:凡是在src下的都是类路径。拿到一个文件的绝对路径:package com.lxc.domain;import java.io.FileNotFoundException;import.原创 2021-06-20 08:25:49 · 2590 阅读 · 0 评论 -
java 反射
反射机制:作用可以操作字节码文件的。反射:在java.lang.reflect.*下。 反射机制的相关重要的类有哪一些:(1)java.lang.Class - 字节码文件(2)java.lang.reflect.Method - 字节码中的方法(3)java.lang.reflect.Constructor - 字节码中的构造方法(4)java.lang.reflect.Field - 字节码中的属性字节码...原创 2021-06-18 20:24:58 · 181 阅读 · 0 评论 -
8种基本数据类型对应包装类、自动装箱、拆箱
byteshortintlangfloatdouble原创 2021-06-18 11:37:25 · 444 阅读 · 1 评论 -
java HashSet、TreeSet、HashMap
特征(1)存储时的顺序和取出来的顺序不同(2)不可重复;原创 2021-06-13 12:34:34 · 1202 阅读 · 1 评论 -
java 泛型
JDK8引入:自动类型推断机制(又称为钻石表达式)public class A{ public static void main(String[] args) { List<Animal> l = new ArrayList<>(); Animal a = new Animal(); l.add(a); }}class Animal{ public void say() { Syst.原创 2021-06-12 18:58:33 · 155 阅读 · 0 评论 -
java Collection下的子接口List接口中常用方法
List集合存储的特点:(1)原创 2021-06-12 18:10:30 · 136 阅读 · 1 评论 -
java Collection
Collection常用方法1、add() 向中添加元素add(100) 自动装箱操作,实际上是放进去的一个对象, Integer n = new Integer(100),实际上是把n放进了Collection co = new ArrayList();co.add(1);2、size() 获取集合中元素个数Collection co = new ArrayList();int n = co.size();3、clear() 清空集合Collection co = ne.原创 2021-06-11 15:34:56 · 169 阅读 · 1 评论 -
java ResourceBundle
读取资源属性文件(properties), 然后根据原创 2021-06-10 08:54:38 · 291 阅读 · 0 评论 -
java Object下的finalize()、hashCode()方法
源码// 在Object类中的源码如下: protected void finalize throws Throwable()原创 2021-06-07 14:17:15 · 141 阅读 · 0 评论 -
java Object toSting()和equals()方法
源码:public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());}原创 2021-06-07 13:36:57 · 297 阅读 · 2 评论 -
java 自定义异常类
条件(1)异常类必须继承自Exception;(2)如果想打印自定义的异常类信息,必须重写父类toString方法。// 自定义异常必须继承自Exceptionpublic class MyException extends Exception{ private static int detail; public static void main(String[] args) { } public MyException(int num) { s原创 2021-06-04 10:24:15 · 286 阅读 · 0 评论 -
java 抽象类、接口
定义// 定义抽象类public abstract class Person { // 抽象方法-只有方法名,这个是为了让别人实现的 public abstract void dosomething();}原创 2021-06-03 20:02:14 · 135 阅读 · 0 评论 -
java 多态
重写多态原创 2021-06-03 11:36:44 · 134 阅读 · 1 评论 -
java类 基础
方法:构造方法:构造方法类似ES6中的constructor,用来初始化原创 2021-06-01 17:26:00 · 184 阅读 · 2 评论 -
java基础
Dos命令:原创 2021-06-01 08:38:52 · 189 阅读 · 2 评论