黑马程序员-----java基础加强<一>
来源:互联网 发布:mysql添加主外键约束 编辑:程序博客网 时间:2024/06/07 04:07
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
==========第3单元:java5的一些简单新特性===============
08.java5的静态导入与编译器语法设置
静态导入的格式:
//import static java.lang.Math.max; //error
import static java.lang.Math.*;//ok 导入Math中的静态方法
没有静态导入的情况下:
Math.max(num1, num2);
静态导入的情况下:
max(num1, num2);
好处,简化了书写,提高了开发效率
09.可变参数与OverLoad相关面试题分析
1.可变参数格式:(可变参数只能在参数列表的最后一个位置,前面也可以有0个或多个参数)
public static int add(int x,int... args) {
sum = x;
for (int arg : args)
{
sum += args;
}
}
可变参数的原理:内部也是用数组来完成的
好处,简化了代码的书写
2. OverLoad(重载)Override(重写)的区别
OverLoad:两个函数的函数名相同,但是参数列表不同;
运用于同一个类中的,或子父类中,他们的函数功能相似.
Override:两个函数必须一模一样,运用于子父类中,接口中;
10.java5的增加for循环
格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{
}
对集合进行遍历。
只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作
传统for和高级for有什么区别呢?
高级for有一个局限性。必须有被遍历的目标
11.基本数据的自动拆装箱及享元设计模式
public static void main(String[] args) {
Integer iObj = 3;//自动装箱,把基本数据类型的3装箱成Integer类型也就是对象类型的3
System.out.println(iObj + 12);//自动拆箱,把对象Integer类型的3转化从int 3 从而实现基本数据类型的运算
Integer i1 = 100;
Integer i2 = 100;
Integer i1 = 200;
Integer i2 = 200;
System.out.println(i1 == i2);//true
System.out.println(i3==i4);//false
}
//结果分析:
当Integer类型的对象接收的数字在一个字节中时(-128~127),内存中只保留一个对象,所以结果为true
以后如果有相同的数字存储进入内存,只需要给地址的应用即可
当Integer类型的对象接收的数字超过一个字节的时候,每次存储的使用都是新的对象,
所以结果为false;
这是种设计模式称为享元设计模式(Flyweight):
简单的说:
有很多个小的对象, 他们有很多的属性相同,把相同的属性提取出来做成一个对象,这些相同属性称为
内部状态;不同的属性可以通过方法的参数传入,方法传入的属性称为外部状态,称为享元设计模式
=================第4单元:java5的枚举==================
12.枚举的作用介绍
可以通过列举的方式列举出所有的对象
13.用普通类模拟枚举的实现原理
//列举性别abstract class Gender {private Gender(){}public static final Gender MAN = new Gender() {};public static final Gender WOMAN = new Gender() {};public String toString() {return this == MAN ? "MAN" : "WOMAN";}}14.java5的枚举的基本应用
枚举的基本方法:
String name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
int ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String toString()
返回枚举常量的名称,它包含在声明中。
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
15.实现带有构造方法的枚举
public enum WeekDay{
SUN(1),MON(),TUE,WED,THI,FRI,SAT;
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("second");}
}
16.实现带有抽象方法的枚举
//交通灯的状态枚举列出public enum TrafficLamp{RED(30){public TrafficLamp nextLamp(){return GREEN;}},GREEN(45){public TrafficLamp nextLamp(){return YELLOW;}},YELLOW(5){public TrafficLamp nextLamp(){return RED;}};public abstract TrafficLamp nextLamp();private int time;private TrafficLamp(int time){this.time = time;}}
- 黑马程序员-----java基础加强(一)
- 黑马程序员--Java基础加强(一)
- 黑马程序员-java基础加强(一)
- 黑马程序员-----java基础加强<一>
- 黑马程序员--基础加强(一)
- 黑马程序员-Java基础加强
- 黑马程序员---基础加强【java】
- 黑马程序员Java基础加强
- 黑马程序员--------Java基础加强
- 黑马程序员 java 基础加强
- 黑马程序员——java基础加强(一)
- 黑马程序员_基础加强(一)
- 黑马程序员_基础加强一
- 黑马程序员_java基础加强(一)
- 黑马程序员-Java基础加强-Java高新技术
- 黑马程序员--Java基础加强总结
- 黑马程序员--Java基础加强(1)
- 黑马程序员-------Java基础加强1
- Samza/Kafka机理解析
- 推荐!国外程序员整理的 C++ 资源大全
- warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
- iOS_数据库1_Navicat Premium使用
- 骨骼蒙皮动画的原理解析
- 黑马程序员-----java基础加强<一>
- libprotectClass.so头信息中的陷阱
- POJ 1927 Area in Triangle(计算几何)
- hdu - 5038 - Grade(模拟)
- lua中元表与元方法
- hdu 5087 Revenge of LIS II(BestCoder Round #16)
- 第十周项目三:血型统计
- ASIHTTP详解
- 21种设计模式整理(1)---单例