[置顶] 跑过的城市,走过的路

不拘什么,按照喜欢的方式做喜欢的事,我就是这样生活的。 纵然受到别人阻止,遭到恶意非难,我都不曾改变。...
阅读(478) 评论(2)

[置顶] 二十岁出头,你一无所有,但你却拥有一切

我从来没有看到过一句话,如此让我共鸣。二十岁出头,你一无所有,但你却拥有一切,因为你还有牛逼的梦想。 可那又怎样,只有行动,才能解除你所有的不安   (一)嘴上说说的人生      那年我在离家的时候一个劲地往自己的硬盘里塞《灌篮高手》,我妈一副嗤之以鼻的表情 看着我,似乎是在说:“这么大的人了居然还这么喜欢看动漫。”      我不知道怎么回应她,只好耸耸肩,因为我实在无法对...
阅读(4874) 评论(112)

ArrayList和LinkedList的区别

List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表。ArrayList底层采用数组来保存每个集合元素,LinkedList则是一种链式存储的线性表。其本质上就是一个双向链表,但它不仅实现了List接口,还实现了Deque接口。也就是说LinkedList既可以当成双向链表使用,也可以当成队列使用,还可以当成栈来使用(Deque代表双端队列,即具有队列的特征,也具有栈的特征...
阅读(216) 评论(0)

ArrayList和Vector的区别

Vector和ArrayList这两个集合类的本质并没有太大的不同,它们都实现了List接口,而且底层都是基于Java数组来存储集合元素。 在ArrayList集合类的源代码中可以看到如下一行。 //采用elementData数组来保存集合元素 private transient Object[] elementData; 在Vector集合类的源代码中也可看到类似的一行。 //采...
阅读(191) 评论(0)

HashMap实现原理及源码分析

当我们执行如下操作时:HashMap map = new HashMap(); map.put("语文", 86.5f); map.put("数学", 93.0f); map.put("英语", 90.0f);对于HashMap而言,采用一种所谓的“Hash算法”来决定每个元素的存储位置。当程序执行 map.put(“语文”, 86.5f)...
阅读(445) 评论(3)

Java并发编程之读写锁

读写锁维护了一对相关的锁,一个用于只读操作,一个用于写入操作。只要没有writer,读取锁可以由多个reader线程同时保持。写入锁是独占的。 可重入读写锁 ReentrantReadWriteLock ReentrantReadWriteLock对象提供了readLock()和writeLock()方法, 用于获取读取锁和写入锁. 读取锁允许多个reader线程同时持有, 而写入锁...
阅读(210) 评论(0)

Java并发编程之重入锁

重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁阻塞,该特性的实现需要解决以下两个问题。 1、线程再次获取锁。锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取。 2、锁的最终释放。线程重复n次获取了锁,随后在第n次释放该锁后,其他线程能够获取到该锁。锁的最终释放要求锁对于获取进行计...
阅读(275) 评论(4)

Java并发编程之Lock

Lock是一个接口提供了无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显式的。 我们知道,synchronized是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但synchronized粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock提供了比synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步...
阅读(79) 评论(0)

Java并发编程之synchronized

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一个时间,只有一个线程可以进行操作。多线程的同步机制对资源进行加锁,同步用以解决多个线程同时访问时可能出现的问题。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是Synchonized括号里配置的对象。 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异...
阅读(1313) 评论(2)

Java并发编程之CyclicBarrier

一、场景描述 有四个游戏玩家玩游戏,游戏有三个关卡,每个关卡必须要所有玩家都到达后才能允许通过。其实这个场景里的玩家中如果有玩家A先到了关卡1,他必须等到其他所有玩家都到达关卡1时才能通过,也就是说线程之间需要相互等待。这和CountDownLatch的应用场景有区别,CountDownLatch里的线程是到了运行的目标后继续干自己的其他事情,而这里的线程需要等待其他线程后才能继续完成下面的工作...
阅读(1503) 评论(1)

Java并发编程之CountDownLatch

一、场景描述 在多线程程序设计中,经常会遇到一个线程等待一个或多个线程的场景 例如:百米赛跑,十名运动员同时起跑,由于速度的快慢,肯定有先到达和后到达的,而终点有个统计成绩的仪器,当所有选手到达终点时,它会统计所有人的成绩并进行排序,然后把结果发送到汇报成绩的系统。 再例如:当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有...
阅读(280) 评论(0)

PLSQL查询数据显示为乱码解决方法

在使用plsql查询数据的时候,中文显示乱码 解决方法是配置本机语言环境变量 重启PLSQL再次查询 即可显示中文 作者:itmyhome...
阅读(199) 评论(0)

Oracle exp导出加where指定条件

如果一个表中数据很大又或者我们只需要导出表的部分内容,可使用query参数进行where条件过滤 exp test/test@192.168.20.20/orcl file = d:\test.dmp tables=(t_test) query = \"where oildate like '2016%'\" 注意单引号和转义字符 另导入数据时加上 ignore=y 会忽略掉错误信息...
阅读(194) 评论(0)

Oracle 查看和扩展表空间

一、查询表空间使用情况 select a.tablespace_name as "表空间名", a.bytes / 1024 / 1024 as "表空间大小(M)", (a.bytes - b.bytes) / 1024 / 1024 as "已使用空间(M)", b.bytes / 1024 / 1024 "空闲空间(M)", roun...
阅读(361) 评论(0)

Oracle between and 边界问题

BETWEEN条件的语法为: expression BETWEEN value1 AND value2; Oracle BETWEEN条件将返回表达式在value1和value2(含)范围内的记录。 例子: Oracle的BETWEEN..AND..前后都是闭区间,也就是说包含两个端的数 使用NOT运算符 Oracle BETWEEN条件也可以与Oracle NOT运算符组合。...
阅读(347) 评论(0)

Java中Queue的使用

Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。我们平时使用的一些常见队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻...
阅读(261) 评论(0)

MySQL 共享锁与排他锁

共享锁(Share Lock) 共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁), 直到已释放所有共享锁。 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 用法 SELECT ... LOCK IN SHARE MODE; 在查询语句后面增加LOCK...
阅读(190) 评论(0)
652条 共44页1 2 3 4 5 ... 下一页 尾页
    版权声明
    本博客文章可以被转载,但未经本人许可,不得用于商业用途。 如需转载,请保证文章的完整性并注明出处。
    个人资料
    • 访问:2076764次
    • 积分:30910
    • 等级:
    • 排名:第153名
    • 原创:603篇
    • 转载:23篇
    • 译文:26篇
    • 评论:1518条
    博客统计