程序猿洞晓
Java虚拟机那些事儿(十一):类加载的过程 Java虚拟机那些事儿(十一):类加载的过程
“加载”是“类加载”过程的一个阶段,不能混淆这两个名词。在加载阶段,虚拟机需要完成 3 件事。第一通过类的全限定名获取该类的二进制字节流。第二将二进制字节流所代表的静态结构转化为方法区的运行时数据结构。第三在内存中创建一个代表该类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问入口。
2018-09-09
ORM框架之Mybatis(五):一级缓存和二级缓存初步认识 ORM框架之Mybatis(五):一级缓存和二级缓存初步认识
Mybatis本身提供了两个级别的缓存分别是一级缓存的二级缓存,两个缓存的实现原理都是相同的,不同的是两种缓存的作用域不同,一级缓存作用域是一个SqlSession的生命周期,SqLSession发生了flush或者close,缓存就会被清空,而二级缓存的作用域是命名空间(namespace)级别,一个命名空间下的select查询……
2018-09-07
Java虚拟机那些事儿(十):类加载的时机 Java虚拟机那些事儿(十):类加载的时机
加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始(注意是“开始”,而不是“进行”或“完成”),而解析阶段则不一定:它在某些情况下可以在初始化后再开始,这是为了支持 Java 语言的运行时绑定。Java 虚拟机规范没有强制约束类加载过程的第一阶段(即:加载)什么时候开始,但对于……
2018-09-05
Java虚拟机那些事儿(九):类文件结构 Java虚拟机那些事儿(九):类文件结构
JVM 只认识 .class 文件,它不关心是何种语言生成了 .class 文件,只要 .class 文件符合 JVM 的规范就能运行。 目前已经有 JRuby、Jython、Scala 等语言能够在 JVM 上运行。它们有各自的语法规则,不过它们的编译器 都能将各自的源码编译成符合 JVM 规范的 .class 文件,从而……
2018-09-04
拼接字符串String、StringBuilder、StringBuffer你用对了吗 拼接字符串String、StringBuilder、StringBuffer你用对了吗
字符串拼接,很简单的一个操作,JDK给出了几种不同的拼接方法,还提供了对应封装类。早在JDK1.0的时候就提供了StringBuffer这个类用来做字符串的拼接,为了多线程下的线程安全问题,在StringBuffer类中的方法上都加了synchronized锁,这种考虑是没有问题的。后续为了提高单线程下(不存在线程安全问题)提……
2018-09-02
ORM框架之Mybatis(四):映射文件resultMap标签详解 ORM框架之Mybatis(四):映射文件resultMap标签详解
Mybatis的映射文件中顶级的标签并不多,之前有说过select、update、delete、insert、sql等标签,resultMap在之前的文章也有提过,但是当时也是简单的提过,其实这个标签里面的内容很多,可简单可复杂。正常开发中简单的基本都在使用,但是涉及到复杂的用的就少啦。resultMap内和关联查询有关的标签分别是……
2018-08-31
ORM框架之Mybatis(三):动态SQL和批处理 ORM框架之Mybatis(三):动态SQL和批处理
看着标题感觉很高大上,实际上的确不算low。动态SQL是一些标签对动态拼接SQL操作的优化,使代码更加的优雅、简洁。再就是批处理,常用的就是foreach标签,但是还有另一种方式也是可以了解一下的,虽然在实际开发上不怎么用,但是知道还是必须滴,从功利来说,面试要是被问到可以用来做加分项,从心理上来说,同事间聊起来可以……
2018-08-28
Java虚拟机那些事儿(八):JVM 性能调优 Java虚拟机那些事儿(八):JVM 性能调优
垃圾收集进行时,虚拟机虽然会对直接内存进行回收, 但是直接内存却不能像新生代、老年代那样,发现空间不足了就通知收集器进行垃圾回收, 它只能等老年代满了后 Full GC,然后“顺便”帮它清理掉内存的废弃对象。 否则只能一直等到抛出内存溢出异常时,先catch掉,再在catch块里大喊 “System.gc()”。要是虚拟……
2018-08-26
ORM框架之Mybatis(二):映射文件 ORM框架之Mybatis(二):映射文件
Mybatis的mapper映射文件中有很多常用的标签,如insert、update、delete、select、resultMap、sql等,也会有很多属性,如resultType、reusltMap、parameterType、parameterMap、useGeneratedKeys、keyProperty等。相信这些在项目都有使用,但是这里还是要梳理一下(知识体系都是在不断梳理中完善和获得新知)。
2018-08-24
Java虚拟机那些事儿(七):内存分配与回收策略 Java虚拟机那些事儿(七):内存分配与回收策略
对象的内存分配,就是在堆上分配(也可能经过 JIT 编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的 Eden 区上,少数情况下可能直接分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器组合以及相关的参数配置。大多数情况下,对象在新生代 Eden 区中分配。当 Eden 区没有足够空间进行分配时,虚拟机……
2018-08-20
ORM框架之Mybatis(一):基础配置 ORM框架之Mybatis(一):基础配置
对象关系映射(ORM Obeject Relational Mapping),ORM模型就是数据库的表与简单Java对象 (POJO)的映射模型,它主要解决数据库数据和POJO对象的相互映射。早期的时候Hibernate使用的比较多,但是由于过于笨重,近几年慢慢的被Mybatis替代了。可以说现在百分之九十以上的公司都是用的Mybatis。
2018-08-16
http基础知识点了解一下 http基础知识点了解一下
在 OSI 七层模型中,HTTP协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 HTTP 协议。使用 HTTP 协议时,客户端首先与服务端的 80 端口建立一个 TCP 连接,然后在这个连接的基础上进行请求和应答,以及数据的交换。HTTP 有两个常用版本,分别是 1.0 和 1.1。主要区别在于 HTTP 1.0 中……
2018-08-13
12 / 15