JAVA——基础知识加强
来源:互联网 发布:金蝶erp软件 编辑:程序博客网 时间:2024/06/06 03:09
JAVA培训,物联云培训
overLoad vs override
jdk1.5新特性:
package baseStrengthen;
import static java.lang.Math.*;
public class StaticImport
{
public static int add( int x ,int ... args)
{
int sum=x;
// for(int y=0; y<args.length; y++)
// {
// sum += args[y];
// }
for(int arg:args)
{
sum += arg;
}
return sum;
}
public static void main(String[] args)
{
theNew();
// System.out.println(add(2,3,4));
// System.out.println(max(3,6));
}
// JDK1.5新特性,自动拆箱和装箱
public static void theNew()
{
Integer i = 3;
System.out.println(i+32);
// -128 到 127 在一个字节范围内 ,就不再创建新的对象了,所以属于
同一个对象,如果不在这个范围内,就不是同一个对象。
// 这也是一个模式,叫做享元模式,flyweight
Integer i1 =127;
Integer i2 = 127;
Integer i3 = 137;
Integer i4 = 137;
System.out.println(i1==i2);
System.out.println(i3==i4);
}
}
枚举:JDK1.5的一个新特性,比较重要,以前是 C语言里面的东西,
现在又把以前的东西找回来。
把某些数据类型的值固定,只能使用固定的那几个值,除此之外不能使用其他的值。
枚举就相当于是一个类,枚举里面元素,成员,就相当于是对象。
枚举的构造方法必须是私有的,在枚举的后面跟上一个括号()就表示要使用哪个构造方法。
枚举的关键字,enum相当于class.
外部类只有默认的和public修饰,内部类可以有四个修饰符号,public private,protected,默认的。
枚举后面用大括号,表示他的匿名内部子类。
package baseStrengthen;
public class EnumDemo
{
public static void main(String[] args)
{
// WeekDay weekDay = WeekDay.SUN;
//// System.out.println(weekDay.nextDay());
//
// WeekDay1 weekDay1 = WeekDay1.FRI;
// System.out.println(weekDay1);
// System.out.println(weekDay1.name());
// System.out.println(weekDay1.ordinal());
// System.out.println(WeekDay1.valueOf("SUN").toString());
}
public enum WeekDay1
{
// 元素列表必须是第一行
SUN(2),MON(),TUE,WED,THI,FRI,SAT;
private WeekDay1()//枚举的构造方法必须是私有的。
{
System.out.println("first");
}
private WeekDay1(int day)
{
System.out.println("second");
}
}
public enum TrafficLamp
{
RED
{
public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN
{
public TrafficLamp nextLamp()
{
return YELLOW;
}
},
YELLOW
{
public TrafficLamp nextLamp()
{
return RED;
}
};
public abstract TrafficLamp nextLamp();
}
}
反射机制,
Class是一个大写的类,是一个类的名字叫Class.
Person p1 = new Person();
Person p2 = new Person();
得到字节码的几种方式:
Class cls1 = Date.class//Date类型的字节码;
p1.getClass();
Class.forName("java.lang.String");
有九个预定义的Class对象。
isPrimitive();是否是基本数据类型或者叫是否是原始类型。
isArray();是否是数据类型。
反射:
反射就是把JAVA类中的各种成分映射成相应的JAVA类,反射是用于做框架用的。
Method类,Constructor类。
反射比较占用性能,会导致程序性能严重下降
package baseStrengthen;
public class ReflectTest
{
public static void main(String[] args)throws Exception
{
String str1 = "dalkfj";
Class cls1 = str1.getClass();
Class cls3 = String.class;
Class cls2 = Class.forName("java.lang.String");
System.out.println(cls2==cls1);
System.out.println(cls1==cls3);
System.out.println(str1.getClass().isPrimitive());//是否是基本数据类型
System.out.println(int.class.isPrimitive());//是否是基本数据类型
System.out.println(int.class==Integer.class);
System.out.println(int.class == Integer.TYPE);
}
}
JUnit:JAVA测试工具,用于测试程序的,测试程序建议使用JUnit。
私有的构造函数不可以被外面的访问,但是反射可以做到这一点。
- JAVA——基础知识加强
- java基础知识(1)—一起加强加强java基础吧
- java基础知识(2)—一起加强加强java基础吧
- java基础知识(3)—一起加强加强java基础吧
- java基础知识(4)—一起加强加强java基础吧
- java基础知识(5)—一起加强加强java基础吧
- java基础知识(6)—一起加强加强java基础吧
- java基础知识(7)—一起加强加强java基础吧
- java基础知识加强(一)
- java基础知识加强(二)
- JAVA加强——枚举
- JAVA加强——泛型
- JAVA加强——代理
- 【C++】基础知识—对C语言的加强
- 黑马程序员 java基础知识加强---枚举
- 黑马程序员——java加强学习
- 黑马程序员——java基础加强
- JAVA加强——可变参数方法
- CString,string,char*的综合比较
- JAVA 泛型接口
- MySQL 数据类型
- nyoj 571 整数划分问题(dp)
- 不借助中间变量交换数值
- JAVA——基础知识加强
- ISS错误处理
- 黑马程序员-程序控制语句
- 设计模式---创建型设计模式总结
- 一款简单实用的请求过滤以及session超时处理
- 模拟strstr()函数
- 表单中Readonly和Disabled的区别
- HTML语言基础
- 实用hiero 制作自己喜欢的位图字体