Java基础
文章平均质量分 63
BOY
这个作者很懒,什么都没留下…
展开
-
Java 异常
被架构师问的面试题1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返转载 2012-03-03 18:36:56 · 275 阅读 · 0 评论 -
关于反射带有数组参数的方法的调用(main)
首先说一下什么叫糖衣语法引入这种语法和原来的语法并没有什么区别,这种语法的引入只是方便程序员的使用,而它是在在编译阶段又转换成原来的语法 在JDK1.5以后有许多这种例子,如是高级for ,枚举,泛型,自动装箱拆箱等,这些都是JDK引入的糖衣语法,当家还有一个可变参数举个例子,大家写一个可变参数的方法,用反编译工作查看编译后的class 文件public statc v原创 2012-03-18 10:02:41 · 2250 阅读 · 0 评论 -
关于hashCode 分析还有有序集合与无序集合的存取条件,避免造成内容泄露
package AdvanceJava;import static java.lang.System.out;import java.util.Collection;import java.util.Comparator;import java.util.HashSet;import java.util.TreeSet;class My implements Compara原创 2012-03-18 14:06:54 · 576 阅读 · 0 评论 -
用类加载器加载配置文件
package AdvanceJava;import static java.lang.System.out;import java.io.InputStream;import java.lang.reflect.Constructor;import java.util.ArrayList;import java.util.Collection;import jav原创 2012-03-18 15:40:15 · 937 阅读 · 0 评论 -
String 类型做参数
package tmp;apublic class Main { public static void show(String s) { //s = "def"; s = s+"def"; // S只是 show方法的一个局部变量, /* * 当我们 String str = "abc"; show(str) 调用这个函数的时候,以我们引用传值的方式来判断,为什么s原创 2012-04-04 22:41:09 · 1483 阅读 · 0 评论 -
BitSet用法
package tmp;import static java.lang.System.out;import java.util.BitSet;public class BitSetTest { public static void main(String args[]) { countChar("happy"); } public static void bitsetTest()原创 2012-04-05 20:19:05 · 1192 阅读 · 0 评论 -
bean 的内省
package AdvanceJava;import static java.lang.System.out;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;public class BeanProperty { public static void main(String ar原创 2012-03-20 18:15:07 · 371 阅读 · 0 评论 -
关于java 您也许不知道的5件事系列
Java 序列化简介 Java 对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将 Java 对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Java 对象原有的状态。 实际上,序列化的思想是 “冻结” 对象状态,传输对象状态(写到磁盘、通过网络传输等等),然后 “解冻” 状态,重新获得可用的 Java 对象。所有这些事情的发生有点像是魔转载 2012-04-18 20:46:34 · 922 阅读 · 0 评论 -
Java 多线程读者写者问题
/* * 读者写者问题 * * */import java.util.concurrent.locks.*;class Buffer { public int buffer[]=new int [10];//用于标识共享的缓冲区 public boolean flag=false;//用于标识缓冲区的状态 public int i;//表示向缓冲区写的位置 }c原创 2011-10-24 19:52:30 · 3665 阅读 · 1 评论 -
黑马程序员—反射调用main方法的问题总结(涉及可变参数)(反射参数是一个数组的函数要小心)
今天跟着张老师的视频学习了一天,在反射中提到用反射调用main方法的问题,其中有一点很不明白 Method mainMethod = Class.forName(startingClassName).getMethod("main", String[].class); mainMethod.invoke(null,(Object)new String[]{"111","转载 2012-03-17 20:21:53 · 1813 阅读 · 4 评论 -
Java 中装箱拆箱的一个细节
package AdvanceJava;public class Box { public static void main(String args[]) { Integer a = 127; Integer b = 127; System.out.println(a==b); Integer c = 128; Integer d = 128;原创 2012-03-15 19:10:15 · 727 阅读 · 0 评论 -
Java枚举--交通灯
package AdvanceJava.enumTest;enum TrafficLamp{ RED(30){ public TrafficLamp nextLamp() { return GREEN; } }, GREEN(20){ public TrafficLamp nextLamp() { return RED;原创 2012-03-15 21:11:24 · 850 阅读 · 0 评论 -
内部类
package syntax;import syntax.OUTER.Innn;public class INNER { public static void main(String args[]) { //Innn in = new OUTER.Innn(); OUTER s = new OUTER(); s.produce(); }原创 2012-03-07 14:23:09 · 300 阅读 · 0 评论 -
java 动态代理
package reflect;import java.lang.reflect.Field;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Arrays;// 定义一个转载 2012-03-11 14:39:50 · 344 阅读 · 0 评论 -
Proxy 动态代理再次理解
package reflect;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import static java.lang.System.原创 2012-03-27 14:19:06 · 4304 阅读 · 5 评论 -
Bean 工厂(AOP)
BeanFactory.javapackage reflect.aop;import java.io.InputStream;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.原创 2012-03-27 17:38:28 · 408 阅读 · 0 评论 -
ProxyFactory
package reflect;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import static java.lang.System.out;interface Action // 目标类的实现的接口{原创 2012-03-27 17:33:41 · 596 阅读 · 0 评论 -
Java 反射
import java.lang.reflect.*;import java.util.*;class PPerson { public static String name;// 静态成员 public final int MAX ; // 常量在定义的时候可以直接初始化,也可以 在构造函数里面初始化 public int age ; public PPe原创 2011-12-07 13:12:22 · 311 阅读 · 0 评论 -
枚举的遍历
package AdvanceJava;/* * 1.枚举主是一个类,而里面的枚举量也就是类中的常量 * 2.在枚举里面的可以定义方法和成员变量 * 3.对于其不可以有公有 的构造函数 * 4.枚举默认实现了comparable 接口,可以进行比较 * 4.枚举中的每一个枚举常量都是一个枚举类型常量,也是是自己new 自己 * 5.可以自己设置它们自己的构造参数 ,原创 2012-03-15 20:20:30 · 5033 阅读 · 0 评论 -
拆箱、字面量、字符串+等细节问题
package AdvanceJava;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Compile { /*public static void say1(List list) { System.out.println("list原创 2012-03-16 16:49:52 · 612 阅读 · 0 评论 -
enum 与 Enum 类的关系
转载:http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.htmlpublic enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private转载 2012-06-19 10:10:26 · 608 阅读 · 0 评论 -
泛型方法-类型推导
/* * 泛型方法:类型推导 */ /* * 在方法中参数没有类型参数时,此时的推导根据 赋值 * String s = test("acb") //此时的类型根据前面的String 面返回 String * 但对于convert,string s = convert("abc") 其类型参数根据 参数来推断的,传进 * 去什么参数,原创 2012-07-09 11:58:43 · 733 阅读 · 0 评论 -
正则表达式
http://blog.csdn.net/allwefantasy/article/details/3136570(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇。作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如转载 2012-08-21 11:40:30 · 900 阅读 · 0 评论 -
java 泛型方法类型推导
http://blog.csdn.net/zerro99/article/details/6118218编译器判断泛型方法的实际类型参数的过程叫做类型推断,类型推断的实现方法是一种非常复杂的过程.根据调用泛型方法时实际传递的参数类型或返回值类型来推断,具体规则如下:如果某类型变量只在方法参数列表或返回值的一处被调用了,那根据调用该方法时该处的实际类型来确定,即直接根据调转载 2012-08-25 11:36:59 · 7517 阅读 · 0 评论 -
经典类初始化例子
package classes;class Cache { private static boolean initialized = false; static { initializeIfNecessary(); } private static int sum; public static int getSum() { initializeI原创 2012-07-14 10:58:25 · 395 阅读 · 0 评论 -
Java 两种数据库的连接
package SQLAction;import java.sql.*;public class Mysql { public static void main(String args[])throws Exception { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/原创 2011-11-26 14:55:47 · 655 阅读 · 0 评论 -
ThreadLocal理解
ThreadLocal 中有一个内部类 ThreadLocalMap ,ThreadLocalMap 是一个Hash结构,而它的健值对是 ThreadLocal/value我们执行ThreadLocal中的get 方法时,可以得到当前线程中的对象,那么它是怎么得到呢?这样我们得先来看一下 Thread 类的东东,打开Thread 类,看见它有这样一个属性:ThreadLocal.Thre原创 2012-10-31 11:19:17 · 1332 阅读 · 0 评论 -
Java 字符串 + 操作原理
public class C { String s1 = "a"; String s2 = "a"+"b"; public static void main(String args[]){ }}在编译时其,如果+ 操作符两边都是常量,那么在编译后将其连接的值放入常量 池中,也就是将 ab 放入常量池,你不会找到常量 b 编译后的指令为:原创 2012-10-23 15:36:28 · 1172 阅读 · 0 评论 -
Java中enum的静态成员的初始化
http://rednaxelafx.iteye.com/blog/460981Java中enum的静态成员的初始化博客分类: JavaJavaCC++C#SUN Java语言规范第三版8.9规定了enum里的构造器、初始化器和初始化块中不得引用该enum中非编译时常量的静态成员域。 引用It is a compile-time erro转载 2012-12-26 12:00:35 · 13336 阅读 · 0 评论 -
数据库dataSource,执行存储过程
在META-INF 下配置 context.xml maxActive="100" maxIdle="30" maxWait="10000" username="root" password="" driverClassName="com.mysql.jdbc.Driver" noAccessToProcedureBodies="fal原创 2012-12-18 12:03:00 · 1213 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层转载 2012-08-17 18:07:45 · 522 阅读 · 0 评论 -
java nio Buffer 中 compact的作用
该方法的作用是将 position 与 limit之间的数据复制到buffer的开始位置,复制后 position = limit -position,limit = capacity但如果position 与limit 之间没有数据的话发,就不会进行复制下面举个例子:将数据从一个channel 读取出来,然后写入另外一个channel ByteBuffer buffer =原创 2012-08-17 17:41:02 · 14677 阅读 · 4 评论 -
将基本类型进行编码
package first;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Arrays;public class GetLongFromStream { public static void main(String args[原创 2012-08-13 19:38:18 · 586 阅读 · 0 评论 -
策略枚举
package common;public enum PayrollDay { MONDAY(PayType.WEEKDAY), TUESDAY(PayType.WEEKDAY), WEDNESDAY( PayType.WEEKDAY), THURSDAY(PayType.WEEKDAY), FRIDAY(PayType.WEEKDAY), SATURDAY( P原创 2012-06-29 10:25:14 · 585 阅读 · 0 评论 -
StringBuffer 的一个骗子
package stringProblem;import java.util.Random;/* * p 49 */public class Rhymes { private static Random rnd = new Random(); public static void main(String args[]) { StringBuffer word =原创 2012-07-11 10:04:55 · 408 阅读 · 0 评论 -
当单例遇到了反序列化
package morepackages;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;cla原创 2012-07-16 17:19:39 · 901 阅读 · 0 评论 -
java protected 与默认权限的区别
作用域 当前类 同package 子孙类其他package public√ √ √√ protected√√√× friendly(default)√√×× private√×转载 2012-07-20 11:28:56 · 7957 阅读 · 3 评论 -
Java SequenceInputStream 的使用
package namespace;import java.io.*;import java.util.*;public class IOTest { public static void main(String args[]) throws IOException { Vector vec = new Vector(); vec.add(new FileInputSt原创 2011-11-01 21:11:18 · 1328 阅读 · 0 评论 -
WeakReference
http://rockybalboa.blog.51cto.com/1010693/813161若干年前看了Java的四种引用类型,只是简单知道了不同类型的作用,但对其实现原理一直未能想明白,本文尝试结合jdk,openjdk6的部分源码分析弱引用实现的原理,供大家参考,部分技术细节没有仔细研究,如有疑问欢迎留言讨论 实例分析我们以WeakHashMap的处理过程为例介转载 2012-07-23 14:56:12 · 600 阅读 · 0 评论 -
泛型不支持数组
http://www.blogjava.net/deepnighttwo/articles/298426.html转载 2012-07-27 11:05:27 · 527 阅读 · 0 评论