黑马程序员___java1.5新特性

 ----------- android培训java培训、java学习型技术博客、期待与您交流! ---------

1.       静态导入

Import
static  java.lang.*.*;

2.       可变参数

可变参数的特点:相当于一个可边长度的数组。

1.只能出现在参数列表的最后

2.位于变量类型和变量名之间,前后有无空格都可以。

3.调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

在调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

例子:

Public
static int  add(int x,int…
args)

{

Int sum=x;

For(int
i=0;i<args.length;i++)

{

Sum+=args[i];

}

}

3.       增强for循环

语法:for(type 变量名:集合变量名)

{

………..

}

注意事项:迭代变量必须在()中定义,集合变量可以是数组或实现了Iterable接口的集合类。

例子:

Public
static int  add(int x,int…
args)

{

Int sum=x;

For(int arg:
args)

{

Sum+=arg;

}

}

高级for循环和传统for循环的区别:?

高级for循环在使用时,必须要明确被遍历的目标。这个目标,可以是Collection集合或者数组,如果遍历Collection集合,

在遍历过程中还需要对元素进行操作,比如删除,需要使用迭代器。

如果遍历数组,还需要对数组元素进行操作,建议用传统for循环因为可以定义角标通过角标操作元素。

如果只为遍历获取,可以简化成高级for循环,它的出现为了简化书写。

高级for循环可以遍历map集合吗?

不可以。但是可以将map转成set后再使用foreach语句。

1)、作用:对存储对象的容器进行迭代: 数组
 collection  map

2)、增强for循环迭代数组:

String[] arr = {"a", "b",
"c"};//数组的静态定义方式,只适用于数组首次定义的时候

for(String s : arr)

{

System.out.println(s);

}

3)、单列集合
Collection:

List list = new
ArrayList();

list.add("aaa");

//增强for循环,
没有使用泛型的集合能不能使用增强for循环迭代?

for(Object obj :
list)

{

String s = (String)
obj;

System.out.println(s); }

4)、双列集合 Map:

Map map = new
HashMap();

map.put("a",
"aaa");

//
传统方式:必须掌握这种方式

Set entrys =
map.entrySet();

//1.获得所有的键值对Entry对象

iter =
entrys.iterator();

//2.迭代出所有的entry

while(iter.hasNext())
{

Map.Entry entry = (Entry)
iter.next();

String key = (String)
entry.getKey();

//分别获得key和value

String value = (String)
entry.getValue();

System.out.println(key + "=" +
value); }

//
增强for循环迭代:原则上map集合是无法使用增强for循环来迭代的,因为增强for循环只能针对实现了Iterable接口的集合进行迭代;

Iterable是jdk5中新定义的接口,就一个方法iterator方法,只有实现了Iterable接口的类,才能保证一定有iterator方法,

java有这样的限定是因为增强for循环内部还是用迭代器实现的,而实际上,我们可以通过某种方式来使用增强for循环。

for(Object obj :
map.entrySet())

{

Map.Entry
entry = (Entry) obj; // obj 依次表示Entry

System.out.println(entry.getKey() + "=" + entry.getValue()); }

5)、集合迭代注意问题:在迭代集合的过程中,不能对集合进行增删操作(会报并发访问异常);

可以用迭代器的方法进行操作(子类listIterator:有增删的方法)。

6)、增强for循环注意问题:在使用增强for循环时,不能对元素进行赋值;

int[] arr =
{1,2,3};

for(int num :
arr) {

num = 0;
//不能改变数组的值

}

System.out.println(arr[1]);

4.       基本数据类型的自动拆装箱

自动装箱:

Integer
iobj=3;

自动拆箱:

System.Out.print(iobj+12);

java中数据类型分为两种

基本数据类型

引用数据类型(对象)


java程序中所有的数据都需要当做对象来处理,针对8种基本数据类型提供了包装类,如下:

int -->
Integer

byte -->
Byte

short --> Short

long -->
Long

char -->
Character

double --> Double

float -->
Float

boolean -->
Boolean

jdk5以前基本数据类型和包装类之间需要互转:

基本---引用 Integer x = new
Integer(x);

引用---基本 int num =
x.intValue();

1)、Integer x =
1;

x = x + 1;经历了什么过程
装箱装箱;

2)、为了优化,虚拟机为包装类提供了缓冲池,Integer池的大小-128~127
一个字节的大小;

3)、String池:Java为了优化字符串操作
 提供了一个缓冲池;

 ----------- android培训java培训、java学习型技术博客、期待与您交流! ---------

时间: 2024-12-30 10:31:42

黑马程序员___java1.5新特性的相关文章

黑马程序员——面向对象编程三大特性

黑马程序员——面向对象编程三大特性 ------- android培训.IOS培训.期待与您交流! ---------- 面向对象编程三大特性:封装,继承,多态,(抽象) ***封装的概念与原理*** 封装是面向对象的特性之一 封装的好处:降低数据被无用的可能性,保证数据安全性 不封装的缺点:会把自己的属性暴露给外部,失去对该属性的管理权 封装原理:实例变量默认只能被当前类的对象方法访问 **封装实现** 定义设置实例变量(setter)方法和访问实例变量(getter)方法 1)setter(

好程序员分享java8新特性之Lambda表达式

?.Lambda表达式简介 什么是Lambda? Lambda表达式是Java 8推出的?个新特性.从本质上讲,Lambda表达式是?个匿名函数. 为什么要使?Lambda? 使?Lambda表达式可以对?个接?进??常简洁的实现. 之前我们在给?个接?引?赋值的时候,可以使?接?实现类,或者匿名内部类.但是有了 Lambda表达式,我们可以更加?便的实现这个需求. interface Comparator<T>?{ int compare(T o1, T o2); } class Progr

黑马程序员--面向对象的三大特性-我之见解

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- ------封装------- 1.什么是封装: 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式 2.封装的好处: 将变化隔离.(不管里面怎么变,使用者不需要知道) 便于使用.(使用者只需按照一定的方法使用就可以了) 提高重用性

[黑马程序员]Objective-C 面向对象三大特性之继承

基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). 比如我们前文(Objective-C 面向对象三大特性之多态)中提到的Animal和Dog类: #import <Foundation/Foundation.h> @interface Animal : NSObject -(void) eat; @end @implementation Animal -(void)

黑马程序员——JAVA面向对象的特性:封装,继承,多态

                                       - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.java面向对象的特性,封装.继承.多态         封装 封装是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是

[黑马程序员]Objective-C 面向对象三大特性之多态

什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.简单地说就是:允许将子类类型的指针赋值给父类类型的指针. 简单示例 #import <Foundation/Foundation.h> @interface Animal : NSO

黑马程序员_API

------- android培训.java培训.期待与您交流! ---------- ======================API========================================= 看api的步骤: 1.看类的说明.其所属的包以及出现的版本. 2.看其构造函数. 3.看普通的方法.看时注意参数,和返回值类型. Object类 1. private static native void registerNatives (); 见到本地关键字修饰的方法,这个方

黑马程序员_集合

集合1.集合和对象数组的区别: 数组的长度不可变,集合的可变: 数组可以存储基本数据类型和对象,集合只能存储对象. 集合的框架图 集合派系的顶层接口Collection1.Collection集合存储对象的方法: add(E e)将元素存储到集合中 addAll(Collection c)将一个集合添加到另外的集合中2.Collection集合提取对象的方法: 通过迭代器iterator中的方法:hasNext()和next()来取出 Iterator it=new iterator(); wh

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点