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 · 677 阅读 · 1 评论 -
策略设计模式
下面通过一个小例子来讲一下策略模式接口类:在该接口中定义了operator抽象方法public interface Strategy {public void operate();}沙和尚所拥有的方法public class firstMethod implements Strategy{@Overridepublic void oper原创 2015-07-23 17:02:16 · 286 阅读 · 0 评论 -
java.util.ResourceBundle使用详解
文章出处:http://lavasoft.blog.51cto.com/62575/184605/一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支持更多的语言环境转载 2015-09-09 15:19:41 · 270 阅读 · 0 评论 -
java序列化和反序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是转载 2015-07-18 23:04:17 · 433 阅读 · 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 · 494 阅读 · 0 评论 -
hashmap源码剖析
一、HashMap概述 二、HashMap的数据结构 三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 7、Fail-Fast机制一、HashMap概述 HashMap基于哈希表的 Map 接口的实转载 2016-01-01 20:00:52 · 334 阅读 · 0 评论 -
java.util.hashSet的源码剖析
一、 HashSet概述:HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。二、 HashSet的实现:对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接转载 2016-01-01 20:20:47 · 350 阅读 · 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 · 355 阅读 · 0 评论 -
java.util.List源码分析
list内部实现是一个名叫elementData的数组 1>list类的构造函数: private transient Object[] elementData;//用来作为一个缓冲数组 //带初始化的构造函数,initialCapacity代表数组的初始容量 public ArrayList(int initialCapacity) { super();原创 2015-12-27 18:03:27 · 497 阅读 · 0 评论 -
sleep和wait的内部机制
一.概念、原理、区别 Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:可运行,运行,阻塞,死亡。抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行。 当有多个线程访问共享数据的时候,就需要对线程进行同步。线程中的几个主要方法的比较: Thread类的方法:sleep(),yield()等转载 2015-07-19 20:09:58 · 433 阅读 · 0 评论 -
ExecutorService线程池
ExecutorService 建立多线程的步骤:1。定义线程类class Handler implements Runnable{}2。建立ExecutorService线程池ExecutorService executorService = Executors.newCachedThreadPool();或者int c转载 2015-07-19 22:25:57 · 228 阅读 · 0 评论 -
StringBuffer 和StringBuilder的区别
1):功能上来说是等价的,只是StringBuffer的方法大多都使用了Synchronized关键字修饰,所以是线程安安全的2):都继承的是AbstractStringBuilderAbstractStringBuilder 的实现原理:StringBuilder和StringBuffer为了更好的提高字符串的连接效率直接使用+进行字符串链接的话,JVM会创建多个String对象原创 2015-07-18 22:26:19 · 336 阅读 · 0 评论 -
java中的类型转换
转换的规则为:从低精度向高精度转换byte(一个字节) 注意:基本数据类型和boolean类型不能相互转换 java在涉及byte and char 类型的运算是,先把这些类型的变量值强制转化为int类型,然后在对int类型的值进行计算,最后得到的值也是int类型的如果想得到short类的值,需要显示的转换为short类型例如:short s1 = 1;s1原创 2015-07-18 18:34:54 · 418 阅读 · 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 · 364 阅读 · 0 评论 -
Math类中的round,ceil,floor
round:四舍五入,在原数的基础上先加5然后再向下取整ceil 向上取整floor 想下取整,原创 2015-07-18 18:38:29 · 333 阅读 · 0 评论 -
java中的内存泄漏
内存泄漏只要存在两个方面:1):在堆中申请的内存,在还没有被释放掉的时候,便删除了所有能访问这块内存的方式2):内存中的对象在已经不需要的时候,还保存着这块内存和他的访问方式对于第一种,java的内存机制已经很好的解决了,第二种,则需要我们自己小心避免,主要看是发生在那块内存上的泄漏。java的内存空间大致分为堆,栈,方法区堆:用来存放运行时创建的对象,一般通过new创建的对象原创 2015-07-19 10:04:46 · 427 阅读 · 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 · 335 阅读 · 0 评论 -
字符串创建和存储机制2
上期答案:可能创建了一个对象,也可能创建了两个new 运算符一定在堆中创建了一个对象,但是字符串对象“abc”,可能字符串池中已经存在intern()函数会直接返回给它的引用,如果不存在,则创建一个返回原创 2015-07-18 19:44:08 · 276 阅读 · 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 · 1496 阅读 · 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 · 434 阅读 · 0 评论