`
文章列表
java输出流的高层抽象:java.io.OutputStream 此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。 需要定义 OutputStream 子类的应用程序必须始终提供至少一种可写入一个输出字节的方法。 OutputStream 实现了两个接口: 1、Closeable:定义输出流需要关闭操作。关闭此输出流并释放与此流有关的所有系统资源。 2、Flushable:定义输出流需要刷新此输出流并强制写出所有缓冲的输出字节。 特点:和java.io.InputStream一样,他的底层就是byte数组的各自操作 我们来瞅瞅它的定义吧。 ...
java的数据源有很多,比如:文件、网络、管道、命令行,甚至是内存。 其实我个人认为 java对流的源头概念做了更抽象的扩展,让一些本来很直观的操作,也封装为io流的形式,会增加理解的坡度。 比如: java.io.ByteArrayInputStream 其实完全可以不设计为流的一部分,因为其本质不过是对byte[] 的一个数据读取的处理,即使不用流的概念,完全可以自己实现自己想要的功能。 但是在某些情况下,使用这种流可能和其他的流更好统一交互。所以从这一点看还是有点意义的 下面就分析java.io.ByteArrayInputStream 的源码实现,因为完全是对byte[]的处理,所以 ...
java io 是java操作数据源非常重要的一块。 java io的分类。 1、从源头来分:输入流和输出流 2、从操纵的内容上来看可分为:字符流(内容是文本)和字节流(内容是整体的) 高层抽象类: 字节输入流 --->java.io.InputStream 字节输出流--->java.io.OutputStream 字符输入流--->java.io.Reader 字符输出流--->java.io.Writer java.io.InputStream 的方法分析如下: 1、    public abstract int read() throws IOExce ...
面试常考的一道题:一句sql删除表里的重复数据。 偶尔和同事聊到这个问题就顺便写了下代码,供大家参考~ //数据准备 drop table t_user; create table t_user( id int(5) not null auto_increment, username varchar(10), age int(3), primary key(id) ); insert into t_user(username,age) values('aaa',20); insert into t_user(username, ...
java注解篇。 注解和注释的作用和使用场景有相似之处,但究其作用和使用场景的差异相去甚远。 基础内容请参考其他资料。 本文重在分析注解相关的api java提供的注解工程支持包在:java.lang.annotation 1、Target :标识注解可以标 ...
java 反射的另外一个主题是动态代理。 关于代理的概念,如果不是太理解,可以先查询参考下设计模式中的代理。 代理的简单概念: 抽象主题:一个接口 真实实现主题:真实实现主题的类 代理实现主题:首先实现和真实主题 ...
java提供了反射功能。保证了运行时获取java 对象、方法、成员等诸多信息。 java提供反射功能的基本支持类库有如下: 1、java.lang.Class 提供了对class文件信息获取的支持。 2、java.lang.reflect.Method 提供了对方法相关信息(参数类型、返回类型、方法名字、注解信息、方法调用等)的获取。 3、java.lang.reflect.Field 提供了对类的成员变量的信息支持。 4、java.lang.reflect.Constructor 提供了对类的构造函数信息(构造函数信息、生成实例等)的支持。 5、java.lang.reflect.A ...
java提供了对运行时class文件信息获取功能的支持,对编写通用组件和底层框架有着重大意义。 Jdk提供此功能的支持类:java.lang.Class 知识提醒: 1、每个Class对象代表了一个class文件信息。所以一个类加载器里只会有一个Class对象。 2、Class对象本身也是Object对象。 3、这个类算是java提供反射功能的一部分,虽然没有在java.lang.reflect包里。 下面这个例子,算是对此类各个方法功能的一个探索和测试,希望对大家有用~ package com.horizon.reflect; import java.lang.annot ...
java中反射使用几率最多的就是方法的反射。 功能支持的类库:java.lang.reflect.Method 提供的功能包括: 1、获取方法上的注解信息。(getAnnotations、getDeclaredAnnotations) 2、获取方式上的某个注解信息Annotation。(getAnnotation(Type.class)) 3、获取方法上的类型参数Type。(getTypeParameters) 4、获取方式声明的异常类型Class[]。(getExceptionTypes) 5、获取方式上的参数注解。(getParameterAnnotations) 6、获取方法返回的数据类 ...
数组反射功能依赖类java.lang.reflect.Array 提供的功能: 1、动态获取数组某个位置的值。 2、动态生成数组对象(一维或者多维)。 3、动态设置数组某个位置的值。 例子: package array; import java.lang.reflect.Array; import java.util.Arrays; /** * 测试Array 反射功能 * @author xinchun.wang * */ public class ArrayReflect { public static void main(String[] ar ...
java 反射功能强大,也是很多基础框架的核心技术。结合jdk1.5 的注解功能java反射技术再很多项目中成了必备的技术。 本例子展现了java.lang.reflect.Field类的使用方法以及方法的含义。 从功能上划分Field反射功能包含: 1、与注解相关方法。声明在 AnnotatedElement 接口中: public interface AnnotatedElement { /** 判断当前Element 是否有annotationClass注解信息 */ boolean isAnnotationPresent(Class ...
Thread类中的join方法的语义: void java.lang.Thread.join() throws InterruptedException Waits for this thread to die. Throws: InterruptedException if any thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown. 翻译为中文:等待这个线程死亡 即:在a线程中,调 ...
java thread 线程中 的synchronized关键字 可以放到方法上,也可以修饰对象上 eg: private synchronized void testSyncMethod() { //当线程执行到此处时,它必须获得一个锁,此时锁定的对象是:调用此方法的对象a } private void testSyncMethod() { synchronized(this){ //当线程执行到此处时,它必须获得一个锁,此时锁定的对象是:调用此方法的对象a } } synchronized 可以修饰任何对象(int 等基本类型不在范围 ...
java的多线程机制非常强大。其中死锁会导致程序无止境的等待,影响系统的正常运行,并且不是发生时立即被发现,一旦被发现定然是,系统出现了明显的功能性无法正常运行,甚至是系统崩溃。 下面我们讨论死锁的成因以及 ...
synchronized 获取的锁,在方法抛出异常的时候会自动解锁 package com.horizon.thread.synchronize; /** * function:主要演示了 synchronized 获取的锁,在方法抛出异常的时候会自动解锁 * @author <a href="wangxinchun@yahoo.com.cn">新春.王</a> * */ public class SynchronizeException extends Thread{ private static volatile ...
Global site tag (gtag.js) - Google Analytics