- 浏览: 341028 次
- 性别:
- 来自: 北京
最新评论
-
bbls:
有用有用有用
java-jvm-jstack-(监视器和锁的概念) -
王新春:
小侠有点帅哦 写道此流怎么关闭新春这个实现 可以不关闭的,哈哈 ...
源码剖析之java.io.ByteArrayOutputStream -
小侠有点帅哦:
此流怎么关闭新春
源码剖析之java.io.ByteArrayOutputStream -
cumt168:
写的很好为什么初始化参数,年轻代-Xmn10M def new ...
jvm之内存申请过程分析 -
ronin47:
应该是跟共享域名思路差不多,根据cookie的key作判断
跨域:一种通过服务端解决跨域的实现
文章列表
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 ...