Java基础加强

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方法

原文地址:https://www.cnblogs.com/qq809306794/p/Java.html