Java5.0的新特性
自动装箱和自动拆箱
自动封箱和自动拆箱,它实现了简单类型和封装类型的相互转化时,实现了自动转化。
自动封箱解箱只在必要的时候才进行。还有其它选择就用其它的
byte b -128~127
Byte b 多一个null
简单类型和封装类型之间的差别
封装类可以等于null ,避免数字得0时的二义性。
Integer i=null;
int ii=i; (会抛出NullException 异常)
相当于 int ii=i.intValue();
Integer i=1;相当于Integer i=new Integer(1);
在基本数据类型和封装类之间的自动转换
5.0之前
Integer i=new Integer(4);
int ii= i.intValue();
5.0之后
Integer i=4;
Long l=4.3;
静态引入
静态成员的使用,使用import static 引入静态成员,也就是可以用静态引入是导入包中的某个类的静态成员,在使用时不用再写类名。
很简单的东西,看一个例子:
没有写静态引入
public class Test{
public static void main(String[] args){
Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
}
}
写了静态引入
import static java.lang.Math.*;
public class Test{
public static void main(String[] args){
System.out.println(sqrt(pow(x, 2) + pow(y, 2)));
}
}
其中import static java.lang.Math.*;就是静态导入的语法,它的意思是导入Math类中的所有static方法和属性。这样我们在使用这些方法和属性时就不必写类名。
需要注意的是默认包无法用静态导入,另外如果导入的类中有重复的方法和属性则需要写出类名,否则编译时无法通过。
增强的for循环
for-each循环实现了对数组和集合的便利的统一,解决遍历数组和遍历集合的不统一。
import java.util.*;
import java.util.Collection;
public class Foreach
{
private Collection<String> c = null;
private String[] belle = new String[4];
public Foreach()
{
belle[0] = "西施";
belle[1] = "王昭君";
belle[2] = "貂禅";
belle[3] = "杨贵妃";
c = Arrays.asList(belle);
}
public void testCollection(){
for (String b : c){
System.out.println("曾经的风化绝代:" + b);
}
}
public void testArray(){
for (String b : belle){
System.out.println("曾经的青史留名:" + b);
}
}
public static void main(String[] args){
Foreach each = new Foreach();
each.testCollection();
each.testArray();
}
}
对于集合类型和数组类型的,我们都可以通过foreach语法来访问它。上面的例子中,以前我们要依次访问数组,挺麻烦:
for (int i = 0; i < belle.length; i++){
String b = belle[i];
System.out.println("曾经的风化绝代:" + b);
}
现在只需下面简单的语句即可:
for (String b : belle){
System.out.println("曾经的青史留名:" + b);
}
对集合的访问效果更明显。以前我们访问集合的代码:
for (Iterator it = c.iterator(); it.hasNext();){
String name = (String) it.next();
System.out.println("曾经的风化绝代:" + name);
}
现在我们只需下面的语句:
for (String b : c){
System.out.println("曾经的风化绝代:" + b);
}
Foreach也不是万能的,它也有以下的缺点:
在以前的代码中,我们可以通过Iterator执行remove操作。
for (Iterator it = c.iterator(); it.hasNext();){
it.remove();
}
但是,在现在的for-each版中,我们无法删除集合包含的对象。你也不能替换对象。
同时,你也不能并行的for-each多个集合。所以,在我们编写代码时,还得看情况而使用它。
分享到:
相关推荐
2. **corejava辅导(1--1)至(5--3)**:这些章节可能逐步介绍了Java语言的基础语法,如变量、数据类型、运算符、控制流程(条件语句、循环)、方法定义和调用、数组的使用以及字符串处理。 3. **corejava辅导(2-...
整体来看,《Java面试集锦: Core Java Essentials》是一本全面覆盖Java核心技术要点的面试辅导书籍。无论是对于即将参加面试的求职者,还是希望巩固Java基础知识的开发者,本书都提供了丰富的学习材料和面试问题,...
**3.2 corejava辅导(1--1)** - **基本数据类型**: 如int、double等。 - **字符串操作**: 字符串的创建和常用操作。 - **数组**: 数组的声明、初始化和遍历。 **3.3 corejava辅导(1--2)** - **循环结构**: for...
1. Java设计和编程基础:涵盖Core Java编程基础、Java设计原则、算法、模式等核心知识。 2. 数据库和Web前端技术:涉及数据库技术(如Oracle、MySQL、SQL优化和PLSQL开发)、Web前端技术(如H5、CSS3、JavaScript、...
7. **CoreJava辅导资料.zip**:这可能包含Java语言的基础教程或参考资料,包括类、对象、接口、异常处理、集合框架等内容,这些都是JavaWeb开发的基础。 8. **javaWeb基础技术辅导.zip**:这个文件很可能包含了详细...
- CPU: Intel Core i5 2.0 GHz - 内存: 2 GB - 硬盘: 250 GB #### 七、测试结果与分析 **测试项目:** 请假管理系统 **测试人员:** 麦城进 **测试结果:** - **系统操作登陆测试:** 用户登录成功后,能够正确跳转...
"CoreJava.rar"可能是一个包含Java核心编程资源的压缩文件,Java是一种广泛用于开发数据库应用程序的编程语言。在数据库应用中,Java可以用来编写DAO(数据访问对象)层,实现对数据库的操作,如CRUD(创建、读取、...
2. **后端开发**:后端通常基于Java、Python或.NET等语言,利用Spring Boot、Django或ASP.NET Core等框架进行开发。 3. **数据库管理**:MySQL、Oracle或SQL Server等关系型数据库用于存储学生、教师信息以及请假...