- 博客(50)
- 资源 (5)
- 收藏
- 关注
转载 一看你就懂,超详细java中的ClassLoader详解【转】
转自:http://blog.csdn.net/briblue/article/details/54973413ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。...
2018-09-26 11:36:32
6177
2
转载 HashMap,LinkedHashMap,TreeMap的区别
HashMap HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null。 HashMap不支持线程的同步(即任一时刻可以有多个线程同时写HashMap),可能会导致数据的不一致。如果需要...
2018-04-11 15:24:30
200
原创 Nginx日志文件拆分备份
刚刚将公司项目新版本发布上线时,意外的发现nginx的access.log文件竟然有4.7G。因为nginx的日志文件没有rotate功能,而且当初并没有对nginx的访问日志文件和错误日志文件做定期清理操作。所以才导致了两个超大文件的出现。于是我抽空在网上找了些关于对nginx日志文件进行拆分备份的解决方案,顺便整理出来供大家参考。当时在网上找到两种解决方案:1、通过工具cronolog...
2018-03-22 17:01:00
566
原创 StackOverflowError和OutOfMemoryError
对于堆内存溢出和栈内存溢出,在深入理解JVM虚拟机这本书中有相关的定义:在java虚拟机规范中,对于局部变量空间(这里的局部变量空间指的是java虚拟机中的“栈”或者说java虚拟机栈中局部变量表部分)规定了两种异常状态:如果线程请求的栈深度(栈深度指的是程序递归调用的次数)大于虚拟机所允许的深度,将抛出StackOverflowError;如果虚拟机栈可以动态扩展(当前大部分的java虚拟机都可...
2018-03-15 14:05:19
290
转载 Redis和Memcached的区别
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效...
2018-02-26 11:34:07
171
原创 如何使用线程安全的HashMap
HashMap为什么线程不安全导致HashMap线程不安全的原因可能有两种:1、当多个线程同时使用put方法添加元素的时候,正巧存在两个put的key发生了碰撞(根据hash值计算的bucket一样),那么根据HashMap的存储原理,这两个key会添加多数组的同一个位置,这样一定会导致其中一个线程put的数据被覆盖丢失2、当多个线程同时检测到元素个数超过哈希表的size*loadFl
2017-12-20 16:53:01
3907
2
转载 JAVA 对象引用&对象赋值
JAVA 对象引用,以及对象赋值 关键字: java对象 引用Java对象及其引用关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初
2017-12-20 16:25:27
227
原创 浅析java8中HashMap的结构
HashMap中涉及的部分数据结构数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表之拉链法哈希表(Hash table,也叫散列表),是根据关键码值
2017-12-20 14:58:59
959
原创 equals 、 ==的深度解析
如何理解equals和==之间的区别?对于刚开始工作的小白,在面试的时候可能经常会遇到下面的代码:String a= new String("abc");String b= new String("abc"); System.out.println(a==b);System.out.println(a.equals(b));输出结果如下:falsetrue那为什么两个输出结果不一
2017-12-15 18:02:46
252
转载 jvm虚拟机工作机制【转】
1 概述 众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。1.1 Java程序执行流程 Java程序的执行依赖于编译环境和运行环境。源码代码转变成可执行的机器代码,由下面的流程完成:
2017-12-15 14:49:12
434
App后台开发运维和架构实践(完整版).pdf
2017-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅