![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础知识
文章平均质量分 64
风吹叶落131455
一名刚入行的Java菜鸟
展开
-
FilenameFilter
import java.io.File;import java.io.FilenameFilter;public class DirList {public static void main(final String[] args) {try {File path = new File(".");String[] list;if(args.length == 0){原创 2017-02-28 13:58:13 · 172 阅读 · 0 评论 -
构造器的调用顺序
class Meal{Meal(){System.out.println("Meal()");}}class Bread{Bread(){System.out.println("Bread()");}}class Cheese{Cheese(){System.out.println("Cheese()");}}class Lettuce{原创 2017-02-23 17:04:50 · 424 阅读 · 0 评论 -
重写toSting()方法
import java.util.Vector;class Mouse{private int mouseNumber;Mouse(int i){mouseNumber = i;}public String toString(){return "This is Mouse #" + mouseNumber;}void print(String msg){原创 2017-02-24 10:01:44 · 943 阅读 · 0 评论 -
生成自动判别类型的Vector
import java.util.Vector;class Gopher{private int gopherNumber;Gopher(int i){gopherNumber = i;}void print(String msg){if(msg != null){System.out.println(msg);}System.out.println原创 2017-02-24 10:17:30 · 202 阅读 · 0 评论 -
Enumeration 枚举器
import java.util.Enumeration;import java.util.Vector;class Hamster{private int hamsterNumber;Hamster(int i){hamsterNumber = i;}public String toString(){return "This is Hamster # "原创 2017-02-24 10:45:31 · 191 阅读 · 0 评论 -
Stack 和 HashTable
一、stack(后入先出的集合,stack从vector继承而来,拥有vector所有方法)import java.util.Stack;public class Stacks{static String[] months = {"January", "February", "March", "April", "May","June", "July", "August"原创 2017-02-24 11:13:29 · 241 阅读 · 0 评论 -
为 Vector 添加sort()快速排序方法
SortVector .java:import java.util.Vector;interface Compare{boolean lessThan(Object lhs, Object rhs);boolean lessThanOrEqual(Object lhs, Object rhs);}public class SortVector extends Vec原创 2017-02-24 14:46:25 · 1196 阅读 · 0 评论 -
集合操作
import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Iterator;public class Collection1{public static Collection fill(Collection c, int sta原创 2017-02-24 16:19:08 · 138 阅读 · 0 评论 -
ArrayList 和 LinkedList 性能测试
import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.ListIterator;public class ListPerformance{private static final i原创 2017-02-27 11:43:00 · 248 阅读 · 0 评论 -
数组 :排序与搜索
import java.util.Arrays;import java.util.Random;public class Array1{static Random r = new Random();static String ssource = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz";sta原创 2017-02-27 14:26:17 · 123 阅读 · 0 评论 -
Map操作
import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.TreeMap;public class Map1 {public final static String[][] testData1原创 2017-02-27 10:53:24 · 140 阅读 · 0 评论 -
异常 Exception
public MyException(){}public MyException(String msg){super(msg);}public MyException(String msg, int x){super(msg);i = x;}public int val(){return i;}}public class Inheriting{p原创 2017-02-27 16:54:04 · 155 阅读 · 0 评论 -
java中String、StringBuffer、StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[转载 2017-03-06 16:51:21 · 180 阅读 · 0 评论 -
内部类
一、public class Parcel1{class Contents{private int i = 11;public int value(){return i;}}class Destination{private String label;Destination(String whereTo){label = whereTo;}Str原创 2017-02-23 16:33:19 · 125 阅读 · 0 评论 -
常数分组 -- 月份
final class Month2{private String name;private Month2(String nm){name = nm;}public String toString(){return name;}public final static Month2 JAN = new Month2("January"),FEB = new M原创 2017-02-23 16:10:44 · 163 阅读 · 0 评论 -
抽象类与接口的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意。其实,两者转载 2017-02-23 15:19:20 · 157 阅读 · 0 评论 -
序列化 -- Serializable
一、对象序列化,面向那些实现了Serializable接口的对象,可将他们西黄换成一系列字节,并可在以后完全恢复回原来的样子,这一过程也可以在网络上进行,这意味着序列化机制能自动补偿操作系统之间的差异。import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileI原创 2017-03-01 10:22:59 · 141 阅读 · 0 评论 -
特殊的序列化操作 -- Externalizable、transient
一、通过实现Externalizable接口,代替Serializable接口,便可控制序列化的过程,这个接口扩展了Serializable,并增添的两个方法writeExternal()、readExternal()。在序列化和重新装配的过程中,会自动调用这两个方法,以便执行一些特殊操作,只要将想序列化或恢复的数据写入writeExternal()或readExternal()方法中,便可得到想原创 2017-03-01 11:28:38 · 187 阅读 · 0 评论 -
对象的clone
一、为使一个对象能够实现克隆,需实现Cloneable接口,并加入clone()方法,Object类中clone()是protected类型,这里需将其设为publlic;在LocalCopy中,g()和f()方法揭示了两种参数传递方法的差异,其中g()演示的是按引用传递,它会修改外部对象,并返回对那个外部对象的一个引用,而f()是对自变量的克隆,所以将其分离出来,并让原来的对象保持独立,随后,它原创 2017-03-01 17:07:19 · 188 阅读 · 0 评论 -
深拷贝
class DepthReading implements Cloneable{private double depth;public DepthReading(double depth) {this.depth = depth;}public Object clone(){Object o = null;try {o = super.clone();} cat原创 2017-03-01 17:37:18 · 231 阅读 · 0 评论 -
垃圾收集器
Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation)、自动回收(Garbage Collect)功能,这两个操作都发生在Java堆上(一段内存快)。某一个时点,一个对象如果有一个以上的引用(Rreference)指向它,那么该对象就为活着的(Live),否则死亡(Dead),视为垃圾,原创 2017-02-22 16:49:43 · 101 阅读 · 0 评论 -
用Vector进行深层复制
一、Int3自Int2继承而来,将Int2的clone()当做Int3的clone()调用时,它会调用Object.clone(),判断出当前操作的是Int3,并复制Int3内的所有二进制位,只要没有新增需要克隆的句柄,对Object.clone()的一个调用就能完成所有必要的复制,可以总结出对Vector进行深层复制的先决条件:在克隆了Vector后,必须在其中遍历,并克隆由Vector指向的每原创 2017-03-02 09:54:08 · 645 阅读 · 0 评论 -
静态数据的初始化
class Bow1{Bow1(int marker){System.out.println("Bow1(" + marker + ")");}void fun(int marker){System.out.println("fun(" + marker + ")");}}class Table{static Bow1 b1 = new Bow1(1);Ta原创 2017-02-23 10:07:37 · 440 阅读 · 0 评论 -
明确进行的静态初始化
一、class Cup{Cup(int marker){System.out.println("Cup(" + marker + ")");}void fun(int marker){System.out.println("fun(" + marker + ")");}}class Cups{static Cup c1;static Cup c2;sta原创 2017-02-23 10:30:49 · 197 阅读 · 0 评论 -
非静态实例的初始化
class Mug{Mug(int marker){System.out.println("Cup(" + marker + ")");}void fun(int marker){System.out.println("fun(" + marker + ")");}}class Mugs{Mug c1;Mug c2;{c1 = new Mug(1);原创 2017-02-23 10:38:25 · 278 阅读 · 0 评论 -
数组赋值
public class Property {public static void main(String[] args) {int[] a1 = {1,2,3,4,5};int[] a2;a2 = a1;for(int i=0; ia2[i]++;}for(int j=0; jSystem.out.println("a1[" + j + "] = " + a1原创 2017-02-23 10:50:15 · 412 阅读 · 0 评论 -
final关键字
一、final数据(1)、编译期常数,它永远不会改变;(2)、无论static还是final字段,都只能存储一个数据,而且不可以改变,对于基本类型来说,final会将值变成一个常数,但对于对象来说,final会将对象变成一个常数,对象不可改变,但对象本身是可以改变的,例如:class Value{int i = 1;}public class Property {fin原创 2017-02-23 14:13:38 · 128 阅读 · 0 评论 -
继承初始化
class Insect{int i = 9;int j;Insect(){prt("i = " + i + " , j = " + j);j = 39;}static int x1 = prt("static Insect.x1 initialized");static int prt(String s){System.out.println(s);ret原创 2017-02-23 14:43:45 · 128 阅读 · 0 评论 -
java设计模式
一、单列(Singleton)模式:防止除我们提供之外的任何一种方式创建一个对象,必须将所有构造器都设为私有,而且至少要创建一个构造器,防止编译器自动帮我们默认同步一个默认的构造器,(将类设为final可可禁止克隆的产生)final class Singleton {private static Singleton s = new Singleton(47);private int i原创 2017-03-07 14:05:45 · 189 阅读 · 0 评论