上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 38 下一页
摘要: 代码: 2代: using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Text; using System.Web; using NPOI.HPSF; usin 阅读全文
posted @ 2016-11-21 16:50 hongdada 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 思路1:可以用hash表来存储数组中的元素,这样我们取得一个数后,去判断sum - val 在不在数组中,如果在数组中,则找到了一对二元组,它们的和为sum,该算法的缺点就是需要用到一个hash表,增加了空间复杂度。 思路2:同样是基于查找,我们可以先将数组排序,然后依次取一个数后,在数组中用二分查 阅读全文
posted @ 2016-11-17 13:46 hongdada 阅读(4363) 评论(0) 推荐(1) 编辑
摘要: Java的Object类 调用这些方法的当前线程必须拥有此对象监视器,否则将会报java.lang.IllegalMonitorStateException exception wait; Object的wait方法有三个重载方法,其中一个方法wait() 是无限期(一直)等待,直到其它线程调用no 阅读全文
posted @ 2016-11-16 18:35 hongdada 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大 使用线程池的好处: 1. 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2. 提高响应速度: 当任务到达时,任务可以不需要等到线程创建就能立即执行。3. 提高线程的可管理性: 线程是稀缺资源, 阅读全文
posted @ 2016-11-16 15:31 hongdada 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 类的加载: 类的初始化: 类什么时候才被初始化:1)创建类的实例,也就是new一个对象2)访问某个类或接口的静态变量,或者对该静态变量赋值3)调用类的静态方法4)反射(Class.forName("com.lyj.load"))5)初始化一个类的子类(会首先初始化子类的父类)6)JVM启动时标明的启 阅读全文
posted @ 2016-11-14 00:22 hongdada 阅读(599) 评论(0) 推荐(0) 编辑
摘要: Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC堆。 Java在垃圾收集的过程中,主要用到了分代收集算法,具体有复制、标记清除、标记压缩三种实现算法 1. 标记 - 清除算法 标记清除算法是最基础的收集算法,其他收集算法都是基于这种思 阅读全文
posted @ 2016-11-13 22:25 hongdada 阅读(1319) 评论(0) 推荐(0) 编辑
摘要: 在String类中 native关键字是干嘛的? Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口 这 阅读全文
posted @ 2016-11-12 19:22 hongdada 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Lock与Synchronized的区别: 1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现; 2)synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过unLo 阅读全文
posted @ 2016-11-12 19:21 hongdada 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 同步阻塞io(BIO)、伪异步io(PIO)、非阻塞io(NIO)、异步io(AIO)的概念及区别? 同步阻塞io(BIO):服务器端与客户端通过三次握手后建立连接,连接成功,双方通过I/O进行同步阻塞式通信。 弊端:1,读和写操作是同步阻塞的,任何一端出现网络性能问题,都会影响另一方。2,一个链路 阅读全文
posted @ 2016-11-12 10:01 hongdada 阅读(395) 评论(0) 推荐(0) 编辑
摘要: Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。 从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实 阅读全文
posted @ 2016-11-12 00:32 hongdada 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 在JDK1.8的Iterator接口中 发现多了default修饰的具体的实现方法。 因为接口有语法限制,所以要直接改变/扩展接口内的方法变得非常困难。 在尝试强化Java 8 Collections API,让其支持lambda表达式的时候,就面临了这样的挑战。为了克服这个困难,Java 8中引入 阅读全文
posted @ 2016-11-10 14:34 hongdada 阅读(335) 评论(0) 推荐(0) 编辑
摘要: Map:键必须是唯一 同步方法:Map m = Collections.synchronizedMap(new TreeMap(...)); Hashtable:基于散列表的实现 允许空键空值 线程安全 HashMap:基于散列表的实现 允许空键空值 线程不安全 (与Hashtable基本一致) T 阅读全文
posted @ 2016-11-10 10:23 hongdada 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 一、List:、有顺序以线性方式存储,可以存放重复对象 线程安全方法:List list = Collections.synchronizedList(new LinkedList(...)); LinkedList:双向链表实现存储 索引数据慢插入数度较快 线程不安全(比安全性能好) ArrayL 阅读全文
posted @ 2016-11-10 10:22 hongdada 阅读(310) 评论(0) 推荐(0) 编辑
摘要: Set:无顺序,不包含重复的元素 HashSet:为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。 TreeSet: 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。 LinkedHashSet:具有HashSet的查询速度,且内部使用链表维护元素 阅读全文
posted @ 2016-11-10 10:20 hongdada 阅读(4454) 评论(0) 推荐(0) 编辑
摘要: 一、List:、有顺序以线性方式存储,可以存放重复对象 线程安全方法:List list = Collections.synchronizedList(new LinkedList(...)); LinkedList:双向链表实现存储 索引数据慢插入数度较快 线程不安全(比安全性能好) ArrayL 阅读全文
posted @ 2016-11-09 14:17 hongdada 阅读(292) 评论(0) 推荐(0) 编辑
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 38 下一页