java
文章平均质量分 82
qq953337446
这个作者很懒,什么都没留下…
展开
-
maven环境搭建
昨天自己尝试搭建了下maven,想记录下遇到的一些问题和解决方法。如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Mav转载 2017-09-25 09:57:39 · 333 阅读 · 0 评论 -
类加载的问题
Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类加载器能够理解NoClassDefFoun...原创 2018-04-05 20:13:08 · 189 阅读 · 0 评论 -
Iterator和ListIterator区别
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和Li...转载 2018-04-04 21:29:19 · 3567 阅读 · 0 评论 -
BlockingQueue实现生产者和消费者
BlockingQueue适用场景:生产者线程在一端生产,消费者线程在另一端消费,可以安全的实现生产者消费者问题(多个生产者 多个消费者)生产者:import java.util.concurrent.BlockingQueue;public class Producer implements Runnable { private BlockingQueue<String>...原创 2018-04-01 15:55:03 · 176 阅读 · 0 评论 -
详解Java中的内存泄漏
详解Java中的内存泄漏1.Java内存回收机制不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Jav...转载 2018-04-01 20:43:04 · 137 阅读 · 0 评论 -
Java的三种代理模式
1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人...转载 2018-03-15 14:46:26 · 114 阅读 · 0 评论 -
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 · 130 阅读 · 0 评论 -
多线程的死锁
在多线程编程中,除了要解决数据访问的同步与互斥之外,还需要解决的重要问题就是多线程的死锁问题。所谓死锁: 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外部处理作用,它们都将无限等待下去。死锁形成的条件:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源...原创 2018-01-10 17:53:25 · 194 阅读 · 0 评论 -
Java中使用同步关键字synchronized需要注意的问题
本文原地址:http://www.cnblogs.com/xiohao/p/4385582.html在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大转载 2017-11-14 22:18:15 · 225 阅读 · 0 评论 -
分析Class.forName()和ClassLoader.loadClass在数据库连接的应用
一 Java类装载过程1.装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 2.链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字节码验证,符号引用验证) 准备:给类的静态变量分配并初始化存储空间; 解析:将常量...原创 2018-04-06 14:16:50 · 405 阅读 · 0 评论