12 2016 档案
摘要:1.File类的构造方法 2.几个常用的方法 ①File.listRoot可以看见这是个静态方法,作用就是看你的磁盘根目录。返回File[]file ②createNewFile();没有代码了就是看看File对象的目录是不是存在,不存在新建一个文件。返回boolean 算了不写了直接参考api吧。
阅读全文
摘要:1.首先是字节操作:InputStream和OutputStream 2.字符操作:Reader和Writer 3.磁盘操作:File 4.网络操作:scoket(不在java.io包)
阅读全文
摘要:原文来自:http://ifeve.com/race-conditions-and-critical-sections/ 首先回答什么是竞态条件? 当多个线程访问同一资源,对访问顺序敏感,就称为竞态条件。 什么是临界区? 导致竞态条件发生的代码区称作临界。 当两个线程访问add()时 那么这里的结果
阅读全文
摘要:1.一些情况下设计更加复杂,例如在需要共享数据,一些不正确的同步方式难以发现 2.上下文切换带来的开销。它需要先存储当前线程的本地的数据,程序指针等。上下文切换带来的开销并不廉价。 3.增加资源消耗,多线程在充分利用cpu性能的同时,也给内存带来了很大的负担。
阅读全文
摘要:主要来源:http://blog.csdn.net/luoweifu/article/details/46613015 1.synchronized(this) 锁住当前对象,只允许一个线程访问该代码块。 注意 那么如何解决不同对象的问题呢?? 那么
阅读全文
摘要:看代码 看结果 计数线程计数1 计数线程计数2即将中断阻塞系统捕获了中断异常 计数线程计数3 计数线程计数4 计数线程计数5 现在看结果,带着问题来看。 为什么中断会发生在第二次循环开始? 这里就要涉及主线程的问题。当我们创建一个线程是在主线程的基础上,创建一条线程那也是多线程。这里的中断时对于t1
阅读全文
摘要:继承Thread 实现Thread 事实上Thread()类也是实现了Runnable()接口,这就是为什么我们在写run()方法,是重写的。
阅读全文
摘要:1.iterator遍历linkedlist集合 这里可以看见Iterator li = list.iterator(); 那么这个iterator()方法是在它的抽象父类中,通过new Itr();去实例化这个Iterator对象。 这里cursor初始化值为0; 当cursor等于size的时候
阅读全文
摘要:实现源码 这里可以看见当我们new一个hashset时,实际上hashset类又创建了一个hashmap对象map。 当我们调用add方法时,实际上add(e)对象e作为map的key值,因为map的key不允许重复,所以set集合不允许重复元素,因为hashtable算法实现原理所以set集合也是
阅读全文
摘要:注:以下内容并非基于最新的jdk版本 q1:hashmap为什么叫hashmap? 答:hashmap基于hashtable(不是hashtable类)实现。 q2:hashtable(不是hashtable类)又什么? 答:hashtable是一个数组加链表的数据结构,以下使用hashmap举例说
阅读全文
摘要:1.hashcode的作用? hashcode代表对象的特征,在集合类中广泛的使用。 2.hashcode是如何生成的? 在普通的对象中,获得对象的内存的地址,经过一些算法,不同对象生成不同的hashcode 字符串类型,它会根据字符串的内容,生成相关的hashcode Integer类型,返回数字
阅读全文
摘要:1.与运算&,同为1为1,否则为0; 例如:10001(二进制)&10000(二进制)=10000(二进制) 2.或运算|,只要有1就是1; 例如:10001(二进制)&10000(二进制)=10001(二进制) 3.非运算~,1为0,0为1; 例如:~10001(二进制)=01110(二进制) 4
阅读全文
摘要:看代码! 就是说i=8+j++ 等价于 i=8+j然而这时候j已经等于j+1了。 那么 i = 8+ ++j等价于 i = 8+(j+1)这时候j已经等于j+1了。
阅读全文
摘要:LinkedList底层的实现基于双向表 next指向下一个node的地址。prev指向上一个node。 这里的代码是LinkedList类的源码。 那么当我们是用list.add(e);方法时会添加到这个链表的末位 那么链表的首尾node的prev和next,看实现代码 也就是说,firstnod
阅读全文
摘要:有参构造的用处在于构造一个对象的同时初始化它的属性。
阅读全文
摘要:源起:查看COLLECIOTNS类 Q1:为什么java需要泛型? 因为java对于对象类型的确认在编译期,那么强制类型转换就可以通过编译,但是运行时的错误却无法避免,那么泛型的存在可以避免强制类型转换的出现。 我的理解,泛型作用于一个对象的属性。 Q2:网上谈到A<Number>及B<Intege
阅读全文

浙公网安备 33010602011771号