
java高级
Super-小志志
这个作者很懒,什么都没留下…
展开
-
简述ReentrantLock和Synchronized区别
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在原创 2015-07-08 08:43:13 · 626 阅读 · 0 评论 -
常用集合的底层数据结构和实现-Map
常用集合的底层数据结构和实现 常见的底层数据结构:在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的(当然也不能绝对的说,但至少在java中现有的所以集合都是基于这2中数据结构实现的) Map类HashMap数据实现:底层基于模拟指针,也就是数组和链表的结合。底层整体结构是一个数组,数组中的每个元素又是一原创 2016-03-03 13:20:41 · 7837 阅读 · 0 评论 -
java中的常用集合和线程安全
java中的常用集合和线程安全早在jdk的1.1版本中所以的集合都是线程安全的,但是在1.2以及之后的版本中就出现了一些线程不安全的集合,为什么版本神级以及会出现一些线程不安全的集合呢,以为线程安全的集合普遍比线程不安全的集合效率高的多,随着业务的发展,特别是在web应用中,为了提高用户体验减少用户的等待时间,页面响应速度(也就是效率)是优先考虑的。而且对线程不安全原创 2016-03-29 14:55:02 · 7129 阅读 · 4 评论 -
mybatis实现零配置
基于 com.github.abel533-mapper改造的实现的动态查询字段,mapper已经实现了单表的操作不需要写配置文件,但是唯一的不足就是查询的时候不能根据具体的业务区查询指定的字段,默认是查询所有的字段,这样在数据访问量大的情况下性能会跟不上。几天基于这种物配制的基础,在原有的基础上修改了查询方便实现了根据业务查询指定的字段,实现方法很简单,在执行sql之前把需要查询的字段和本地线程原创 2016-07-10 13:40:08 · 5251 阅读 · 2 评论 -
java实现经纬度坐标是否在范围内的算法
需求是:一个点(经纬度)是否在一个多边形内部,多边形有多个点构成,每个点是一个实际的经纬度坐标,有多个点构成一个多边形,算法数学上实现思路: 判断一个点是在一个多边形内部的集中情况第一:目标点在多边形的某一个顶点上,我们认为目标点在多边形内部第二:目标点在多边形的任意一天边上,我们认为目标点在多边形内部第三:这种情况就比较复杂了,不在某天边上,也不和任何一个顶点重合.这时候就需原创 2016-08-15 19:18:35 · 32098 阅读 · 27 评论 -
Socket之bio和nio
在此之前先谈论一下网络io.当一个客户端和服务端之间相互通信,交互我们称之为网络io(网络通讯).网络通讯基本都是通过socket来通讯的。客户端和服务端这样建立连接:第一步客户端发起建立连接的请求,第二部服务端收到请求建立连接的请求,并同意和该客户端建立连接,并响应给客户端,第三步客户端收到服务端响应的建立连接的消息,并确认和服务端建立连接,通过这样三部客户端和服务端就真正的建立了连接,服务端和原创 2016-09-15 22:52:03 · 4821 阅读 · 0 评论