Java 世界排名第一 高级应用软件开发语言
为什么排名第一?
优势
Javaweb 开发网站?? PHP/.net
Java 语言优势
1、Java Internet
2、Server端开发
3、分布式
4、多线程
ERP
Android 技术
Java 语言
c++嵌入式
C语言 硬件编程 嵌入式
1、Java5.0 高级特性
2、反射
3、BeanUtils
Java 开发工具
文本编辑工具
IDE(eclipse IBM,Netbeans Sun(Oracle))
MyEclipse是Eclipse的插件(收费)
假如你要使用英文软件,最好不要使用中文路径或者一些特殊字符( ,&)
MyElipse
透视图
web project(默认)
java project
package命名规范: 域名倒写 cn.it 部门/项目组名称moon 系统名blog 分层
cn.it.moon.blog.test
www.it.cn
域名 it.cn
Content Assist : alt+/
1、调用模板代码块
main
sysout
2、自动补全
Quick Fix : ctrl +1
不能解决所有问题。只能解决方块X
导包:ctrl + shift + O
当发现存在不同包里相同类,自己指定,
格式化代码块:ctrl + shift + F ---> 配置代码自动格式化
必须无错才能格式化
添加(除去)块注释 Ctrl+Shift+/ (Ctrl+Shift+)
添加(除去)单行注释 Ctrl+/
/** */ 文档注释
/* */ 多行注释、块注释
// 单行注释
eclipse配置自动格式化
ctrl+shift+l 查看所有快捷键
ctrl+鼠标左键 查看源代码(F3)
F5(跳入) F6(跳过) F7(跳出)
F5进入该行代码执行的方法 ---> F7 结束当前方法返回 继续运行程序至下个断点
F6跳到当前方法的下一行
断点调试作用:
运行到某一位置查看变量的值,System.out.printlb();
java 1.0 -- 1.1 --- 1.2(Java2) --- 1.3 --- 1.4 --- 1.5(更名5.0) --- 6.0 --- 7.0
集合对象规范里面可以存取的类型 ---- 泛型
泛型是在java程序编译时的限制!!!!!!!!
1、不是所有类都能使用泛型,使用泛型的类需要定义时声明 List<E>
2、为什么List<E> 叫E Element Map<K,V> K key V value
3、类型转换,只能是声明的类型,泛型如果父子关系不可以转换!
父类 对象 = new 子类();
List<String> list = new ArrayList<String>();
Integer 是Number 子类
Number n = 10;
ArrayList<Number> list2 = new ArrayList<Integer>(); // 不可以
自定义泛型 c++模板
定义泛型时,不能使用原始数据类型
List<int> list = new ArrayList<int>();// 不行
List<Integer> list = new ArrayList<Integer>();
如果没有为类指明泛型,那么使用泛型的方法返回值前<T>
如果为类指明泛型,那么不需要在使用泛型的方法返回值前加<T>
问题:根据role不同计算不同的工资
switch(data){ // byte short int char enum
case:
default:
}
public void doSomething(double d){ }
public void doSomething(Integer i) { }
下面的代码会执行上面哪个方法?
int foo = 1;
doSomething(foo);
原则JDK5.0 升级特性 要和JDK1.4 一致
for/in 只能用来取值,不能改变原来的数组和集合对象!!!!
什么类可以用于for/in ----> 数组 集合类对象
class Person {
// 成员变量(静态成员变量,实例成员变量)
// 成员方法(静态方法,实例方法)
// 构造方法
}
1、Eclipse Junit
2、JDK5.0特性
泛型、枚举、for/in
泛型:
1) List Map中使用泛型
2) 泛型可以用在方法参数 返回值 类型参数
3) 类型转换注意事项
4) 泛型通配符 泛型的上下边界
枚举:
1)枚举的由来 4个阶段
2)枚举定义细节 定义抽象方法 定义带参数的构造方法
3)枚举 API
for/in
1)使用for/in迭代 数组或者使用迭代器的集合对象
2)for/in只能用于取值,不能修改
3)让你的class能用用于for/in
4)移除练习
3、反射
反射在框架中应用
Class Constructor Field Method
编程反射
1)一定得到.class对应Class对象
2)Class对象 --- Constructor Field Method
属性操作
a. 得到所有属性 getFields [public] getDeclaredFields [所有]
b. 得到指定属性 getFiled(属性名字) getDeclaredField(属性名字)
c. 操作属性 破坏封装性
属性.setAccessible 修改属性访问权限
方法操作
a. 得到所有方法 getConstructors getMethods
b. 得到指定方法 getConstructor(参数类型列表 Class...) getMethod(方法名,参数类型列表Class...)
c. 执行方法
执行构造方法
constructor.newInstance(参数 Object...)
执行普通方法
method.invoke(执行方法的对象,参数 Object...)
执行方法的对象 null 表示 static方法