
JAVA基础
文章平均质量分 75
TangHH_Tim
学以致用
展开
-
类加载器
作用:当程序用到某个类中,由类加载器将类的字节码加载进内存。 JAVA虚拟机中可以安装多个加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader, AppClassLoaderxxx.class.getClassLoader.getClass( ).getName( );//获取某个类的类加载器的名称。但是调原创 2012-07-10 18:46:20 · 458 阅读 · 0 评论 -
Socket
一.网络编程网络模型:OSI参考模型:应用层、表示层、会话层、传输层、网络层、链路层、物理层TCP/IP参考模型:应用层:FTP,HTTP传输层:UDP协议和TCP协议网际层:主机至网络层 二.网络通讯要素a) IP地址:网络设备标识类:InetAddress InetAddress原创 2012-07-25 10:16:44 · 497 阅读 · 0 评论 -
继承、super、复写、final、对象初始化过程
继承的概述当多个类中存在相同的属性和行为时,将这些内容抽取到一个类中,那么多个类都无需再定义那么多属性和行为,只需继承单独的那个类即可。 子类可以访问父类非私有的方法和属性通过extends关键字让类与类之间产生继承关系 继承的出现提高了代码的重用性,继承的出现让类与类之间产生了关系,提供了多态的前提。原创 2012-07-25 10:08:09 · 1023 阅读 · 0 评论 -
Set集合:HashSet、TreeSet、泛型
Set集合接口Set集合的功能及函数和Collection是一致的常见的子类:HashSet : 底层数据结构是Hash表,线程是非同步的。保证元素唯一性的原理:判断元素的hashcode值是否相同,如果相同,还会继续判断元素的equals方法是否为真。TreeSet:可以对Set集合中的元素进行排序。实现Comparable接口后,对象才具有比较性原创 2012-07-25 10:10:32 · 1578 阅读 · 0 评论 -
GUI
一. 概述: GUI图形用户界面GLI命令行 二. 包 java.Awt:抽象窗口工具包,需要调用本地系统方法实现功能。属重量级控件。javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由JAVA实现。增强了移植性,属轻量级控件。 三. 继承关系 Comp原创 2012-07-25 10:16:12 · 440 阅读 · 0 评论 -
多线程
创建线程的两种方式:继承Thread类,覆盖.run()方法,在子类创建对象时,线程就建立了。.start()方法启动线程。如果不启动,直接.run()方法,这时run()方法的内容还是主线程运行的。多线程根本没有启动。 实现Runnable接口,实现.run()方法,创建Thread类对象,将Runnable的子类以参数形式传递到Thread类的构造方法中。 然后Thread类的对象原创 2012-07-25 09:58:20 · 389 阅读 · 0 评论 -
抽象类、接口、多态、内部类、匿名内部类、异常、包、jar包
抽象类概述定义没有方法体的方法,该方法的具体实现方式由子类完成,该方法就称为抽象方法,包含抽象方法的类叫抽象类。 当多个对象都具备相同功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体。那么只有功能声明,没有功能主体的方法称为抽象方法。 抽象类的特点抽象类或抽象方法都必须要用abstract关原创 2012-07-25 10:08:45 · 1393 阅读 · 1 评论 -
String、StringBuffer、StringBuilder
String类字符串是一个特殊的对象字符串一旦初始化就不可以被改变 String str=”ABC”;String str = new String(“ABC”);前者只存在一个对象后者存在两个对象,new、“ABC” equals在String类中是对比内容的,因为String类复写了Ob原创 2012-07-25 10:09:42 · 499 阅读 · 0 评论 -
集合、list、迭代、linkedList
集合类定义:用于存储对象最常用的一种方式集合类与数组的比较:数组和集合类同是容器,数组虽然也可以存储对象,但是长度固定,而集合类为可变长度,数组可存储基本数据类型,集合只存放对象,而且可以存放不同类型的对象。 集合框架中的常用接口Collection接口有两个子接口:List(列表) Set(集)原创 2012-07-25 10:10:05 · 2096 阅读 · 0 评论 -
System、Runtime、Date、Calendar、Math
System类中的方法和属性都是静态的。out:标准输出,默认是控制台in: 标准输入,默认是键盘 获取系统属性信息:Properties getProperties();因为Properties是Hashtable的,也就是Map集合的子类对象,那么可以通过map的方法取出集合中的元素,该集合中存储都是字符串,没有泛型定原创 2012-07-25 10:11:37 · 360 阅读 · 0 评论 -
IO:字符流、字节流
IO流流按操作数据分为两种:字节流与字符流流按流向分为:输入流、输出流 字节流的抽象基类:InputStreamOutputStream 字符流的抽象基类:ReaderWiter这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。 字符流原创 2012-07-25 10:11:56 · 463 阅读 · 0 评论 -
工具类:Collections 、Arrays
Collections工具类成员全是static的 专门对集合进行操作的类。 sort方法Collections.sort( )可自定义比较器 max方法Collections.sort( )可自定义比较器 binarySearch二分查找原创 2012-07-25 10:11:14 · 500 阅读 · 0 评论 -
运算符
& 和 && 的区别,| 和||的区别?不管右边结果是什么,都要去执行左边。 ^ 和 | 的区别,当两边都为true时返回false。 进制的转换:十进制转二进制:对十进制除以2,如: 6 = 110 二进制转十进制:二进制乘以2,如 110 ,0*2(0)+1*2(1)+1*2(2) 二进制转十六进制:四个二进制就是一个16进制位。如:0101 10原创 2012-07-25 08:40:50 · 511 阅读 · 0 评论 -
数据类型转换
简单数据类型有(byte,short,char)-int-long-float-double 简单数据类型转换又分为: 低级到高级的自动类型转换; 以上列顺序从右至左转换,可以自动转换。但(byte,short,char)是平级的,它们之间的转换需要强原创 2012-07-25 09:55:52 · 507 阅读 · 0 评论 -
Map集合
Map集合特点: 该集合存储键值对。一对一对往里存,而且要保证键的唯一性。 方法 添加 i. put(K key, V value)返回的V,为之前同键的值。 ii. putAll(Map<? ext原创 2012-07-25 10:10:53 · 571 阅读 · 0 评论 -
IO流 缓冲区、装饰模式
字符流的缓冲区对应类:BufferedWriterBufferedReader缓冲区的出现是为了提高流的操作效率,所以在创建缓冲区之前必须要先有流对象。将需要被提高效率的流对象作为参数传递给缓冲区的构造函数。关闭缓冲区,就是在关才缓冲区中的流对象。newline():换行FileWriter fw = FileWr原创 2012-07-25 10:12:58 · 878 阅读 · 0 评论 -
多线程之消费者与生产者1.5前后实例
1、 消费者与生产者(多个线程操作一个run方法时)1.5以前的版本class Resource { private String name; private int count = 1; private boolean flag = false; public synchronized void set(String name) { while (flag) try原创 2012-07-25 14:34:39 · 346 阅读 · 0 评论 -
类、匿名类、静态、构造、单例
类的定义类中包含:成员变量、成员函数 成员变量:成员变量定义在类中,在整个类中都可以被访问。成员变量随着对象的建立而建立,存在于对象所有的堆内存中。成员变量有默认初始化值。 局部变量:局部变量只定义在局部范围内,如函数内、语句内等。局部变量存在于栈内存中,作用范围结束,变量空间会自动释放。局部变量没有初始化值。 创原创 2012-07-25 09:56:52 · 523 阅读 · 0 评论 -
内省(introSpector)
用于对JavaBean(特殊的Java类:符合一些特殊的规则get/set方法)操作。当一个普通的类中有getXxx , setXxx方法时,就可以当做一个JavaBean来操作。在JavaBean中并不知道这个类中的成员名称,所以就把去除get , set后的名称当做成员名称: 如果去除get , set后的名称的第二个字母是小写,则把第一个字母变成小写。如:原创 2012-07-12 16:06:35 · 559 阅读 · 0 评论 -
泛型
泛型 JDK1.5新特性在JDK1.5以前ArrayList arrList = newArrayList();arrList.add(123);arrList.add(“abc”);arrList.add(1L);int i =(Integer) arrList .get(1);//取出的类型不确定 在JDK1.5以后ArrayList a原创 2012-07-12 17:00:56 · 400 阅读 · 0 评论 -
PrintStream 和 PrintWrite
打印流:该流提供了打印方法,可以将各种数据类型的数据都原样打印。分为:PrintStream(字节打印流) PrintWriter(字符打印流) PrintStream构造函数可以接收的参数类型:1. File对象。File2. 字符串路径。String3. 字节输出流。OutputStream PrintWriter构原创 2012-07-13 12:40:33 · 564 阅读 · 0 评论 -
管道流 PipedInpuStream 、PipedOutputStream
涉及到多线程的IO流例:import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;class Read implements Runnable{ private PipedInputStream in; public Read(PipedInp原创 2012-07-13 21:22:22 · 399 阅读 · 0 评论 -
Socket
获取网络IP地址及主机名等信息:InetAddress类InetAddress I = InetAdress.getLocalHost();//结果是主机名和IP地址System.out.println(i.toString);//结果是IP地址System.out.println(“address:”+i.getHostAddress());//结果是主机名System.out.pri原创 2012-07-12 17:34:44 · 512 阅读 · 0 评论 -
SequenceInputStream 合并流 与 切割流
将多个流合并成一个流SequenceInputStream(Enumeration e) SequenceInputStream(InputStream s1, InputStream s2) 例:将多个文件合并到一个流中,再写到一个文件中: Vector v = new Vector(); v.add(new FileInputStrea原创 2012-07-13 17:20:55 · 648 阅读 · 0 评论 -
RandomAccessFile 随机访问文件
该类不算是IO体系中的子类,而是直接继承自Object。但是它是IO包中的成员,因为它 具备读和写的功能。内部封装了一个数组,而且通过指针对数据的元素进行操作,可以通过getFilePointer获取指针位置可以通过seek改变指针的位置 可以完成读写的原因:类内部封装了字节输入流和输出流 局限性:该类只能操作文件,而且操作文件还有模式:r 读 rw 读写。原创 2012-07-13 22:05:23 · 933 阅读 · 0 评论 -
ByteArrayInputStream 和 ByteArrayOutputStream 可以直接操作byte数组的流对象
操作字节数组中数据的对象ByteArrayInputStream与ByteArrayOutputStream对象 ByteArrayInputStream:在构造的时候,需要接收数据源,而且数据源是一个字节数组。ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象中已经内部封闭了可变长度的字节数组。这就是数据目的地。 因为这两个流对象都操作原创 2012-07-13 22:29:06 · 538 阅读 · 0 评论 -
反射
Class类JAVA程序中的各个Java类属于同一类事物,描述这类事物的java类名就是Class。Class类提供的方法很多,例如:getName,getMethod,getPackage..... Class引用 没有构造方法或构造方法私用。所以不能用new的方式获取实例。如何得到各个字节码对应的实例对象(Class类型)1. 类名.class,例如:S原创 2012-07-12 16:51:59 · 649 阅读 · 0 评论 -
Properties
因为Properties是Hashtable的子类,所以是键值对形式。Properties prop = new Properties();设置prop的值prop.setProperty("zhangsan","39");获取prop的值prop.getProperty("zhangsan");//参数里填入键,就能获取值获取prop全部的值原创 2012-07-13 10:52:50 · 303 阅读 · 0 评论 -
DataInputStream 和 DataOutputStream 用于操作基本类型的流对象
public static void read()throws Exception{ DataInputStream dos = new DataInputStream(new FileInputStream("aaabb.txt")); int i = dos.readInt(); boolean b = dos.r原创 2012-07-13 22:10:59 · 654 阅读 · 0 评论 -
注解
了解注解及java提供的几个基本注解 注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。看java.lang包,可看到JDK中提供的最基本的annota原创 2012-07-12 16:28:51 · 331 阅读 · 0 评论 -
ObjectInputStream 和 ObjectOutputStream(对象的序列化、持久化)
将堆内存中的对象存储在硬盘上被持久化的对象必须实现了Serializble接口write() 和 writeInt()区别:前者只存储的int的最低8位,后者存储int的4个8位全显示。没有方法的接口称之为 标记接口,相当于把实现它的类标注一下。Serializble接口下只有一个常量:serialVersionUID 用于实现它的子类分配一个UID,这个UID和保原创 2012-07-13 20:48:45 · 740 阅读 · 0 评论 -
代理类
在代理方法中的如下四个位置加上系统功能代码:在调用目标方法之前,在调用目标方法之后,在调用目标方法前和后,在异常处理的catch块中可以通过Proxy.getProxyClass()来动态创建一个代理类:参数1:由哪个类加载器加载这个代理类,我们一般指定为后面接口的加载类参数2:这里可有多个接口。但必须是目标类实现了的接口Class clazz = Proxy.getP原创 2012-07-10 17:58:42 · 1718 阅读 · 0 评论 -
File类、递归
File类用来将文件或者文件夹封闭成对象。方便对文件与文件夹的属性信息进行操作。File对象可以作为参数传递给流的构造函数。流只能操作数据,如果要操作文件的信息就必须要用File类。 构造方法//将文件封装成对象,可以将已有的和未出现的文件或文件夹封装成对象。File f = new File(“文件夹及文件路径原创 2012-07-25 10:13:30 · 1173 阅读 · 0 评论