java
lichuanzhi7909
这个作者很懒,什么都没留下…
展开
-
JAVA数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashta转载 2013-06-11 19:42:50 · 120 阅读 · 0 评论 -
java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。 下面开始正文。 【案例1】通过一个对象获得完整的包名和类名 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package Refl转载 2013-08-19 15:31:20 · 130 阅读 · 0 评论 -
java应用程序打包体验
之前帮一个老师弄过一个数字印刷测控条的软件,名字比较装逼其实内容非常简陋,只是将几种测控条的图形加作用显示出来并支持打开原始pdf文件已经ps文件,现在老师要求把这个文件打包一下。说实话学了这么久java那么就是在eclipse上跑,那么就是android在手机上跑,还没有打包过在pc上运行,本以为不会太麻烦,结果遇到不少麻烦,花了些时间。 碰到的一个麻烦就是我们在eclipse上原创 2013-08-19 10:23:16 · 139 阅读 · 0 评论 -
java多层嵌套语句跳入指定层次
在单循环语句中我们常常使用break来跳出当前循环,但是嵌套的循环语句并想要跳入指定层次就相对麻烦,今天看到一个小技巧。 public void showExample() { breakFor: for (int i = 0; i 100; i++) { for (int j = 0; j 100; j++) { i原创 2013-08-19 14:49:50 · 179 阅读 · 0 评论 -
synchronized(this)与synchronized(class)
synchronized(class)很特别,它会让另一个线程在任何需要获取class做为monitor的地方等待.class与this做为不同的监视器可以同时使用,不存在一个线程获取了class,另一个线程就不能获取该class的一切实例. 根据下面的代码自行修改,分别验证下面的几种情况: synchronized(class) synchronized(this) -转载 2013-08-07 10:13:08 · 109 阅读 · 0 评论 -
hashcode() 与 equals()
之前在淘宝的面试有一道题,问一个类要作为map的key需要重写哪个方法,当时完全没有这个概念,现在知道了来总结一下equals和hashcode。 一般来说要作为key需要重写equals方法,来保证唯一性(key相等value也要相等),当然非散列的map和set不需要重写也没关系,如TreeSet,TreeMap,因为他们查找value时不需要使用hashcode,但是其他散列的原创 2013-08-19 22:31:55 · 133 阅读 · 0 评论 -
Thread.setDaemon(true); 守护线程
Daemon Thread 守护线程,Java中可以这样认为:守护主线程(main thread)的线程,与main thread同生共死。默认创建的线程是不是守护线程,要看创建它的线程(父线程)是否守护线程,它与父线程一致。main线程不是守护线程。 所以大部分,我们使用的创建的不是守护线程,想要让它成为守护线程,用thread.setDaemon(true)。这样它就与main同生共死了原创 2013-08-08 09:51:21 · 198 阅读 · 0 评论 -
sleep(),wait(),yield()总结
sleep意思是当前正在被服务的线程需要睡一会,醒来之后继续被服务,但是锁不会释放,同是也不需要再同步代码块种调用,同是sleep是一个静态方法,所以t.sleep(),起作用的不是t线程,而是当前线程。sleep()可使优先级低的线程得到执行的机会,当然也可以让同优先级和高优先级的线程有执行的机会。 wait()会释放掉同步锁,因此必须是拥有锁才可以,所以需要在同步代码块中调用,在等待时间原创 2013-08-21 11:18:15 · 179 阅读 · 0 评论 -
Java泛型简明教程
你没有办法做到这些。事实上你不能够往一个使用了? extends的数据结构里写入任何的值。 原因非常的简单,你可以这样想:这个? extends T 通配符告诉编译器我们在处理一个类型T的子类型,但我们不知道这个子类型究竟是什么。因为没法确定,为了保证类型安全,我们就不允许往里面加入任何这种类型的数据。另一方面,因为我们知道,不论它是什么类型,它总是类型T的子类型,当我们在读取数据时,能确保转载 2013-08-12 15:36:47 · 192 阅读 · 0 评论 -
Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别 从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。 但是当前正在被服务的线程可能觉得cpu的服务质量不够好,转载 2013-08-05 15:04:40 · 143 阅读 · 0 评论 -
AtomicBoolean初见
java.lang.Object java.util.concurrent.atomic.AtomicBoolean 继承自Object。用法 其实就是在这个Boolean值的变化的时候不允许在之间插入,保持操作的原子性方法和举例 这个类就没有几个方法,主要的就个,我们看一看compareAndSet(boolean expect, bool原创 2013-07-15 09:42:16 · 356 阅读 · 0 评论 -
根据重定向地址判断登陆是否成功
* 获取响应头重定向地址 * @param response * @return */ public String getRedirectLocation(HttpResponse response) { String sReturn; Header locationHeader = response.getFirstHeader("Location"); if (lo转载 2013-06-04 16:55:18 · 271 阅读 · 0 评论 -
HttpClient4.0&HtmlCleaner用法
****************************HttpClient4.0用法***************************** 1、初始化HttpParams,设置组件参数 //HttpParams接口代表一个不可改变值的集合,定义一个组件运行时行为。代表一个对象集合,该集合是一个键到值的映射。 //HttpParams作用是定义其他组件的行为,一般每转载 2013-06-04 16:58:08 · 183 阅读 · 0 评论 -
Java程序员面试中的多线程问题
很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。 0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量转载 2013-06-14 09:43:59 · 106 阅读 · 0 评论 -
IT旅途——程序员面试经验分享
面试是职场的永恒话题,如何在职场面试中脱颖而出,获得心仪职位?这里搜集了关于面试经验的热文,其中汇集了阿里巴巴、百度、微软几个知名公司的面试题以及部分答题方法、技巧、面试的心得体会,供读者参考。 [1] 教你如何迅速秒杀掉:99%的海量数据处理面试题 本文分成两部分。第一部分、从set/map谈到hashtable/hash_map/hash_set,简要介绍下set/map/mult转载 2013-06-14 09:54:51 · 174 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它转载 2013-06-14 09:21:27 · 106 阅读 · 0 评论 -
java监听器实现原理
监听器实现者: public class MyActivity extends Activity implements InternetManager.Listener { private TextView mText; private InternetManager mInetMgr; /* called just转载 2013-06-04 15:08:22 · 317 阅读 · 0 评论 -
Queue
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 offer,add区别: 一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。 这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。 poll,remove区别: remove转载 2013-06-04 13:32:03 · 105 阅读 · 0 评论 -
Eclipse快捷键 10个最有用的快捷键
1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。 2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下转载 2013-06-28 16:29:06 · 121 阅读 · 0 评论 -
jvm加载过程
类从加载到虚拟机到卸载,它的整个生命周期包括:加载(Loading),验证(Validation),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using)和卸载(Unloading)。其中,验证、准备和解析部分被称为连接(Linking)。 加载: 在加载阶段,虚拟机主要完成三件事: 1.通转载 2013-09-23 20:28:44 · 157 阅读 · 0 评论