java基础加强

MyEclipse使用

常用快捷键:

  • 内容提示:ALT_/
  • 快速修复:CTRL+1
  • 导包:CTRL+SHIFT+O
  • 格式化代码块:CTRL+SHIFT+F
  • 大小写转换:变大写:CTRL+SHIFT+X 变小写:CTRL+SHIFT+Y
  • 去除注释:CTRL+SHIFT+\
  • 添加注释:CTRL+SHIFT+/

debug使用

1.跟踪程序的运行状态
2.方便查看程序源代码

设置断点

step over :跳过F6
Resume:跳到下一个断点,如果没有程序执行结束F8
Drop to Frame:回到方法的顶端
step Return:跳出方法 F7

去除断点

在debug试图右上角breakpoints

junit的使用

必须是public void不能传任何参数public void demo1(){}

  • @Test:标识这个方法需要进行测试
  • @lgnore:忽略这个方法不参与测试
  • @Before:标记在这个方法之前都会执行
  • @After:标记在这个方法之后都会执行
  • @BeforeClass标记会在这个方法之前执行一次,这个方法必须是静态
  • @AfterClass标记会在测试方法之后执行一次,这个方法必须是静态

泛型的使用

jdk5之后的泛型允许程序员使用泛型技术限制集合的处理类型

List<String>list = new ArrayList<String>();

泛型的应用

  • List
  • Set
  • Map

java中程序的普通方法,构造方法和静态方法都可以使用泛型。方法在使用泛型前,必须对泛型声明,语法,T可以是任何大写字母。需要放在方法的返回值声明之前。

public static <T> void dott<T t>;

如果一个类多处都要用到泛型,这时可以把它定义到类上,即类级别的泛型。语法如下

public class GeneryDao(){
    private T field1;
    private void save(T obj){}
    private T getId(){}
}
注意:静态方法不能使用类定义的泛型,而是单独定义泛型。

枚举类

为什么使用枚举类型?
在一些方法运行时,他需要的数据是不能任意的,而是必须是一定范围内的值。
创建枚举类型格式:

enum 枚举类型名称{
    枚举对象1,
    枚举对象2,
    枚举对象n,
}

枚举类有如下特性:

  • 枚举类也是一种特殊的java类
  • 枚举类声明的每一个枚举值代表枚举类的一个实例对象
  • 与Java普通类一样,枚举类声明时,也可以声明属性,方法,构造函数,但枚举类的构造方法必须是私有的。
  • 枚举类也可以实现接口,继承,抽象
  • 枚举类可以接受int,byte,char,short外,还可以接受一个枚举类型
  • 若枚举类型只有一个值,则当作单态设计模式

常用方法:

  • name();返回枚举对象名称
  • ordinal()返回枚举对象下标
  • valueof(class enumClass,String name)转换枚举对象
  • valueof(string name)转换枚举对象
  • values();获得所有枚举对象数组

静态导包:import static 包名.类名.静态属性.静态方法
eg:import static java.lang.System.out

自动装箱/拆箱

Java语法允许开发人员把一个基本数据类型直接赋值给包装类变量,或者赋值给object类型的变量,这个过程称为自动装箱。
自动拆箱与装箱相反,即把包装类对象直接赋值给一个对应的基本类型变量。

for/in 语句

引入增强for的原因:抛弃Iteraor
for/in使用范围:遍历数组,遍历实现Iteraor接口的集合类
语法格式:for(变量类型 变量 :需要迭代的数组或集合)

可变参数

  • 可变参数位于参数列表的最后
  • 是以数组的形式传递可变参数
  • 一个方法最多一个可变参数
  • 只能出现在形参中,局部变量不能使用。

反射

什么是反射?

  • 剖析java类中的各个组成部分映射成一个个java对象
  • 构造方法
  • 成员变量
  • 方法

反射多用在框架和组件,写出复用性高的程序里。

class类

java中java.lang.calss类用于表示一个类的字节码(.class)文件
如何得到某个class文件对应的class对象

  • 已知类和对象的情况下
    类名.class
    对象名.getClass()—object类提供
  • 未知类和对象的情况下
    Class.forName(“包名.类名”);
    class类代表某个类的字节码,并提供了加载字节码的方法:forName(“包名.类名”);
    forName()方法用于加载类字节码到内存中,并封装成一个class对象

Constructor类

constructor类的实例对象代表类的一个构造方法

  • 得到某个类的构造方法
    Constructor [] constructor = class.forName(“java.lang.String”).getConStructor();

  • 得到指定的构造方法并调用
    Constructor constructor = class.forName(“java.lang.string”).getConstructor(string.class);
    string str = (String)constructor.newInstance(“abc”);

  • class类的newInstance()方法用来调用默认构造方法
    String obj = (String)class.forName(“java.lang.string”).newInstance();

Filed类

  • filed类代表某个类的一个成员变量,并提供动态的访问权限
  • filed对象的获得
    • 得到所有的成员变量
    • Filed filed = c.getFileds();//取得所有public属性
    • Filed filed = c.getDeclaredFileds();//取得所有声明的属性
    • 得到指定的成员变量
    • Filed name = c.getFiled(“name”);
    • Filed name = c.getDeclaredFiled(“name”);
    • 设置filed变量是否可以访问
    • filed.setAccessible(boolean);
    • Filed变量值的读取,设置
    • filed.get(obj);
    • filed.set(obj);

Method类

  • method代表某个类的成员方法
  • method对象的获得

    • 获得所有方法
      • getDeclaredMethod();
      • getMethods();
  • 获得指定的方法

    • getDeclaredMethod(string name,class
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值