Java基础加强-jdk1.5的一些新特性
JDK 5.0 特性
1.静态导入(import static 语句导入一个类中的某个静态方法或所有静态方法)
如: import static java.lang.Math.*;
2.可变参数
1. 只能出现在参数列表的最后
2. ...位于变量类型和变量名之间,前后有无空格都可以
3. 调用可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
3.增强for循环 for (type 变量名:集合变量名){...}
1.迭代变量必须在()中定义
2.集合变量可以是数组或实现了Iterable接口的集合类
4.基本数据类型的自动拆箱与装箱
Integer i1 = 10;
Integer i2 = 10;
System.out.println(i1 == i2); (true)
( /*这些小数字(一个字节 -127~128)使用的频率可能会比较高,所以,不必为每个数字赋一个对象,而是第一次将这些小数字包装成对象后,便将其缓存到一个池中,下次
要把这些小数字装成Integer对象,就往池里面找,池里面有的话,就从池子里面拿,不封装成对象*/)
Integer i3 = 138;
Integer i4 = 138;
System.out.println(i3 == i4); (false)
享元设计模式 (flyweight):
有很多个小的对象,对象之间有很多属性相同,把这些小对象 变成一个对象,那些不同的属性将其变成该大对象方法的参数,称之为外部状态,相同的属性称之为内部状态
如:在编辑中的一些字母数据,不会每写一个字母,就创建一个对象,而是创建26个对象,对应26个字母,这26个对象有很多属性(如都是a)相同,但是位置(x坐标,y坐标)不同
可以为26个对象设置一个display(int x,int y)方法,
5.枚举(枚举可以编译器在编译时就可以控制源程序中填写非法值,普通变量的方式在开发阶段无法实现这一目标)
用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能
1.私有的构造方法
2.每个元素分别用一个公有的静态成员变量表示
3.可以有若干公有方法或一个抽象方法 例如:要提供nextDay方法必须是抽象的,采用抽象方法定义nextDay就将大量的if..else语句转移成了一个个独立的类
枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象,例如可以调用WeekDay.SUN.getClass.getName 和WeekDay.class.getName().
java5的枚举的基本应用
Weekday weekday = Weekday.SUN;
weekday.xxxxx();
public enum {SUN,MON;}
带有构造方法的枚举
//1.枚举类构造函数权限必须为私有 2.构造函数要放到静态变量后面
带有抽象方法的枚举
public abstract Light nextLight();
RED(60){
@Override
public Light nextLight() {
return GREEN;
}
}
Java基础加强-jdk1.5的一些新特性的更多相关文章
- 黑马程序员_Java基础:JDK1.5后的新特性:自动拆装箱,以及注意事项
------- android培训.java培训.期待与您交流! ---------- 首先来看一段代码: Integer x = new Integer(4); Integer y = 4; 在JD ...
- Java日期时间操作基础——包含JDK1.8时间操作新特性
JDK1.7日期时间操作 示例小结 public class DateTest { public static final String FORMAT_DATE = "yyyy-MM-dd& ...
- Java基础知识总结之1.8新特性lambda表达式
函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.lang.Runnab ...
- jdk1.5出现的新特性---->增强for循环
import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; ...
- 总结:JDK1.5-JDK1.8各个新特性
JDK1.5-JDK1.8各个新特性 JDK各个版本的新特性 要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.以下介绍一下JDK1 ...
- Java单元測试工具JUnit 5新特性一览
Java单元測试工具JUnit 5新特性一览 作者:chszs,未经博主同意不得转载. 经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs JUnit是最流行的开源 ...
- [转]【JVM】调优笔记2-----JVM在JDK1.8以后的新特性以及VisualVM的安装使用
[From]https://www.cnblogs.com/sxdcgaq8080/p/7156227.html 隔壁的,加个引用做书签! [JVM]调优笔记2-----J ...
- 夯实Java基础(十四)——Java8新的日期处理类
1.前言 Java8之前处理日期一直是Java程序员比较头疼的问题,从Java 8之后,Java里面添加了许多的新特性,其中一个最常见也是最实用的便是日期处理的类——LocalDate.LocalDa ...
- Java Development Kit (JDK) 发展历程 及新特性
SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE. EE(J2EE),enterprise edition,企业版,使用这 ...
随机推荐
- VM12_pro+Ubuntu16_64+Qt5.12.2环境搭建
1.准备软件[已经存网盘] 2.安装Vm 3.安装Ubuntu 4.进入linux,修改Qt安装包权限 5.运行Qt 6.第五步会弹出Qt安装的界面,默认安装就行了 7.修改环境变量 sudo ged ...
- 产品运营数据分析—SPSS数据分组案例
产品运营数据分析-SPSS数据分组案例 当我们的样本量过大,譬如以前讲过的,EXCEL2010最大只支持1048576行.16384列,尤其是当行数大于30万,一般的办公电脑处理都比较吃力,所以推荐数 ...
- Spring Cloud(8):日志及分布式跟踪(Sleuth&Zipkin)
简介 在微服务架构中,项目中前端发起一个请求,后端可能跨几个服务调用才能完成这个请求.如果系统越来越庞大,服务之间的调用与被调用关系就会变得很复杂,那么这时候我们需要分析具体哪一个服务出问题了就会显得 ...
- HTML滚动时位置固定
现在显示器一般都是宽屏,网页两端常常会留白. 两边可能会放一些推荐.标签或是导航什么的辅助模块. 现在有的网站页面内容过长时,用户将滚动条向下拉时,拉到一定程度,左右两侧的辅助模块就会固定在指定位置, ...
- 详解Nginx中HTTP的keepalive相关配置
http keepalive在http早期 ,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接.使用keep-alive可以改善这种状态,即在一次TCP连接 ...
- python介绍,计算机组成。内存分布,进制,操作系统介绍
学习小方法 三个W一个Hwwwh:what(是什么) why(为什么) where(怎么用) how(如何用) 来思考知识点多练,多写,多敲代码增加熟练度与代码量 Python 是一门面向后台的编 ...
- Matlab绘制阶梯形图
声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 对于Matlab的使用情况常常是这样子的,很多零碎的函数名字很难记忆,经常用过后过一段时间就又忘记了,又得去网 ...
- storm是如何保证at least once语义的?
storm中的一些原语: 要说明上面的问题,得先了解storm中的一些原语,比如: tuple和messagetuple:在storm中,消息是通过tuple来抽象表示的,每个tuple知道它从哪里来 ...
- 【转载】熟练利用google hacking来辅助我们快速渗透
转载于:https://klionsec.github.io/2014/12/14/search-hacking/?tdsourcetag=s_pcqq_aiomsg 0x01 google hack ...
- [转帖]redis知识点总结
redis面试常问知识点总结 https://www.toutiao.com/i6740199554127233543/ 原创 波波说运维 2019-10-02 00:01:00 概述 今天主要分享一 ...