java
奔波儿灞爱上灞波儿奔
勤学如春起之苗,不见其长,日有所增。辍学如磨刀之石,不见其损,日有所亏。
展开
-
Java虚拟机中类加载机制详解
Java虚拟机中类加载机制详解1,什么是java类加载机制**首先在java中,是通过编译来生成.class文件(可能在本地,或者网页下载),java的类加载机制就是 将这些.class文件加载到我们的工作内存当中去,并为之生成Java.lang.Class对象 之后当我们启动jvm虚拟机的时候,会随之形成 “初始类加载层次结构” 初始类加载层次结构是由三个类加载器原创 2017-07-23 23:30:31 · 305 阅读 · 0 评论 -
单分派,多分派
方法的接收者和方法的参数统称为方法的宗量。 根据分派基于宗量多少(接收者是一个宗量,参数是一个宗量),可以将分派分为单分派和多分派。单分派是指根据一个宗量就可以知道调用目标(即应该调用哪个方法),多分派需要根据多个宗量才能确定调用目标。如下代码:package diptch;public class DynamicDispatch { static class QQ {}原创 2018-01-10 19:46:14 · 601 阅读 · 0 评论 -
hibernate save和persist方法的区别
save:save方法如果在保存对象之前设置了id,那么该id也会被认为是无效的。persist:体现的是持久化,persist体现的是持久化理念,也包括id.如果在保存之前设置了id,但主键策略由数据库维护,造成冲突,会报出异常。...原创 2018-03-07 11:04:48 · 463 阅读 · 0 评论 -
log4j配置略解
# trace(堆栈)< DEBUG < INFO (信息)< WARN < ERROR < FATAL(致命)### set log levels ###log4j.rootLogger=debug, stdout //debug输出级别,使用stdout输出器,(还有可以用文件输出器)### \u628A\u65E5\u5FD7\u4FE1\u6...原创 2018-03-05 17:15:40 · 177 阅读 · 0 评论 -
Java集合整理(List and Set and Map)
集合的由来 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 数组和集合的区别 区别1 : 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值集合只能存储引用数据类型(对象)集合中也可以存储基本数...原创 2018-03-06 12:23:32 · 239 阅读 · 0 评论 -
事物
事务的特性 原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。转账前和转账后的总金额不变。 隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性...原创 2018-03-06 14:36:53 · 184 阅读 · 0 评论 -
lucene搭建及应用。
去官网下载Lucene随意一个版本,百度很多下载教程: 我这里下载的是最新的版本 下面是几个较为核心的包:lucene-analyzers-common-7.2.1.jarlucene-core-7.2.1.jarlucene-facet-7.2.1.jarlucene-highlighter-7.2.1.jarlucene-memory-7.2.1.jarlucene-q...原创 2018-04-08 17:00:20 · 567 阅读 · 0 评论 -
java集合整理 List源码解析
数组:/** * 数组大小固定,存储有序(存和取顺序一直) * 直接打印输出对象需要重写toString()方法,否则会调用父类的toString()打印的是引用地址值 */ Student[] students = new Student[5]; students[0] = new Student(&quot;张三&quot;...原创 2018-05-19 18:37:27 · 706 阅读 · 0 评论 -
JVM如何优化
一、JVM内存模型及垃圾收集算法1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX:MaxPermSize 等参数调整其大小。年轻代(N...原创 2018-05-21 13:39:50 · 13684 阅读 · 8 评论 -
静态分派
Java面向对象的三个基本特征:继承,封装,多态,我们这次来看Java虚拟机如何实现,这里说的不是语法上的实现。 静态分派: 在Java语言中符合“编译期可知,运行期不可变”这个要求的方法,主要包括静态方法和私有方法两大类,前者与类型直接关联,后者在外部不可被访问,这两种方法各自的特点决定了他们不可能通过继承或别的方式重写其他版本,因此他们适合在类加载阶段进行解析。 静态方法、私有方法、实例原创 2018-01-10 16:55:39 · 193 阅读 · 0 评论 -
HttpSession
HttpSession 它也是一个域对象: session servletContext request 同一个会话下,可以使一个应用的多个资源共享数据 cookie客户端技术,只能存字符串。HttpSession服务器端的技术,它可以存对象。HttpSession request.getSession():内部执行原理 1、获取名称为JSESSIONID的co原创 2018-01-21 16:52:18 · 183 阅读 · 0 评论 -
Java堆内存垃圾回收机制(GC)详解 (引用计数法,根搜索法详解)
什么对象需要回收 在Java堆中存放着Java程序中新建的对象,也就是我们开发过程中 new,newarray 创建的对象。但没有明确的代码去释放他们。垃圾回收机制就是释放这些不再被程序所使用的对象的过程。为什么要使用垃圾收集器 在虚拟机的堆内存中,当某些对象失去引用,对于虚拟机内存而言就是”垃圾”,虚拟就就会回收这部分内存,以供后续的新对象使用。除了释放不在被引用的对象外,原创 2017-11-29 16:21:00 · 3009 阅读 · 0 评论 -
Jvm 标记-清除法,复制算法,分代收集算法
标记-清除法: 最为基础的算法,“标记清除法”跟他的名字一样,算法分为两个阶段,”标记”阶段,跟”清除”阶段。说他是最基础打的算法,是因为后续的算法都是以他为基础而改进得到的, 他主要有两个不足:一是标记跟清除的效率都不高,另一方面,在回收之后会有大量的不连续空间碎片,这就会导致之后程序需分配大块连续的内存时,无法找到在足够的连续内存而不得不提前进行另一次的垃圾回原创 2017-12-01 09:33:12 · 3377 阅读 · 0 评论 -
JVM垃圾收集器
垃圾回收算法是内存回收的方法论,而收集器是内存会说欧的具体实现,Java虚拟机规范中对垃圾回收器没有任何规定,不同厂商,不同版本的虚拟机都会有很大的差别。 下图是各种垃圾收集器的搭配使用的关系。 Serial收集器: Serial Garbage Collector: 算法:采用复制算法 内存区域:针对新生代设计 执行方式:单线程、串行原创 2017-12-01 17:20:59 · 221 阅读 · 0 评论 -
GC日志理解
阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。在本书的第1版中没有专门讲解如何阅读分析GC日志,为此作者收到许多读者来信,反映对此感到困惑,因此专门增加本节内容来讲解如何理解GC日志。 每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样。但虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性,原创 2017-12-01 17:39:36 · 154 阅读 · 0 评论 -
JVM垃圾收集器参数总结
参照深入JVM虚拟机原创 2017-12-01 22:23:38 · 175 阅读 · 0 评论 -
JVM内存分配与回收策略
在基于Serial/Serial Old收集器(ParNew /Serial Old收集器组合基本也符合)下的的内存回收策略。对象优先分配在Eden区域: 在大多数情况下,新生代的对象在Eden区重分配,当Eden区域没有足够的空间分配时,虚拟机会进行一次Minor GC.V M参数:-verbose:gc -Xms200M -Xmx200M -Xmn100M -XX:+PrintG原创 2017-12-02 17:38:58 · 227 阅读 · 0 评论 -
JVM何时会进行全局GC
1、System.gc()方法的调用此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数。强烈影响系建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc。2、老年代代空间不足老年代空间只有在新生代对象转载 2017-12-02 17:52:55 · 818 阅读 · 0 评论 -
Java 中URL 类的使用
最近写第三方短信验证时使用了Java中的URL类,简单的几行代码就可以高效完成。 代码如下String contentUrlEncode = URLEncoder.encode(content,encode); buffer.append("http://ceshi/api/sendto/mm.php?username="+username+"&password_原创 2018-01-11 18:01:18 · 670 阅读 · 0 评论 -
Java集合之 Map源码解析
HashMap: 也是我们平时开发中使用频率很高的双列集合,直接父类是AbstractMap,是基于hash表存储的一种集合。 几个重要的类变量: //hash表的初始化大小,默认为16.是基于数组实现的。 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 ...原创 2018-06-04 17:14:03 · 319 阅读 · 0 评论