- 博客(135)
- 收藏
- 关注
转载 分布式锁总结
1> redis处理过期key的方式:redis 当key过期的时候,可能会采取策略来清除掉key. 有以下三种方式: 立即清除(设置过期时间的时候,设置一下回调,当时间过期,直接删除掉key) 惰性清除(key过期的时候不会立即去清除掉key,等下次取数据的时候,判断是否过期,过期了就会删除掉key). 定时清除. redis使用的是 定时清除和惰性清除 两种策略.关...
2018-11-07 18:28:00 187
转载 全面理解Java内存模型(转)
转自:http://blog.csdn.net/suifeng3051/article/details/52611310Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内...
2018-02-27 09:50:00 187
转载 java IO流分析整理
java中的流,从输入输出方向分为 输入流(数据从文件流向内存),输出流(数据流出内存到文件).java中的流,可以从不同的角度进行分类。按照数据流的方向不同可以分为:输入流和输出流。按照处理数据单位不同可以分为:字节流和字符流。按照实现功能不同可以分为:节点流和处理流。输出流:输入流:因此输入和输出都是从程序的角度来说的。字节流:...
2018-01-23 09:30:00 181
转载 关于hibernate中的session与数据库连接关系以及getCurrentSession 与 openSession() 的区别...
1.session与connection,是多对一关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。2.多个session与一个connection绑定,底层操作数据库的时会进行同步。3.如果某个connection正在被某个session占用, open一个session,则创建一个新的co...
2018-01-12 16:45:00 426
转载 hibernate的实现原理以及延迟加载
Hibernate是怎样实现呢?主要是依据反射机制。 现在以一次数据库查询操作分析Hibernate实现原理。 假设有一个用户表(tbl_user),表中字段有id,name,sex。同时有一个实体类(User)与其相对应,查询语句是: select * from User。1.在项目启动时,Hibernate配置文件中的内容已经存储在容器中,存储着表与...
2018-01-12 10:22:00 130
转载 JDBC为什么要使用PreparedStatement而不是Statement
prepareStatement与Statement的区别1.区别:stmt=conn.CreateStatement();resultSet rs=stmt.executeQuery(sql);上面是statement的用法============================下面是PrepareStatement的用法ptmt=conn.Pr...
2018-01-11 16:54:00 137
转载 深入hibernate的三种状态(转)
hibernate的三种状态: 瞬时对象,持久化对象,托管对象。hibernate的两级缓存:1》一级缓存:session 2》二级缓存:sessionfactory.瞬时对象:指新建的new对象,数据库中没有对应的记录,该对象没有和session和事务关联。持久化对象:数据库中有相对应的记录,并且该对象和session关联。瞬时对象通过save可以转换成持久化对象,托...
2017-10-16 15:35:00 101
转载 RPC框架原理剖析(含实例)(转)
转自:http://blog.csdn.net/rulon147/article/details/53814589一、什么是RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信...
2017-10-12 16:59:00 100
转载 用通俗的语言解释restful
实现了REST规范的Web API就叫RESTful API。简单来说:就是用url定位资源,用http描述来操作资源。web是什么:分布式信息系统为超文本文件和其他对象(资源)提供访问入口。资源是web架构的关键点,需要3个操作:识别,表示,交互。uri(统一资源标识符)来识别资源,html.xml,图片,视频来表示资源,通过协议与资源交互。所以rest就是选择通过使用...
2017-10-10 15:42:00 108
转载 数据库索引到底是什么,是怎样工作的?(转)
转自:http://blog.csdn.net/weiliangliang111/article/details/51333169我们通过一个简单的例子来开始教程,解释为什么我们需要数据库索引。假设我们有一个数据库表 Employee, 这个表有三个字段(列)分别是 Employee_Name、Employee_Age 和Employee_Address。假设表Employee...
2017-09-28 14:44:00 90
转载 对于最近并发方面的一些考虑与梳理
题记:总是被绕在一个无法挣脱的并发深渊里,眼睛一闭一挣都是线程的世界。这边最近是这样的情况:基于JVM的内存模型,我们知道了多个线程并发访问主存里面的共享数据。这时候在每一个线程中会有一个工作内存的逻辑概念。线程和主存之间的工作方式将会遵循:lock unlock read load use assign restore write的执行方式来完成线程和主存之间的数据交...
2017-08-12 16:21:00 90
转载 ContextLoaderListener作用详解
转自:http://blog.csdn.net/ysughw/article/details/8992322ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。至于App...
2017-08-10 15:08:00 92
转载 关于并发
最近在看JVM的时候,看到了并发线程方面的知识点,在这里对这些知识点进行一个梳理。并发:多个任务在同一时间段内执行。并行:多个任务在某一时刻同时执行。1》在并发,并行技术没有出现之前,即单核单CPU时代:软件的运行模式全都是以串行的方式运行。执行的时候根据代码的固定顺序来执行,这时候会出现一个问题,某一条程序指令需要等待IO操作,此时的CPU就处于空闲状态,后面的代码也无法执...
2017-08-07 15:54:00 193
转载 java -- JVM的符号引用和直接引用
在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用。1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_Fieldref_info、CONS...
2017-07-27 14:40:00 97
转载 深入理解jvm--Java中init和clinit区别完全解析(转)
转自:http://blog.csdn.net/u013309870/article/details/72975536init和clinit区别①init和clinit方法执行时机不同init是对象构造器方法,也就是说在程序执行 new 一个对象调用该对象类的 constructor 方法时才会执行init方法,而clinit是类构造器方法,也就是在jvm进行类加载—–验证—...
2017-07-27 14:29:00 122
转载 session的三种超时设置
1.在web容器中设置(此处以tomcat为例)在tomcat-5.0.28\conf\web.xml中设置,以下是tomcat 5.0中的默认配置:[html]view plaincopy<!--====================DefaultSessionConfiguration===========...
2017-07-24 14:12:00 132
转载 聊一聊PV和并发、以及计算web服务器的数量的方法(转)
转自:http://www.chinaz.com/web/2016/0817/567752.shtml最近和几个朋友,聊到并发和服务器的压力问题。很多朋友,不知道该怎么去计算并发?部署多少台服务器才合适? 所以,今天就来聊一聊PV和并发,还有计算web服务器的数量 的等方法。这些都是自己的想法加上一些网上的总结,如有不对,欢迎拍砖。 几个概念网站流量是指网站的访问量,用来描述...
2017-07-21 15:38:00 144
转载 java高分局之jstat命令使用(转)
转自:http://blog.csdn.net/h_025/article/details/52813817java高分局之jstat命令使用jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意:使用的jdk版本是jdk8.类加载统计:[html]...
2017-07-20 09:46:00 157
转载 Minor GC和Full GC区别(转)
http://blog.csdn.net/u010796790/article/details/52213708概念:新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。老年代 GC(Major GC / Full GC):指发生在...
2017-07-19 11:23:00 96
转载 对于JVM中方法区,永久代,元空间以及字符串常量池的迁移和string.intern方法
在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表。在过去(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收,因此类也可以被看成“永久的”。另外由于类作为JVM实现的一部分,它们不由程序来创建,因为它们也被认为是“非堆”的内存。在...
2017-07-14 11:32:00 149
转载 2017/6/29杂记
ThreadPool用法与优势合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须...
2017-06-29 19:39:00 112
转载 java中代理,静态代理,动态代理以及spring aop代理方式,实现原理统一汇总
若代理类在程序运行前就已经存在,那么这种代理方式被成为 静态代理 ,这种情况下的代理类通常都是我们在Java代码中定义的。 通常情况下, 静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类。一、概述1. 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,...
2017-06-29 17:14:00 131
转载 ThreadLocal的设计理念与作用
转自:http://www.iteye.com/topic/103804首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过...
2017-06-29 10:02:00 112
转载 2017/6/28杂记
HashMap,LinkedHashMap,TreeMap对比:共同点:HashMap,LinkedHashMap,TreeMap都属于Map;Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。 不同点:1.HashMap里面存入的键值对在取出的时候是随机的,也是我们最常用的一个Map.它根据键的HashCode值存储数...
2017-06-28 17:40:00 60
转载 关于hashmap 与concurrentHashMap
hashmap是不安全的,要实现安全,可以用Collections里面的synchronizedMap包裹来实现安全,或者用concurrentMap,注意:hashtable是安全的从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concu...
2017-06-27 19:36:00 83
转载 2017/6/27杂记
java System.gc() 与 Runtime.getRuntime().gc() 有什么区别?java.lang.System.gc()只是java.lang.Runtime.getRuntime().gc()的简写,两者的行为没有任何不同。唯一要能说有什么不同那就是在字节码层面上调用前者比调用后者短一点点,System.gc()是1条字节码,Runtime...
2017-06-27 19:23:00 99
转载 深入理解java异常处理机制
转自:http://blog.csdn.net/hguisu/article/details/6155636/1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是...
2017-06-27 14:58:00 69
转载 java并发之Lock以及和synchronized区别
从Java5之后,在Java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 1.Lock 首先要说明的就是Lock,通过查看Lock的源码可知,Lock是一个接口:12345678publicinterfaceLock {voi...
2017-06-27 11:35:00 66
转载 java并发再次积累
监视器与锁之间的关系:1、object monitor 是任何一个对象都有的内置的数据结构,它是用来协调使用当前对象的多个线程之间的执行顺序的(wait/notify),线程会block或者wait 在一个对象的监视器上;锁是 对对象访问的时候,通过对对象加锁,防止并行访问的控制手段;2、对 对象加锁成功,才能拿到 object monitor (对象监视器),如果加锁失败,会进...
2017-06-27 11:01:00 69
转载 java 2017/6/26杂记
mkdirs()可以建立多级文件夹,mkdir()只会建立一级的文件夹,如下:newFile("/tmp/one/two/three").mkdirs();执行后,会建立tmp/one/two/three四级目录newFile("/tmp/one/two/three").mkdir();则不会建立任何目录,因为找不到/tmp/one/two目录,...
2017-06-26 19:57:00 95
转载 comparator接口与Comparable接口的区别
1. Comparator 和 Comparable 相同的地方他们都是java的一个接口, 并且是用来对自定义的class比较大小的,什么是自定义class: 如 public class Person{ String name; int age }.当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collecti...
2017-06-26 19:52:00 66
转载 ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量
这里要讨论这些常用的默认初始容量和扩容的原因是:当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指 即当 元素个数 超过容量长度*加载因子的系数时,进行扩容。另外,扩容也是有默认的倍数的,不同的容器扩...
2017-06-26 19:49:00 68
转载 Java的快速失败和安全失败
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变...
2017-06-26 16:00:00 306
转载 关于URL和http协议,http消息格式
转自:http://crystal2012.iteye.com/blog/1447845在WWW(全球资讯网)中想要连结到某个网页,便需要给浏览器一个位址,而URL在此的功能就是告知浏览器某个资源在那个位置,简单来说,通常我们在IE或Netscape浏览器中所输入的网址就是URL的其中一种。HTTP(Hypertext Transfer Protocol)超文字传输通讯协定是WWW...
2017-06-23 17:47:00 262
转载 java中hashSet原理
转自:http://blog.csdn.net/guoweimelon/article/details/50804799HashSet是JavaMap类型的集合类中最常使用的,本文基于Java1.8,对于HashSet的实现原理做一下详细讲解。(Java1.8源码:http://docs.oracle.com/javase/8/docs/api/)一、HashSe...
2017-06-23 15:12:00 124
转载 java中HashMap详解
转自:http://blog.csdn.net/caihaijiang/article/details/6280251HashMap 和 HashSet 是JavaCollection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,...
2017-06-23 15:11:00 73
转载 关于共享锁,排它锁,乐观锁,悲观锁
转自:http://blog.csdn.net/yuwei19840916/article/details/3245107共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。排他锁【X锁】又称写锁。若事务T对数据对象A...
2017-06-22 16:27:00 62
转载 java io
这篇文章不错http://www.importnew.com/14111.html java io底层是如何实现的http://blog.csdn.net/zxman660/article/details/7875762http://ifeve.com/overview/https://www.ibm.com/deve...
2017-06-21 17:24:00 62
转载 java泛型
http://www.cnblogs.com/lwbqqyumidi/p/3837629.htmlhttp://blog.csdn.net/sunxianghuang/article/details/51982979之前讨论的都是对于一个类,每次实例化的时候对象的各种类型都是一致的,比如一个people类,有int 类型的age 和string 类型的name。1.有关于泛型...
2017-06-20 19:51:00 581
转载 java中数组以及集合
java中数组:数组在Java里是一种特殊类型,有别于普通的“类的实例”的对象。但实际数组也是一种对象类型,int[]a = new int[5] a是在java栈中分配的引用变量,类型是int[] 数组类型,指向在堆里面地址连续的实际数组对象。在内存中,数组存储在连续的区域内部,因为数组中每个元素的类型相同,则占用的内存大小也一致,所以在访问数组中的元素时可以直接根据数组在内存...
2017-06-20 17:31:00 161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人