JavaSE
itcats_cn
学习技术,分享技术
展开
-
JAVA获取当前日期或指定日期的前N天的日期集合
因为最近的业务系统需求,前端有两个时间选择框,分别为startTime和endTime,用户展示一段时间内的折线图,但是如果用户选择的时间段太长,折线图时间轴太密集,展示效果十分不佳,于是我使用java代码书写了一个时间工具类,可以返回当前日期或指定日期的前N天的日期集合,如果传入的开始时间和结束时间间隔太大,还可以自动适应时间。废话不多说,直接上代码。原创 2020-03-20 14:53:00 · 2285 阅读 · 0 评论 -
JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)@Test:测试方法,在这里可以测试期...转载 2018-08-11 14:50:51 · 654 阅读 · 0 评论 -
Java泛型面试总结【转载】
1. Java中的泛型是什么 ? 使用泛型的好处是什么?泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。好处:1、类型安全,提供编译期间的类型检测2、前后兼容3、泛化代码,代码可以更多的重复利用4、性能较高,用GJ(泛型JAVA)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进一步优...转载 2018-10-24 11:13:44 · 192 阅读 · 0 评论 -
集合转数组的toArray()和toArray(T[] a)方法
1、List的toArray ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法: (1)list.toArray(); (2)list.toArray(T[] a); 对于第一个重载方法,是将list直接转为Object[] 数组; 第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化...转载 2019-02-22 14:25:06 · 283 阅读 · 0 评论 -
Java技术面试必备基础知识
本文包含了技术面试必备的基础知识,浅显易懂,你不需要花很长的时间去阅读和理解成堆的技术书籍就可以快速掌握这些知识,从而节省宝贵的面试复习时间。包含:(1)算法.剑指 Offer 题解,Leetcode 题解.(2)操作系统.计算机操作系统,Linux.(3)网络.计算机网络,HTTP,Socket.(4)面向对象.设计模式,面向对象思想,(5)数据库.数据库系统原理,SQL,Leetcode-Database 题解,MySQL,Redis.(6)Java.....转载 2019-02-27 00:31:29 · 840 阅读 · 1 评论 -
StringUtils中 isNotEmpty 和isNotBlank的区别【Java字符串判空】
StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理。例如,如果输入为null则返回也是null等,具体可以查看源代码)。除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用StringUtils.xxx()原创 2019-04-20 17:06:33 · 1095 阅读 · 0 评论 -
Java数组/List集合 转 JSON 字符串
1. 导入fastjson依赖2.转换代码public class Test{ public static void main(String[] args) { /* 需求: 将product数组(List) 转成 JSON 字符串 业务场景: 数据库查出的数据,经过数据分类处理后得到List/Arr,需要到前端Ec...原创 2019-07-09 16:31:04 · 3405 阅读 · 0 评论 -
Java8新特性 利用流和Lambda表达式对List集合进行处理
最近在做项目的过程中经常会接触到 lambda 表达式,随后发现它基本上可以替代所有 for 循环,包括增强for循环。也就是我认为,绝大部分的for循环都可以用 lambda 表达式改写。lambda表达式有它自己的优点:(1)简洁,(2)易并行计算。尤其适用于遍历结果,循环计算数值或者赋值的时候非常方便。缺点: (1)若不用并行计算,很多时候计算速度没有比传统的 for 循环快。 ...转载 2019-07-11 17:16:49 · 1443 阅读 · 0 评论 -
Lombok简介
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok。IntelliJ IDEA 使用它的方法先安装插件Paste_Ima...转载 2018-06-23 22:17:40 · 184 阅读 · 0 评论 -
logback-spring.xml
按日期每天输出日志,输出到指定文件夹,并且按日志的级别进行了过滤功能,适合生产环境下的日志输出logback-spring.xml,放入项目中可以直接引用,springboot默认读取logback-spring.xml <?xml version="1.0" encoding="UTF-8" ?><configuration> <app...原创 2018-06-23 23:41:37 · 1464 阅读 · 0 评论 -
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定...转载 2018-07-30 23:47:01 · 144 阅读 · 0 评论 -
java的arrayCopy用法
先贴上语法:public static void arraycopy(Object&amp;nbsp;src, int&amp;nbsp;srcPos, Object&amp;nbsp;dest, ...转载 2018-08-06 22:53:44 · 1560 阅读 · 0 评论 -
Java内置注解与自定义注解
什么是注解?Jdk1.5新增新技术,注解。很多框架为了简化代码,都会提供有些注解。可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。注解分类:内置注解(也称为元注解 jdk 自带注解)、自定义注解(Spring框架) 什么是内置注解 比如(1) @SuppressWarning...原创 2018-08-29 11:26:46 · 655 阅读 · 0 评论 -
设计模式的六大原则
1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原...原创 2018-08-29 12:27:17 · 163 阅读 · 0 评论 -
Java常用设计模式
什么是设计模式?设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式的分类?总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式...原创 2018-08-29 15:02:37 · 458 阅读 · 0 评论 -
Java实现定时任务的多种方式
Java实现定时任务的多种方式1、Thread类中Thread.sleep(1000); //在while(true)循环内,表示每个1秒执行一次2、使用Timer类执行定时任务/** * 使用Timer类实现定时任务*/public class Demo02 { public static void main(String[] args) { TimerTask t...原创 2018-09-08 22:01:04 · 787 阅读 · 0 评论 -
java中创建对象的几种方式
1.使用new关键字使用 new 关键字创建对象,实际上是做了两个工作,一是在内存中开辟空间,二是初始化对象。但是new 关键字只能创建非抽象对象。2. 使用反射创建对象反射是对于任意一个正在运行的类,都能动态获取到他的属性和方法。反射创建对象分为两种方式,一是使用Class类的new Instance() 方法,二是使用Constructor类的new Instatnce() 方法。...转载 2018-08-27 16:14:33 · 430 阅读 · 0 评论 -
Java枚举类的底层实现
这题来自于牛客网,后了解了枚举类的实现原理,理解了这题的真正意思。 枚举类在后台实现时,实际上是转化为一个继承了java.lang.Enum类的实体类,原先的枚举类型变成对应的实体类型,上例中AccountType变成了个class AccountType,并且会生成一个新的构造函数,若原来有构造函数,则在此基础上添加两个参数,生成新的构造函数,如上例子枚举类中:枚举类的构造方法:...原创 2018-08-06 22:46:33 · 2936 阅读 · 2 评论 -
使用POI从数据库动态获取并导出excel文档
public String exportXls() throws IOException{ //查询所有的分区数据 List<Entity> list = xlsService.findAll(); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); //1.创建sheet HSSFSheet ...原创 2018-05-05 15:30:38 · 2624 阅读 · 0 评论 -
Java实例化子类的过程
在构造方法中要首先创建父类的对象,所以需要将显式调用父类构造方法的语句放于子类构造方法的第一行(默认系统会添加对父类无参构造函数super()的调用)注意:构造方法不能被继承 子类的实例化过程:子类实例化时会先调用父类的构造方法如果父类中没有默认的构造方法,在子类的构造方法中必须显示的调用父类的构造方法子类的构造方法中默认有一条super()语句最后子类才被实例化...原创 2018-07-21 22:16:38 · 710 阅读 · 0 评论