Java高薪技术
来源:互联网 发布:p2p网络贷款平台排名 编辑:程序博客网 时间:2024/04/29 11:35
Java高薪技术
自动装箱与拆箱:原生数据类型转换成对应的对象类型,如Integer in1 = 54;
Integer有个缓冲池在-128~127之间,如
Integer in1 = 54, 与Integer in2 = 54, in1 == in2 为true,
Integer in1 = Integer.valueOf(54)与Integer in2 = Integer.valueOf(54),in1 == in2也为true
Integer in1 = new Integer(54)与Integer in2 = new Integer(54),in1 == in2 为false。
可变参数,如方法:void add(int... args)
此方法既可以接受数组,也可以接受单个int,也可以接受多个int
静态导入,导入某类的静态方法,可以直接使用它,
import static java.lang.Math.max;
在类中可以直接使用max方法了,不需要Math.max()引用了
枚举:定义的所有枚举类型,都是继承自Enum类
所有的枚举变量都是枚举实例
枚举也可以有构造方法,构造方法有参数时,当用此构造方法声明枚举变量时,必须传入对应的参数
枚举有抽象方法时,枚举变量中必须实现此方法
用valueOf(String name)获得枚举变量时,枚举中必须有名为name的变量用来返回结果,不是用来声明新的变量
values()返回枚举中所有声明的变量的数组
name()类似于toString()
反射:涉及到类有Class,Constructor,Method,Field,利用反射可以在运行期动态的创建类的对象,反射是框架的基础
Class的实例代表类和接口,也代表数组类型,原生数据类型,及Void
Field代表类的变量
Method代表类的方法
同一类型和同样维度的数组共享同一Class对象
获得Class对象,有“类名.class”、Class.forName("类名")、对象的getClass()方法
通过Class对象可以获得类的似有变量和私有方法
注解:关键字@interface,注解各种属性类似于类的方法
@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE, ElementType.METHOD})public @interface ItcastAnnotation {String color() default "blue";String value();int[] arrayAttr();MyAnnotation myAnno() default @MyAnnotation(world="hello");Lamp lamp() default Lamp.S2N;}color(),value()都为注解的属性,color默认值为"blue",注解有多个属性时,赋值时要指明变量。为数组属性赋值时,要用大括号括起来。
注解属性也可以为注解类型,也可以枚举类型
@Retention指明注解类型要保存多久,其中RetentionPolicy.RUNTIME保存在运行期,RetentionPolicy.CLASS保存在.class文件里,
RetentionPolicy.SOURCE保存在源文件里
@Target指明注解要修饰的类型
泛型:编译器所需要的,当生产字节码时,泛型已被擦除
泛型通配符<?>,适用于所有类型,基本类型除外
<? extends List>?所代表的类型必须继承了ist类,或者实现某个接口
<? super ArrayList>?所代表的类型必须为ArrayList的超类,或者为ArrayList已经继承的类或已经实现的接口
非泛型类的泛型方法,必须在返回值前,加上泛型占位符,如
public <T> void add(T t) {}
泛型类的静态方法涉及到泛型时,类的泛型与静态方法的泛型不一定为同一类型,如
public static <T> void add(T t) {}
类加载器:三种类型加载器AppClassLoader、ExtClassLoader、BootStrap,呈现一种树形关系,其中最底层的是AppClassLoader,
在加载类时,AppClassLoader先委托给ExtClassLoader,ExtClassLoader已经加载过此类时,返回该类的Class对象,
没有此类时,再委托给BootStrap,BootStrap已经加载过此类时,返回该类的Class对象,如果没有,
原路返回传递给AppClassLoader,由其去加载此类,这种委托机制,避免了类的重复加载。
自定义类加载器必须继承ClassLoader,且实现findClass()方法。传入findClass()的类名字,按照说明为binary name,
即应该带有包名。在findClass()中自定义加载字节码文件的方式,去特定文件夹取加载应去掉包名,前面加上文件夹名,
后面加上.class,用defineClass()返回Class对象。调用自定义类加载器时,应首先调用loadClass()方法,其也接受binary name,
这个方法会首先调用上一级类加载器,如果都没有加载到再调用自定义的findClass()方法,
去加载字节码文件。
框架模拟:编写一个类去读配置文件,配置文件中配置了键值对,类读取键对应的值,加载字节码文件,运行期动态生成相应类对象,
配置文件可随意更改。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
- Java高薪技术
- java基础--高薪技术--反射
- 高薪技术
- 黑马程序员-java基础06高薪技术
- 高薪就业就学Java软件开发技术
- Java高薪技术学习总结-01
- Java高薪技术学习总结-02
- Java高薪技术学习总结-03
- Java高薪技术学习总结-04
- 高薪JAVA工程师需要什么样的技术
- 黑马程序员_高薪技术一(java反射)
- 黑马程序员——java基础加强高薪技术总结
- java基础--高薪技术--JDK1.5新特性
- [转]技术等于高薪?
- 高薪技术排行
- 高薪技术知识(2)
- 高薪技术知识(3)
- 高薪技术知识(4)
- XVID基本参数解析
- JQuery -- this 和 $(this) 的区别
- seo与外链绝密技巧珍藏版分享
- sql left(),right()
- .net程序安装说明
- Java高薪技术
- 天刃_张志刚_SEO优化技巧
- 不会数学了伤不起啊?
- 喷涂厚度
- strace工具跟踪系统调用和信号
- Android开发之androidmanifest.xml中声明相关权限的说明
- 关于HFSS中的:internal error:WebUpdate is missing require information问题解决办法!
- asp.NET传值
- LoadRunner实现:计算字符串Crc32