
Java
文章平均质量分 72
达霁吧
现任苏拉玛城魔导师学院院长 毕业于银月城魔导师学院 曾就职于科洛桑绝地学院
展开
-
共同学习Java源码--常用数据类型--String(五)
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)an原创 2016-03-29 20:01:00 · 405 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(六)
public boolean equalsIgnoreCase(String anotherString) { return (this == anotherString) ? true : (anotherString != null) && (anotherString.value.length == val原创 2016-03-30 19:56:45 · 502 阅读 · 0 评论 -
基于Java socket和多线程的简易聊天小程序
本人介绍一下基于java多线程和socket实现简易聊天室的小程序。 本程序实现的目标是,一个服务端和N个客户端可以实现互相聊天,客户端一个线程用于发送消息,另一个线程负责接收消息。服务端用N个线程进行消息发送,用N个线程进行消息接收,而且消息的接收和发送互不影响。首先实现服务端,建立类TestThreadServer,首先实现服务端收发线程,用两个默认修饰符修饰的类实现原创 2016-03-08 11:39:23 · 9584 阅读 · 2 评论 -
共同学习Java源码--开篇语
Java源码的阅读对于Java学习来说是非常重要的,本人最近准备学习Java源代码,会写一些专题文章,当然本人水平有限,只能从最初级的学习者的视角来写,所以希望大家多多拍砖。 本人准备先从JDK基础类库开始,从最常见的数据类型写起,然后是util包下的数据结构,然后是IO流,然后是nio包下那些黑科技,然后是concurrent包下那些高大上的工具。。。 希望读者能多多指正本人的错误和原创 2016-03-08 16:29:16 · 516 阅读 · 1 评论 -
共同学习Java源码--常用数据类型--String(七)
public int compareTo(String anotherString) { int len1 = value.length; int len2 = anotherString.value.length; int lim = Math.min(len1, len2); char v1[] = value;原创 2016-04-04 10:24:51 · 319 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(八)
public boolean regionMatches(int toffset, String other, int ooffset, int len) { char ta[] = value; int to = toffset; char pa[] = other.value; int po =原创 2016-04-04 11:31:21 · 346 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(二)
private static void checkBounds(byte[]bytes, intoffset, intlength) { if (length throw new StringIndexOutOfBoundsException(length); if (offset th原创 2016-03-22 22:39:14 · 481 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(九)
public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i h = 31 * h + val[i];原创 2016-04-04 14:21:37 · 452 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十)
public int lastIndexOf(int ch) { return lastIndexOf(ch, value.length - 1); } public int lastIndexOf(int ch, int fromIndex) { if (ch // handle most cases here原创 2016-04-07 19:18:28 · 503 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(三)
下面来看String类的一般方法 public int length() { return value.length; }这是返回String长度的方法,也就是char数组value的长度 public boolean isEmpty() { return value.length == 0; }这是判断S原创 2016-03-26 22:08:17 · 355 阅读 · 0 评论 -
共同学习Spring源码--开篇语
学习Java不能就不能不学习开源框架的源代码,其中Spring系列产品的源代码是非常值得一读的,现在开始共同学习Spring的源代码,先从核心功能开始也就是IOC和AOP。Spring产品有很多类,从哪个类开始看呢?我提供一个思路,就是开发项目时,哪个类被最先调用就先看哪个类的源代码。在Web应用中,web.xml中有这样一段 org.springframework.原创 2016-03-27 20:20:50 · 413 阅读 · 0 评论 -
共同学习Spring源码--ContextLoaderListener和ContextCleanupListener
这个类继承了ContextLoader,实现了ServletContextListener接口。ServletContextListener接口继承了util包的EventListener接口,EventListener没有任何方法。这个接口定义了两个方法:public void contextInitialized(ServletContextEvent sce);这个方原创 2016-03-27 21:17:44 · 2785 阅读 · 0 评论 -
共同学习Java源码--concurrent包黑科技--Executor和ExecutorService
Executor接口的实现类是执行Runnable接口实现类的工具,换句话说就是线程的执行者,也就是线程池的重要组成部分。这个接口就声明了一个方法execute方法,参数是Runnable,不用想也知道是为了执行Runnable,实现多线程任务。ExecutorService接口继承了Executor接口。这个类的注释中有一部分是这样的:一个Executor是提供管理终端的方法,提原创 2016-03-27 22:34:30 · 602 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十一)
public int lastIndexOf(String str) { return lastIndexOf(str, value.length); } public int lastIndexOf(String str, int fromIndex) { return lastIndexOf(value, 0, value.length,原创 2016-04-09 19:26:15 · 487 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(四)
void getChars(char dst[], int dstBegin) { System.arraycopy(value, 0, dst, dstBegin, value.length); }这个方法是将String对象的char数组value从下标为0的索引开始复制到char数组dst中,dst从dstBegin下标开始填充,复制的元素个数为value的长原创 2016-03-28 20:01:32 · 335 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十二)
public String substring(int beginIndex, int endIndex) { if (beginIndex throw new StringIndexOutOfBoundsException(beginIndex); } if (endIndex > value.length) {原创 2016-04-10 10:09:35 · 334 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十三)
public boolean matches(String regex) { return Pattern.matches(regex, this); }这个方法是在判断是否匹配正则表达式,调用的是Pattern类的方法,此处不详细说明。 public boolean contains(CharSequence s) { return i原创 2016-04-10 11:30:13 · 337 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十四)
public String[] split(String regex, int limit) { /* fastpath if the regex is a (1)one-char String and this character is not one of the RegEx's meta characters ".$|()[{^原创 2016-04-10 11:40:16 · 360 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--AbstractStringBuilder(七)
public AbstractStringBuilder insert(int index, char[] str, int offset, int len) { if ((index length())) throw new StringIndexOutOfB原创 2016-04-27 22:01:52 · 370 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十五)
public String toLowerCase(Locale locale) { if (locale == null) { throw new NullPointerException(); } int firstUpper; final int len = value.length;原创 2016-04-15 15:24:24 · 495 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--AbstractStringBuilder(八)
public AbstractStringBuilder insert(int dstOffset, CharSequence s) { if (s == null) s = "null"; if (s instanceof String) return this.insert(dstOffset, (Stri原创 2016-04-28 18:19:32 · 489 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--AbstractStringBuilder(九)
public int indexOf(String str) { return indexOf(str, 0); } public int indexOf(String str, int fromIndex) { return String.indexOf(value, 0, count, str, fromIndex); }原创 2016-04-28 18:49:52 · 358 阅读 · 0 评论 -
共同学习Netty源代码--开篇语
传统的io流已经无法满足日益提高的性能需求了,所以nio和aio应运而生,但是nio的api较为难学所以实战中一般会用Netty和Mina这种封装了nio操作的框架。所以这一系列博客就是阅读Netty源码,版本号为5.0.0.Alpha2原创 2016-05-11 11:41:19 · 292 阅读 · 0 评论 -
共同学习Netty源代码--ByteBuf(一)
Java NIO的API中最重要的三个接口是Selector、Channel和Buffer,其中Selector就像公交车调度管理者、Channel就像公交车、Buffer就像公交车上的座位,而数据就像乘客在这三个的协同作用下进行传输。Netty封装了自己的buffer,也就是ByteBuf抽象类,先来看这个类。public abstract class ByteBuf implement原创 2016-05-11 16:56:56 · 1106 阅读 · 0 评论 -
共同学习Java源码--常用数据类型--String(十六)
public String trim() { int len = value.length; int st = 0; char[] val = value; /* avoid getfield opcode */ while ((st st++; }原创 2016-04-16 20:52:21 · 317 阅读 · 0 评论 -
共同学习Java源代码--数据结构--ArrayList类(五)
public void clear() { modCount++; // clear to let GC do its work for (int i = 0; i elementData[i] = null; size = 0; }这个方法是清除所有元素的方法。首先modCount自原创 2016-05-24 21:46:09 · 371 阅读 · 0 评论 -
共同学习Java源代码--数据结构--AbstractList抽象类(六)
再来看这个类文件中的两个非public类。class SubList extends AbstractList 这个类继承自AbstractList类 private final AbstractList l;一个AbstractList类的引用,代表的是要被截取的List。 private final int offset;一个变量代表下标移动量。原创 2016-05-11 22:27:29 · 400 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--AbstractStringBuilder(一)
菜鸟们去面试时经常会被问道String、StringBuffer、StringBuilder什么区别?菜鸟们回答第一个是不可变字符串,后两个是可变字符串,第二个是线程安全的,第三个是线程不安全的。然后,同样菜的面试官点点头觉得答得不错,可实际是这样么?咱还是看看源码吧,打开StringBuffer的源码和StringBuilder的源码,发现这两个类共同继承自AbstractStringBui原创 2016-04-17 14:30:27 · 962 阅读 · 1 评论 -
共同学习Java源代码--常用工具类--AbstractStringBuilder(二)
public void setLength(int newLength) { if (newLength throw new StringIndexOutOfBoundsException(newLength); ensureCapacityInternal(newLength); if (count原创 2016-04-18 14:57:03 · 383 阅读 · 0 评论 -
一起做面试题--Java多线程交替打印
这道面试题的内容是,要求两个线程交替打印,打印出"12A34B56C78D910E1112F1314G1516H1718I1920J2122K2324L2526M2728N2930O3132P3334Q3536R3738S3940T4142U4344V4546W4748X4950Y5152Z"。一个线程只打印数字,另一个线程只打印字母,打印数字的线程打印两个数字后,打印字母的线程打印一个字母,原创 2016-05-13 19:28:31 · 5349 阅读 · 0 评论 -
一起做面试题--递归读取文件
这是一道面试题,要求给定一个文件路径,读出文件路径下所有文件、文件夹和所有文件夹子文件。不多说了看代码吧。class Node{private String name;//节点名称,为文件名private boolean isDir;//是否是文件夹private Node parent;//上级节点private File self;//节点包含的文件/文件夹priv原创 2016-05-13 21:21:05 · 937 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--StringBuffer(一)
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence类是final的,表明不能被继承,本类继承自AbstractStringBuilder,实现了Serializable和CharSequence两个接口。现在原创 2016-05-03 20:39:18 · 363 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--StringBuffer(二)
public synchronized void ensureCapacity(int minimumCapacity) { if (minimumCapacity > value.length) { expandCapacity(minimumCapacity); } }这个方法是确保value数组长度够用的方法,调用的原创 2016-05-04 20:30:11 · 307 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--StringBuffer(三)
public synchronized StringBuffer delete(int start, int end) { toStringCache = null; super.delete(start, end); return this; } public synchronized StringBuffer delet原创 2016-05-04 20:40:20 · 274 阅读 · 0 评论 -
共同学习Java源代码--常用工具类--StringBuffer(四)
public int indexOf(String str) { // Note, synchronization achieved via invocations of other StringBuffer methods return super.indexOf(str); } public synchronized int indexO原创 2016-05-04 20:56:05 · 271 阅读 · 0 评论 -
共同学习Java源代码--数据结构--ArrayList类(四)
E elementData(int index) { return (E) elementData[index]; }这个方法返回指定下标的元素。 private void rangeCheck(int index) { if (index >= size) throw new IndexOutOfBoundsE原创 2016-05-16 20:30:14 · 270 阅读 · 0 评论 -
共同学习Java源代码--数据结构--ArrayList类(三)
public int size() { return size; }这个方法返回集合中元素数,直接返回size变量。 public boolean isEmpty() { return size == 0; }这个方法判断集合是否为空,返回size是否为空。 public boolean contains(Ob原创 2016-05-16 18:55:48 · 337 阅读 · 0 评论 -
共同学习Java源代码--数据结构--ArrayList类(二)
public void trimToSize() { modCount++; if (size elementData = (size == 0) ? EMPTY_ELEMENTDATA : Arrays.copyOf(elementData, size);原创 2016-05-15 21:51:06 · 338 阅读 · 0 评论 -
共同学习Java源代码--数据结构--ArrayList类(一)
这个类大家都很熟悉了,现在来看这个类的源代码。public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable这个类继承自AbstractList类,实现了List接口,RandomAccess接口,Cloneable接口和Serializ原创 2016-05-12 21:10:25 · 484 阅读 · 1 评论 -
共同学习Java源代码--数据结构--开篇语
这一系列非常重要,面试时考源代码首先要考这一部分,数据结构就是指util包下,Collection和Map这两个接口的子子孙孙们。首先先从Collection接口写起。原创 2016-05-05 20:01:28 · 488 阅读 · 0 评论