- 博客(13)
- 资源 (2)
- 收藏
- 关注
转载 ConcurrentHashMap原理分析
HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占。ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段都有自己的锁。只要多个修改操作发生在
2017-07-31 16:43:58 182
转载 深入分析ConcurrentHashMap
效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线程访问HashTable的同步方法时,可能会进入阻塞或轮询状态。如线程1使用put进行添加元素,线程2不但不能使用put方法添加元素,并且也不能使用get方法来获取元素,
2017-07-31 16:34:45 170
原创 this.interrupted()和this.isInterrupted()方法的区别
interrupted()方法声明:public static boolean interrupted() {//判断当前线程是否中断,当前线程是指运行this.interrupted()方法的线程 return currentThread().isInterrupted(true);//true表示执行该方法后清除中断状态}isInterrupted()方法声明:public bool
2017-07-28 12:19:39 1308
原创 数据库中varchar和char的区别
总结:VARCHAR是可变长度,在存储时,它是根据待存储的数据长度来分配存储空间。需要多用一个字节来存放长度信息(不占用varchar指定的长度)。CHAR是固定长度,在存储时,它是根据CHAR指定的长度来分配存储空间。如果待存储的数据长度小于CHAR规定的长度,则用空格补齐。如果大于CHAR规定的长度,则截断后再存储。因此VARCHAR相比CHAR节省了存储空间,但由于CHAR的长度
2017-07-24 09:37:53 1013
转载 redis持久化RDB和AOF
Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis
2017-07-20 20:31:53 298
转载 Java线程面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用
2017-07-14 20:04:24 317
原创 线程死锁及如何使用JDK自带工具监测是否有死锁现象
Java线程死锁原因:不同线程都在等待根本不可能被释放的锁,从而导致所有的任务都无法继续完成。举个栗子:两个线程互相等待对方释放锁。/** * Created by LZF on 2017/7/14. * 学习:如何查看多线程死锁 */class DealThread implements Runnable{ public String username; public
2017-07-14 16:13:40 633
原创 Java-synchronized的使用方法
最近在看《Java 多线程编程核心技术》,顺便花点时间总结下synchronized的用法。在介绍之前需要了解到“非线程安全”问题存在于“实例变量”中,如果是方法内部的变量,则不存在“非线程安全”问题。下面举个栗子:方法内部声明一个变量时,是不存在“非线程安全”问题的。/** * Created by LZF on 2017/7/13. * 测试:方法内部的变量,不存在“非线程安全”问题 */
2017-07-14 11:50:02 482
转载 中文乱码在java中URLEncoder.encode方法要调用两次解决
一、场景:1、在客户端要通过get方式调用服务器端的url,将中文参数做utf-8编码,需要在js中两次的进行编码,服务器端才能用decode方法一次获取。例如:[html] view plain copyvar xing=encodeURIComponent(encodeURIComponent(xing));
2017-07-10 19:50:34 916
原创 2018秋招-阿里内推编程题
阿里巴巴的ODPS大数据处理平台可以启动一系列并发的作业,每个作业中存在一系列存在父子关系的任务。每个任务用一个三元组表示–(任务id,父任务id,执行开销),其中任务id是一个正整数(>0);父任务id为0表示根任务,每个作业存在一个唯一的根任务,并且所有的任务,如果其父任务id不为0,那么必然是一个已经存在的根任务id;执行开销是一个正整数(>0)。系统中至少存在一个作业。举例如下: (1,
2017-07-06 20:38:45 2897 4
转载 Java面试——从JVM角度比较equals和==的区别
1. Java中数据类型分类1.1 基本数据类型又称为原始数据类型,byte,short,char,int,long,float,double,boolean,他们之间的比较应该使用(==),比较的是他们的值。1.2 复合数据类型当复合数据类型用(==)进行比较,比较的是他们在内存中的存放地址。当复合数据类型之间进行equals比较
2017-07-04 17:41:11 222
转载 java--String常量池问题的几个例子
String常量池问题的几个例子示例1:Java代码 String s0="kvill"; String s1="kvill"; String s2="kv" + "ill"; System.out.println( s0==s1 ); System.out.println( s0==s2 ); 结果为: tru
2017-07-04 17:28:06 268
转载 JVM——内存管理和垃圾回收
1. 何为GCJava与C语言相比的一个优势是,可以通过自己的JVM自动分配和回收内存空间。垃圾回收机制是由垃圾收集器Garbage Collection来实现的,GC是后台一个低优先级的守护进程。在内存中低到一定限度时才会自动运行,因此垃圾
2017-07-04 14:56:48 333
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人