随笔分类 -  Java基础

摘要:打开开发环境服务器(我的服务器应用是单独部署的,几乎没有人访问),偶然间看到命令窗口报异常,java.lang.OutOfMemoryError:heap space,还包括一大堆的其他错误——后面发现其他错误都是内存溢出引起的 用jconsole和jvisualvm尝试打开服务器,行不通——堆内存 阅读全文
posted @ 2018-11-16 10:15 梁桦 阅读(1454) 评论(0) 推荐(0)
摘要:instanceof,两个单词组成,instance of,意为, "… 是 …的实例"。 本身包含null值的判断。但是有不少人,先来个 obj != null,然后来个 obj instanceof Type 阅读全文
posted @ 2018-10-12 10:04 梁桦 阅读(272) 评论(0) 推荐(0)
摘要:反序列化的过程: 读取二进制文件; 读取序列化的对象,读取过程中虚拟机会在当前工程当中寻找序列化的目标类(反序列化类): 如果没找到报ClassNotFoundException; 如果找到了目标类(立即加载该类),但是反序列化类的ID和序列化类的ID不同,则报InvalidClassExcepti 阅读全文
posted @ 2018-10-11 11:36 梁桦 阅读(438) 评论(1) 推荐(0)
摘要:在异常调用链当中:异常对象创建顺序(栈内进行),和异常堆栈链显示顺序恰好相反(出栈顺序) 源码: 执行结果: 以上:上半部分是栈内正常执行顺序;下半部分的异常信息顺序。 阅读全文
posted @ 2018-09-27 23:12 梁桦 阅读(503) 评论(0) 推荐(0)
摘要:异常处理的优势【存在意义】:异常检测者有检测出异常的能力,但不知道在出现该异常的情况下应该怎么处理。故库方法一般会抛出异常给调用者来处理。所以总结而言,异常处理的优势就是,将处理错误(调用者处理)从检测错误(被调用者检测)中分离出来。 异常的分类: 系统错误:内部系统错误,虚拟机抛出。免检。 异常: 阅读全文
posted @ 2018-09-25 01:11 梁桦 阅读(1579) 评论(0) 推荐(0)
摘要:公司项目代码有个奇葩的泛型处理现象,用代码模拟,大致如下: public class Response<T>{}; public class LoginInfo{}; 服务器A中的某个方法返回Response类型对象,然后容器放的是LoginInfo类型的对象,但是方法返回类型里没有声明具体类型; 阅读全文
posted @ 2018-08-27 22:00 梁桦 阅读(129) 评论(0) 推荐(0)
摘要:null还是null,类型不会改变的,也不会报错! 阅读全文
posted @ 2018-08-25 17:04 梁桦 阅读(637) 评论(0) 推荐(0)
摘要:java.lang.String类内存问题详解 字符串理解的难点在于其在堆内存空间上的特殊性,字符串String对象在堆内存上有两种空间: 字符串池(String pool):特殊的堆内存,专门存放String对象,且不会有重复的值。 普通堆内存空间:此处的String对象一般是通过调用new操作符 阅读全文
posted @ 2018-08-13 22:22 梁桦 阅读(1731) 评论(0) 推荐(1)
摘要:logback布局配置信息 阅读全文
posted @ 2018-08-11 15:45 梁桦 阅读(220) 评论(0) 推荐(0)
摘要:hashCode:说白了,简单的就看做一个函数,但是该函数有可能出现:对于某个x值,存在不止一个y值与之对应。这种情况就叫哈希碰撞。 那么: 1、如果hashCode相等,两个对象不一定是同一个对象(比如,两个对象的哈希值出现了哈希碰撞现象),这就证明了hashCode相同的两个对象,未必满足equ 阅读全文
posted @ 2018-08-08 22:35 梁桦 阅读(494) 评论(0) 推荐(0)
摘要:ArrayList的数据结构主体是Object[]数组,数组对象在内存的位置是成块成块的。 1、对数组进行非尾部修改,会引发System.arrayCopy()行为。这就需要对后半部要移动的对象进行内存位置的调整,这是性能瓶颈最关键的地方之一; 2、对数组进行非尾部修改,如果要增加数组长度,倘若要增 阅读全文
posted @ 2018-08-08 22:26 梁桦 阅读(369) 评论(0) 推荐(0)
摘要:一、ArrayList的扩容机制 1、扩容的计算方式是向右位移,即:newSize = this.size + (this.size>>1)。向右位移,只有在当前值为偶数时,才是除以2;奇数时是抹去最后一位,也就是先减1,然后除以2;附上源码,如下图: 2、扩容的上限:ArrayList的长度并不是 阅读全文
posted @ 2018-08-02 03:47 梁桦 阅读(2940) 评论(0) 推荐(0)
摘要:回调(diao):往回调用,反向调用。 英文 call back。call:调用,back:返回,往返。 回调的意思就是杀个回马枪。。。。。。 回调(callback),既然是往回调用,那自然有一个正向调用。也就是说,先有一个call,然后有一个callback。 回调的过程: 类A的a()方法调用 阅读全文
posted @ 2018-07-16 00:33 梁桦 阅读(243) 评论(0) 推荐(0)
摘要:源码: 输出结果: 阅读全文
posted @ 2018-07-08 13:45 梁桦 阅读(1840) 评论(0) 推荐(0)