如何确保N个线程可以访问N个资源同时又不导致死锁?使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。2.如何权衡是使用无序的数组还是有序的数组?有序数组最大的好处在于查找的时间复杂度是O(logn),而无序数组是O(n)。有序数组的缺点是插入操作的时间复杂度是O(n),因为值大的
分类:
编程语言 时间:
2019-08-31 13:14:58
阅读次数:
93
package com.diyo.offer; public class FindNum { public static void main(String[] args) { int count = 0;// 用于统计找的AABCC类型的数字的个数 for (int i = 10000; i <= ... ...
分类:
编程语言 时间:
2019-08-29 13:36:44
阅读次数:
77
书单较为片面,仅供参考。并非每一本都推荐。 1. 《Java编程思想》 2. 《Java核心技术:卷I(第10版)》3. 《Effective Java(第2版)》4. 《Java并发编程实战》5. 《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》6. 《设计模式之禅(第2版)》7. ...
分类:
其他好文 时间:
2019-08-28 23:58:41
阅读次数:
162
学习Java编程以来,我遇到了前所未有的编程难度,虽然说比c语言要简单一点,但还是有很多程序调试错误,一次次的编程让我对Java的基础有了更深的了解,错误也比之前少了很多,基本掌握了一些编程规则、知识要点和一些小技巧,成功编出第一个程序让我欣喜若狂,对java越来越感兴趣。但是有些问题,比如一些问题 ...
分类:
其他好文 时间:
2019-08-27 23:05:58
阅读次数:
83
 { /** * 冒泡排序 * 思路:每个轮次都让第一个数和其后所有的数进行轮比较,如果这轮的第一个数大则和其下一个数交换位置,如果他一直大则冒泡的最后一位 * 1、除了最后一位,前面的数都需要进行冒泡 * 2、第一轮,第一... ...
分类:
编程语言 时间:
2019-08-22 12:45:39
阅读次数:
108
第四章 控制执行流程 就像有知觉的生物一样,城西必须在执行过程中控制它的世界并作出选择,在Java中,你要使用执行控制语句来作出选择。 4.1 true和false 所有的条件语句都利用条件表达式的真假来决定执行路径。如a==b,它用操作符==来判断a的值是否等于b的值,返回一个true或false ...
分类:
编程语言 时间:
2019-08-22 10:39:18
阅读次数:
92
下载地址: http://www.gqylpy.com/di/13 《Java编程思想(第4版)》PDF高清完整版 下载 内容简介 编辑 本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性( ...
分类:
编程语言 时间:
2019-08-18 17:18:57
阅读次数:
82
下载地址: http://www.gqylpy.com/di/13 《Java编程思想(第4版)》PDF高清完整版 下载 内容简介 编辑 本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性( ...
分类:
编程语言 时间:
2019-08-18 10:12:09
阅读次数:
83
String类是Java编程中应用最广泛的类,所以每一位程序员都应该仔细研究一番String类的内部实现,这样对我们理解String对象的工作机制、避免错误和提升代码效率有很大好处。你若打开Java语言规范 (Java 9),可以看到4.3.3节中对String对象的简述[1]: String对象的 ...
分类:
编程语言 时间:
2019-08-17 21:44:16
阅读次数:
110