JAVA基础
labty
这个作者很懒,什么都没留下…
展开
-
深入理解String.getBytes()中编码问题
查看jdk的源码得知,String.getBytes()的源码如下:public static Charset defaultCharset() { if (defaultCharset == null) { synchronized (Charset.class) { java.security.PrivilegedAction pa = n...原创 2011-11-04 15:25:02 · 474 阅读 · 1 评论 -
枚举中valueOf用法
Enum的特征如下:1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。 3.Enum默认实现了java.lan...原创 2018-01-14 11:21:06 · 53929 阅读 · 0 评论 -
mybatis源码学习总结-class.getResource方法与claasloader.getResource方法的区别
Class.getResources(String path) path如果是以 / 开头,就从classpath中去找(classpath可以认为是eclipse的bin目录或者是target的classes目录),如果不以/开头,就以当前类的位置开始找,也就是它有两种搜索方式。.classloader不能以/为开头,classloader.getResource只能从class...原创 2018-01-14 10:49:03 · 290 阅读 · 0 评论 -
java泛型理解2
泛型类型注意细节:1.泛型类型变量不能是基本数据类型比如,没有ArrayList,只有ArrayList。因为当类型擦除后,ArrayList的原始类型变为Object,但是Object类型不能存储double值,只能引用Double的值。2.泛型类型没有特定的classArrayList arrayList=new ArrayList(); 因为类型擦除之后,A...原创 2017-01-07 22:54:22 · 91 阅读 · 0 评论 -
JAVA泛型理解
泛型类型的擦除: [code="java"] ArrayList arrayList1=new ArrayList(); ArrayList arrayList2=new ArrayList(); System.out.println(arrayList1.getClass()==arrayList2.getClass());//结果为...原创 2017-01-07 22:33:59 · 96 阅读 · 0 评论 -
使用自定义注解搭建简单框架
本文主要介绍如何使用Java运行时级别的注解配合反射来搭建框架,以下是构建sql表的简单例子,阐明了搭建运行时框架的方法1.定义两个运行时注解,分别作用于类和字段表示表名和列名[code="java"]@Retention(RetentionPolicy.RUNTIME)public @interface Table { String name();}@Re...原创 2017-05-01 00:54:25 · 157 阅读 · 0 评论 -
java注解处理器
[b]注解处理器:[/b]Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement):Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的父接口。除此之外,Java在java.lang.reflect 包下新增了Annotate...原创 2017-04-30 17:43:13 · 117 阅读 · 0 评论 -
理解注解中的@Inherited
@Inherited: @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。注意:@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口...原创 2017-04-30 16:06:30 · 562 阅读 · 0 评论 -
JAVA注解总结
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。 Java5.0定义的元注解:[code="java"] 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited[/code]...原创 2017-04-30 12:59:41 · 159 阅读 · 0 评论 -
关于数字签名基础知识
1.消息摘要[code="java"]public class MessageDigestExample { public static void main(String[] args) throws Exception { String beforeDegist = "asdf"; System.out.printl...原创 2012-10-08 17:40:52 · 236 阅读 · 0 评论 -
逻辑运算与移位运算
[code="java"]源码:正数的补码与原码相同例+7 源码:00000111 补码 :00000111 (用8位二进制表示一个数)[/code][code="java"]负数的补码: 符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。[/code] -7 源码: 10000111 ,其绝对值为00000111 取反加一:11111001 为-7补码...原创 2012-11-27 14:56:55 · 705 阅读 · 0 评论 -
使用内部类有什么好处
使用内部类在java编程高级设计中是必须的,它能使你的代码更加优雅,但是它最大的作用是解决class单继承的问题。例如:[code="java"] public interface One { public void inOne(); } public interface Two { public void inTwo(); ...原创 2012-03-17 12:41:05 · 109 阅读 · 0 评论 -
关于a& 0xff的运算
byte是一个有符号数可以表示-128~+127,但是作为一个无符号数使用的时候可以表示0~255,而我们通常都是将byte作为无符号数用所以要&oxff例如: [code="java"] byte type=-123; type & 0xff//结果为133[/code] ...原创 2011-11-21 11:23:39 · 1032 阅读 · 0 评论 -
java调用Windows命令行
java来调用windows的命令,一般情况下下面两行代码即可实现:[code="java"]Process process=new ProcessBuilder(command.split(" ")).start(); BufferedReader results=new BufferedReader(new InputStreamReader(process.getInputStr...原创 2011-11-20 21:32:13 · 353 阅读 · 0 评论 -
parseInt(String s, int radix)用法介绍
parseInt(String s, int radix) ,前面的参数为字符串,后面的参数为int类型。为什么要使用这种方式?其实一句话就是为了把字符串转化为如4进制、8进制、10进制、16进制等。 用法举例: String str="123"; int i = Integer.parseInt(str,8); 后面的参数表示...原创 2011-11-19 22:13:30 · 1056 阅读 · 0 评论 -
HashMap原理
[b]概述:[/b]HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。[b]HashMap的数据结构:[/b]HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体[code="java"]transient Entry[] table;...原创 2012-04-29 17:27:38 · 60 阅读 · 0 评论 -
深入学习EnumSet
Set接口的实现类HashSet/TreeSet,它们内部都是用对应的HashMap/TreeMap实现的,但EnumSet的实现与EnumMap没有任何关系,而是用极为精简和高效的位向量实现的,除了实现机制,EnumSet的用法也有一些不同。与TreeSet/HashSet不同,EnumSet是一个抽象类,不能直接通过new新建,EnumSet提供了若干静态工厂方法创建EnumS...原创 2018-03-25 00:18:40 · 181 阅读 · 0 评论