java基础
郭大圣兮
生命不息,折腾不止
展开
-
String StringBuilder 和StringBuffer StringTokenizer的区别
1):创建的方式不同 String str = new String ("abc"); || String str ="abc"; StringBuffer Stbf = new StringBuffer("abc"); String 字符串修改的原理: String str = new String("hello"); str = str+"world"; 该过程的内部机制如下:原创 2015-07-18 19:56:43 · 675 阅读 · 1 评论 -
策略设计模式
下面通过一个小例子来讲一下策略模式 接口类: 在该接口中定义了operator抽象方法 public interface Strategy { public void operate(); } 沙和尚所拥有的方法 public class firstMethod implements Strategy{ @Override public void oper原创 2015-07-23 17:02:16 · 284 阅读 · 0 评论 -
java.util.ResourceBundle使用详解
文章出处:http://lavasoft.blog.51cto.com/62575/184605/ 一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支持更多的语言环境转载 2015-09-09 15:19:41 · 268 阅读 · 0 评论 -
java序列化和反序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是转载 2015-07-18 23:04:17 · 432 阅读 · 0 评论 -
java链表操作
本来该学习java链表源码了,在学习源码之前先复习一下java的链表知识 下面是java操作链表的几个简单例子: 先定义一个Node的类public class Node { private int record;//变量 private Node nextNode;// public Node(){ } public Node(int record){原创 2015-12-27 21:31:06 · 493 阅读 · 0 评论 -
hashmap源码剖析
一、HashMap概述 二、HashMap的数据结构 三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 7、Fail-Fast机制 一、HashMap概述 HashMap基于哈希表的 Map 接口的实转载 2016-01-01 20:00:52 · 332 阅读 · 0 评论 -
java.util.hashSet的源码剖析
一、 HashSet概述:HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。二、 HashSet的实现:对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接转载 2016-01-01 20:20:47 · 349 阅读 · 0 评论 -
正则表达式2
一:抓取网页中的Email地址利用正则表达式匹配网页中的文本[\w[.-]]+@[\w[.-]]+\.[\w]+将网页内容分割提取 复制代码import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; im转载 2016-01-02 16:52:18 · 354 阅读 · 0 评论 -
java.util.List源码分析
list内部实现是一个名叫elementData的数组 1>list类的构造函数: private transient Object[] elementData;//用来作为一个缓冲数组 //带初始化的构造函数,initialCapacity代表数组的初始容量 public ArrayList(int initialCapacity) { super();原创 2015-12-27 18:03:27 · 495 阅读 · 0 评论 -
sleep和wait的内部机制
一.概念、原理、区别 Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:可运行,运行,阻塞,死亡。抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行。 当有多个线程访问共享数据的时候,就需要对线程进行同步。线程中的几个主要方法的比较: Thread类的方法:sleep(),yield()等转载 2015-07-19 20:09:58 · 431 阅读 · 0 评论 -
ExecutorService线程池
ExecutorService 建立多线程的步骤: 1。定义线程类 class Handler implements Runnable{ } 2。建立ExecutorService线程池 ExecutorService executorService = Executors.newCachedThreadPool(); 或者 int c转载 2015-07-19 22:25:57 · 225 阅读 · 0 评论 -
StringBuffer 和StringBuilder的区别
1):功能上来说是等价的,只是StringBuffer的方法大多都使用了Synchronized关键字修饰,所以是线程安安全的 2):都继承的是AbstractStringBuilder AbstractStringBuilder 的实现原理: StringBuilder和StringBuffer为了更好的提高字符串的连接效率 直接使用+进行字符串链接的话,JVM会创建多个String对象原创 2015-07-18 22:26:19 · 335 阅读 · 0 评论 -
java中的类型转换
转换的规则为:从低精度向高精度转换 byte(一个字节) 注意:基本数据类型和boolean类型不能相互转换 java在涉及byte and char 类型的运算是,先把这些类型的变量值强制转化为int类型,然后在对int类型的值进行计算,最后得到的值也是int类型的 如果想得到short类的值,需要显示的转换为short类型 例如: short s1 = 1; s1原创 2015-07-18 18:34:54 · 416 阅读 · 0 评论 -
判断一段字符中是否含有中文
public judgeChinese(String str) { String regex = "[\u4e00 - \u9fa5]"; if(str.getBytes().length == str.length) { s.o.p("没有汉字"); } else { pattern p = pattern.compile(regex); Matcher m = p.m原创 2015-07-18 18:53:55 · 363 阅读 · 0 评论 -
Math类中的round,ceil,floor
round:四舍五入,在原数的基础上先加5然后再向下取整 ceil 向上取整 floor 想下取整,原创 2015-07-18 18:38:29 · 332 阅读 · 0 评论 -
java中的内存泄漏
内存泄漏只要存在两个方面: 1):在堆中申请的内存,在还没有被释放掉的时候,便删除了所有能访问这块内存的方式 2):内存中的对象在已经不需要的时候,还保存着这块内存和他的访问方式 对于第一种,java的内存机制已经很好的解决了,第二种,则需要我们自己小心避免,主要看是发生在那块内存上的泄漏。 java的内存空间大致分为堆,栈,方法区 堆:用来存放运行时创建的对象,一般通过new创建的对象原创 2015-07-19 10:04:46 · 426 阅读 · 0 评论 -
字符串创建和存储机制1
1): String s1 = new String ("abc"); String s2 = new String("abc"); 存在两个引用对象,s1,s2 两个内容相同的字符串对象"abc"他们在内存中的地址是不同的, 只要new 就一定会生成对象 2):但是s1,s2引用的是字符串池中的同一个"abc" String s1 = "abc";//在常量区中存放了一个ab原创 2015-07-18 19:42:30 · 332 阅读 · 0 评论 -
字符串创建和存储机制2
上期答案: 可能创建了一个对象,也可能创建了两个 new 运算符一定在堆中创建了一个对象,但是字符串对象“abc”,可能字符串池中已经存在intern()函数会直接返回给它的引用,如果不存在,则创建一个返回原创 2015-07-18 19:44:08 · 275 阅读 · 0 评论 -
finally代码块中的代码什么时候执行
如果try catch 中含有return语句,会先执行finally中的语句 try{ System.out.println("try中的语句"); return 0; }catch(excption e){ System.out.println("catch中的语句"); return 0; }finally{ System.out.println("finally中的语句")原创 2015-07-18 22:41:48 · 1495 阅读 · 0 评论 -
java.lang.Integer源码分析
1>compareTo(Integer anotherInteger) : 在数字上比较两个 Integer 对象。 返回有三个结果: :相等返回0 :first > second 返回1 :first < second 返回-1 源码如下:很简单不多说了 public int compareTo(Integer anotherInteger) { int thisVal = t原创 2015-12-27 00:15:38 · 431 阅读 · 0 评论