- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 分析Class.forName()和ClassLoader.loadClass在数据库连接的应用
一 Java类装载过程1.装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 2.链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字节码验证,符号引用验证) 准备:给类的静态变量分配并初始化存储空间; 解析:将常量...
2018-04-06 14:16:50 419
原创 类加载的问题
Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类加载器能够理解NoClassDefFoun...
2018-04-05 20:13:08 199
转载 Iterator和ListIterator区别
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和Li...
2018-04-04 21:29:19 3583
转载 详解Java中的内存泄漏
详解Java中的内存泄漏1.Java内存回收机制不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Jav...
2018-04-01 20:43:04 148
原创 BlockingQueue实现生产者和消费者
BlockingQueue适用场景:生产者线程在一端生产,消费者线程在另一端消费,可以安全的实现生产者消费者问题(多个生产者 多个消费者)生产者:import java.util.concurrent.BlockingQueue;public class Producer implements Runnable { private BlockingQueue<String>...
2018-04-01 15:55:03 186
转载 MySQL索引实现
一、数据库索引所采用的数据结构B-/+Tree及其性能分析到这里终于可以分析为何数据库索引采用B-/+Tree存储结构了。上文说过数据库索引是存储到磁盘的而我们又一般以使用磁盘I/O次数来评价索引结构的优劣。先从B-Tree分析,根据B-Tree的定义,可知检索一次最多需要访问h-1个节点(根节点常驻内存)。数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需...
2018-03-24 20:44:16 170
原创 jackson操作json数据
Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换, Jackson库,是基于Java语言的开源JSON格式解析工具,整个库包含3个jar包:jackson-core.jar——核心包(必须),提供基于“流模式”解析的API。jackson-databind——数据绑定包(可选),...
2018-03-17 17:40:55 278
转载 MySQL 使用explain分析sql语句的查询效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:EXPLAIN tbl_name或:EXPLAIN [EXTENDED] SELECT select_options前者可以得出一个表的字段结构等等,后者主要是给出相关的一...
2018-03-15 23:31:38 635
转载 B树、B+树和B*树
B树(B-树) 是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非叶子结点的关键字个数=指向儿子的指针...
2018-03-15 16:16:36 119
转载 Java的三种代理模式
1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人...
2018-03-15 14:46:26 123
原创 多线程的死锁
在多线程编程中,除了要解决数据访问的同步与互斥之外,还需要解决的重要问题就是多线程的死锁问题。所谓死锁: 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外部处理作用,它们都将无限等待下去。死锁形成的条件:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源...
2018-01-10 17:53:25 204
转载 Tomcat处理一个HTTP请求的过程
假设来自用户的请求为: http://localhost:8080/wsota/wsota_index.jsp 1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得 2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应 3) Engine获得请求localhost/wsota/w
2018-01-04 19:33:14 136
原创 oracle更改时间格式
ORACLE的DATE类型的显示方式取决于NLS_DATE_FORMAT初始化参数NLS_DATE_FORMAT参数可以在以下几个级别设置1、数据库级别——如果希望所有人都看到某种格式的数据,则在SQLPLUS中运行sql>alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss';2、SES
2018-01-03 09:26:42 1460
转载 Java中使用同步关键字synchronized需要注意的问题
本文原地址:http://www.cnblogs.com/xiohao/p/4385582.html在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大
2017-11-14 22:18:15 231
转载 mysql执行sql脚本时报错failed to open file ...,error:2
执行sql脚本,可以有2种方法:第一种方法:在命令行下(未连接数据库),输入 mysql -h localhost -u root -p123456 < F:\hello world\niuzi.sql (注意路径不用加引号的!!) 回车即可.第二种方法: 在命令行下(已连接数据库,此时的提示符为 mysql> ),输入 source F:\hello world\niuzi.sql ...
2017-10-28 16:24:02 18706 2
转载 maven环境搭建
昨天自己尝试搭建了下maven,想记录下遇到的一些问题和解决方法。如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Mav
2017-09-25 09:57:39 343
空空如也
数据库连接查询的问题
2018-04-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人