
Java基础
正经黑天鹅
这个作者很懒,什么都没留下…
展开
-
Java static
静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问.public class Singleton {//声明为 private 避免调用默认构造方法创建对象private Singleton() {}// 声明为 private 表明静态内部该类只能在该 Singleton 类中被访问private static class SingletonHolder {private static final Singleton INSTANCE = new Singleton();}p原创 2020-05-20 16:41:22 · 217 阅读 · 0 评论 -
Logback日志小记
日志系统Java中常用的日志系统有很多,比如logging、log4j、logback等等。广泛使用的是logback+slf4j,同时代码里加入Lombok的插件,这样快速方便的使用日志。一、包引入<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logbac...原创 2020-04-09 00:00:00 · 715 阅读 · 0 评论 -
对JDBC、DataSource、hibernate、MyBatis的一点看法
1、JDBC JDBC是一种基准,是java连接各大厂商的关系型数据库的接口规范。/**** @description: JDBC连接MySQL数据库进行CRUD操作* * 步骤: * 1、加载驱动和注册数据库信息。 * 2、打开Connection,获取PreparedStatement对象。* 3、通过PreparedStatement执行SQL,返回结果到ResultSe...原创 2020-03-27 22:28:39 · 215 阅读 · 0 评论 -
Java泛型
偶然看见这种泛型的方式<T extends Comparable<? super T>>,一时间懵逼了,这写的是啥,然后找资料去理解这种泛型定义。 要理解这种类型的泛型,先理解以下这种泛型的含义:<T extends Comparable<T>> 这种泛型的很好理解,就是类型T必须是或者继承某种类型。这种类型就是需要实现Compara...原创 2020-03-10 11:22:00 · 582 阅读 · 0 评论 -
Arrays.asList
Arrays.asList()方法是Java中常见的将数组转换成列表的方式。String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray);List<String> myList = Arrays.asList("Apple","Ban...转载 2020-03-09 23:54:50 · 138 阅读 · 0 评论 -
fastjson转换
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-05-26 23:05:18 · 166 阅读 · 0 评论 -
java 反射
Spring中往往一个注解(如@Controller@Service)就可以完成一些复杂的操作。注解应用于反射之上,反射是java的重中之重。反射强调的是运行时状态,获取类的方法和属性的一些信息。 通过反射获取类的几种方式:1、通过Class.forName Class&amp;lt;?&amp;gt; clazz = Class.forName(&quot;java.lang.String&quot;...原创 2019-05-26 21:49:31 · 220 阅读 · 0 评论 -
Java基础-线程池
Java应用程序需要运用线程,线程的出现使得程序能进行并行化操作。但如果遇上并行化量大,且运行时间短的场景来说,每个任务都创建一个线程,其实并不合适,启动和销毁线程占用大量的资源,所以,用线程池,重复使用线程完成任务。一、线程池的基本概念 已知一个工厂的流水线上有正式工人10人,工厂刚开工任务单比较少,每来一个工作单就让一个空闲的工人离开办公室安排到生产线上劳作,当任务单比较多,10个工...原创 2018-11-22 19:53:36 · 112 阅读 · 0 评论 -
Java-线程基础
一、线程的状态New新建Runnable可运行Running运行Blocked阻塞Dead死亡 New新建,就是创建一个线程。 Runnable可运行,线程启动start,等待cpu调度。 Running运行,线程正在执行,cpu正在调度。 Blocked阻塞。由于某种原因,线程暂停,释放cpu的使用权。直到结束,重新返回就绪状态,等待cpu调用。 Dead死亡,...原创 2018-11-21 17:55:26 · 121 阅读 · 0 评论 -
Java - 数据结构
什么是数据结构?数据结构是计算机存储、组织数据的方式。数据的基本功能是对数据的增删改查,不同的数据结构效率和侧重点不一样。常见数据结构 数据结构 优点 缺点 数组 随机访问快 删除、指定位置插入慢 链表 插入和删除快 随机访问慢 树 查找快 删除比较复杂 图 适用多对多 算法复杂 Hash 查...原创 2018-10-17 10:03:41 · 144 阅读 · 0 评论 -
Java基础 - java容器
Java的容器是用来存放对象数据,根据不同的业务需求选择不同的容器类型(List、Set、Queue、Map)。 通过上述的图可以了解到Java的容器大致分成两类map类和Collection类Collection 对象集合 List 对象有顺序集合Set 对象不重复集合Queue 对象先进先出集合Map 对象键值对集合一、Collection 容器1.1...原创 2018-05-31 18:57:35 · 180 阅读 · 0 评论 -
Java基础 - 为什么接口默认的成员描述为 public static final?
我想对于每个Java程序员来说,接口都不陌生,接口中的方法也经常使用。而接口中的成员变量,就显得用得少一点,而对于成员变量为什么必须声明为public static final,可能就更不清楚了,而且我觉得大多数不清楚为什么要用static 和 final。下面我们就来解释一下。一、为什么要用final? 首先,我们应该明白一个问题。接口,实际上比抽象类更加抽象,它是最高层次的抽...转载 2018-05-18 10:26:55 · 212 阅读 · 0 评论 -
Java基础 - Java中的正则表达式
正则表达式是对字符串的强大的处理工具,可以对字符串进行查找、提取、分割、替换操作。所谓正则表达式,可以把他看成匹配字符串的模板。 一、正则表达式中允许使用的字符 字符 解释 x 任意合法字符x \0xxx 8进制表示法表示的字符 \xhh 16进制表示法表示的字符 \uhhhh 16进制表示的Unicode字符...原创 2018-05-04 18:12:21 · 165 阅读 · 0 评论 -
Java基础 - java中构造的初始化过程
一直没搞懂Java的构造过程,索性直接写一篇博客记录下。下面的代码都是验证过的。 结论:执行父类的static代码块,由定义的先后顺序执行,只执行一次执行子类的static代码块,由定义的先后顺序执行,只执行一次执行父类的类成员初始化,由定义的先后顺序执行执行父类的初始化块,由定义的先后顺序执行执行父类的构造方法执行子类的类成员初始化,由定义的先后顺序执行执行子类的初始...原创 2018-05-17 16:02:21 · 159 阅读 · 0 评论 -
Java中时间日期
本人之前做的是.net开发,在.net中对于时间的处理很方便,一个Date类就基本搞定了对时间操作的基本处理。但是在Java中就不太一样了,虽然Java中也有Date类,但Date多数用于获取或者格式化时间输出,如果涉及到对时间的自定义格式化输出或者对时间日期\时间的加减,就要配合其他类一起完成。一、时间的比较 Date类在Java中属于元老级,但由于前期对Date类的设计相当糟糕,...原创 2018-05-04 11:31:33 · 126 阅读 · 0 评论