java
black bean
天道酬勤
展开
-
JVM指令手册
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将...原创 2020-04-21 22:07:05 · 158 阅读 · 0 评论 -
50道经典的java程序题
JAVA基础编程练习50题本文对50道经典的java程序题进行详细解说,对于初学者可以跳过一些逻辑性太强的题目,比如第一题用到了方法的递归,初学者可能不理解,最好先看那些有if、for、while可以简单解决的程序题!但是,对于比较深入学习过的同学,还是希望可以一口气就看完,这是比较全面思维锻炼!【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三...转载 2020-01-17 17:47:43 · 2299 阅读 · 2 评论 -
Java 8 中的 Streams API 详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合...转载 2019-12-09 11:25:59 · 95 阅读 · 0 评论 -
HashMap 在高并发下引起的死循环
HashMap 基本实现(JDK 8 之前)HashMap 通常会用一个指针数组(假设为 table[])来做分散所有的 key,当一个 key 被加入时,会通过 Hash 算法通过 key 算出这个数组的下标 i,然后就把这个 <key, value> 插到 table[i] 中,如果有两个不同的 key 被算在了同一个 i,那么就叫冲突,又叫碰撞,这样会在 table[i] 上...转载 2019-12-02 17:17:33 · 172 阅读 · 0 评论 -
ConcurrentHashMap 1.8为什么要使用CAS+Synchronized取代Segment+ReentrantLock
大家应该都知道ConcurrentHashMap在1.8的时候有了很大的改动,当然,我这里要说的改动不是指链表长度大于8就转为红黑树这种常识,我要说的是ConcurrentHashMap在1.8为什么用CAS+Synchronized取代Segment+ReentrantLock了首先,我假设你对CAS,Synchronized,ReentrantLock这些知识很了解,并且知道AQS,自旋锁...转载 2019-12-02 14:44:21 · 466 阅读 · 0 评论 -
Hashmap实现原理及扩容机制详解
目录HashMap基础HashMap实现原理Node和Node链拉链法关于Node数组 table散列算法HashMap和红黑树关于TreeNode红黑树基础HashMap扩容机制JDK1.7下的扩容机制JDK1.8下的扩容机制HashMap基础HashMap继承了Abstract...转载 2019-11-28 17:45:41 · 848 阅读 · 1 评论 -
ArrayList 与 LinkedList 异同
1.ArrayList 与 LinkedList 的继承与实现public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializablepublic class LinkedList...原创 2019-11-27 15:42:36 · 177 阅读 · 0 评论 -
ArrayList 与 LinkedList 的效率问题
最近查看ArrayList 与 LinkedList 的效率问题,网上答复基本都是ArrayList底层是用数组来保存对象的,这种方式将对象放在连续的位置中。优点:可以通过数组下标快速的拿到值,查询时高效。缺点:每一次添加和删除都需要将操作的元素后面的元素们全部移动,非常麻烦。LinkedList则是将对象放在独立的空间中,而且在每一个空间中存放下一个链接的索引。优点:...原创 2019-11-27 15:40:05 · 168 阅读 · 0 评论 -
java种数组长度问题
java种数组的长度是用 int类型标识的,也就是说 数组的理论最大长度是Integer.MAX_VALUE2147483647,其中 像String ArrayList 底层都是数组,所以理论最大长度都是2147483647不过这些都是理论值,具体能放多少与JVM内存有关,可以在执行java命令时加上-Xmx1024m就将JVM内存最大置为了1G,默认情况下是6...原创 2019-11-26 17:07:24 · 834 阅读 · 0 评论 -
StringBuffer与StringBuilder
StringBuffer与StringBuilder的异同看代码public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence public final class StringBuffer extends ...原创 2019-11-26 16:06:52 · 132 阅读 · 0 评论 -
java字符串的5种拼接方式
一、java字符串拼接方式都有那些?1.+号拼接2.concat拼接耗时3.join拼接4.StringBuffer拼接5.StringBuilder拼接二、拼接的耗时如何?那种拼接效率高?测试代码如下:public class test4 { public static void main(String[] args) { String ...原创 2019-11-26 15:27:36 · 9362 阅读 · 0 评论 -
为什么重写EQUALS时必须重写HASHCODE方法
一 :string类型的==和equals的区别:结论:"=="是判断两个字符串的内存地址是否相等,equals是比较两个字符串的值是否相等。 String s1 = new String("java");String s2 = new String("java");System.out.println(s1==s2); //falseSystem.out.print...原创 2019-11-26 14:01:50 · 1130 阅读 · 0 评论 -
String源码详解
1.String的继承实现关系因为被final修饰,因此是不可继承的String类,避免被他人继承后修改。实现了三个接口。可序列、可比较,有序。public final class String implements java.io.Serializable, Comparable<String>, CharSequence2.String的本质是什么Stri...原创 2019-11-26 13:42:09 · 409 阅读 · 0 评论 -
java的特性和优势
java三大特性1.封装封装的定义:首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系为什么需要封装:封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现2.继承Java的类可以...转载 2019-11-19 14:16:02 · 213 阅读 · 0 评论 -
lombok安装及应用
lombok安装及应用可以查看:http://blog.didispace.com/java-lombok-1/这里介绍的比较全面。下面对我再安装及使用的过程中遇到的一些问题进行记录:1、idea使用maven导入lombok后get set不能正常使用,需要安装lombok插件2、安装完lombok插件后getter setter 仍不能正常使用,这时需要进行如下配置:选...转载 2017-06-14 19:47:40 · 276 阅读 · 0 评论 -
freemark模板导出pdf
使用freeMark作为模板导出pdfpom引入如下: <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf-itext5</artifactId> <version>9.1.1<...原创 2017-06-08 20:26:50 · 2657 阅读 · 0 评论 -
springBoot 集成druid
在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成。1. 环境描述springBoot 1.4.0.RELEASE, JDK 1.82. Druid介绍 Druid是一个JDBC组件,它包括三部分:DruidDriv...转载 2017-05-23 21:29:11 · 1182 阅读 · 0 评论 -
ActivityWrongDbException:version mismatch:activiti library version is '5.11',db version is null Hint
最近工作中遇到个很奇怪的问题,项目总是报ActivityWrongDbException:version mismatch:activiti library version is '5.11',db version is null Hint,再网上找了很久也没有找到合适的答案,最后被折磨了一天终于找到了问题所在,在这记录下:这个是由于数据库内的版本跟实际的版本不匹配导致的(ACT_GE_P...原创 2016-08-30 17:09:15 · 8550 阅读 · 2 评论 -
做可配置的webservice接口调用
最近公司接个项目,要跟9个或者更多个系统对接,需要写webservice接口,但是这么多一个个写的话很麻烦,而且还是不定个数的对接,所以思来想去,还是写个可配置的吧,步骤如下:1、给出统一的接口标准,统一使用cxf 的标准wsdl 格式的webservice2、给出统一接口标准后,所有系统调用方法,所传的参数,返回值格式均一致,这样的话就可以开始表写配置文件(WebService.prop...原创 2016-08-15 18:00:18 · 5510 阅读 · 1 评论 -
使用log4jdbc,打印输出完整的sql
log4jdbc的简单介绍 使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况。 平时开发使用的ibatis,hibernate,spring jdbc的sql日志信息,有一点个缺点是占位符与参数是分开打印的,如果想要拷贝sql至PLSQL Developer客户端直接执行,需要自己拼凑sql。而log4jdbc是在jdbc层的一个日志框架,可以将...转载 2016-08-05 19:35:33 · 2877 阅读 · 0 评论 -
maven引入json-lib失败原因
今天搭框架开始实现前台的json了,于是逐个找适合的框架,发现要实现json还要引入一个jar包叫json-lib好,看起来挺简单的,我就开始用maven倒入了,很自然的,我就去mvnrepository.com去查dependency的写法找到的是这样的[html]view plaincopy<dependency> <group...转载 2016-08-09 19:44:10 · 967 阅读 · 0 评论 -
写一个亮的日程管理
最近在搞日程管理的,在网上翻来覆去的找了好久,终于找到个不错的,果断下载,下载后发现好多都不行,但看着效果还不错,忍了,看源码修改吧,最后时限效果:可以跟后台正常交互,可以做增加删除下载路径:http://download.csdn.net/detail/heidou_2016/9601718...原创 2016-08-12 13:59:54 · 605 阅读 · 0 评论 -
fastjson更新的坑
这次由于业务需求,将项目中的fastjson由1.2.7更新至1.2.56,不料上线后系统间的签名 验签接口 始终过不去,百思不得其解,在网上翻找了很多资料,最后发现原来是在解析的过程中出现了问题,测试代码如下:public class JsonTest { public static void main(String[] args) { String strRequ...原创 2019-04-11 16:29:09 · 3907 阅读 · 0 评论