java高新技术
一、静态导入:
import static语句导入一个类中的某个静态方法或所有方法;
例子:
1.import static java.lang.Math.max;
只是导入了Math类中的max方法,这是只能max方法可以省略Math;
//System.out.println(Math.max(3, 6));
System.out.println(max(3, 6));
System.out.println(Math.abs(3 - 6));
2.import static java.lang.Math.*;
导入Math类中所有的静态方法;这是调用Math的静态方法都可以省略类名;
System.out.println(max(3, 6));
System.out.println(abs(3 - 6));
二、可变参数:
特点:
1.只能出现在参数列表的最后;
2....位于变量类型和变量名之间,前后有无空格都可以;
3.调用可变参数的方法时,编译器为该可变参数隐含创建数组,在方法体中以数组的形式访问可变参数;
例子:
public class VariableParameter {
public static void main(String[] args) {
System.out.println(add(2,3));
System.out.println(add(2,5,6));
}
public static int add(int x,int... args)
{
int sum = x;
//增强for循环
for(int arg : args) //迭代出每一个元素值;
{
sum += arg;
}
return sum;
}
}
三、增强for循环
1.语法:
for(type 变量名 : 集合变量名){}
2.注意事项:
迭代变量必须在()中定义;
集合变量可以是数组或实现了Iterable接口的集合类
例子:
public static int add(int x,int... args)
{
int sum = x;
//增强for循环
for(int arg : args) //迭代出每一个元素值;
{
sum += arg;
}
return sum;
}
四、基本数据的自动装箱拆箱
1.自动装箱:
Integer num = 12;
2.自动拆箱
System.out.pritnln(num + 12);
3.享元模式:
Integer a1 = 12;
Integer a2 = 12;
System.out.println(a1 == a2); //true
五、枚举:
1.枚举就是要让某个类型的变量的取值只能为若干个固定值的一个;
2.在枚举类中定义其他功能或构造方法,应该放在枚举元素列表之后。
3.枚举中元素就是这个枚举类的实例对象,如果调用相应的构造函数,
就在元素后加括号,传递相应的参数;
4.枚举中构造函数,必须私有;
例子:
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay1 weekDay = WeekDay1.MON;
System.out.println(weekDay.nextDay());
WeekDay weekDay2 = WeekDay.FRI;
System.out.println(weekDay2);
System.out.println(weekDay2.name());
//打印顺序
System.out.println(weekDay2.ordinal());
//将前台传递过来的值,转换成枚举类
System.out.println(WeekDay.valueOf("SUN").toString());
/ /将枚举类中的元素,转换成数组;
System.out.println(WeekDay.values().length);
}
public enum WeekDay
{
SUN(0),MON(),TUE,WED,THI,FRI(5),SAT;
private WeekDay()
{
System.out.println("first");
}
private WeekDay(int Day)
{
System.out.println("second");
}
}
}
六、反射:
反射的基石:Class类;
反射就是把java类中的各种成分映射成相应的java类:
一》得到各个字节码对应的实例对象(Class类型)三种方法
1.类名.class;如:System.class;
2.对象.getClass();如:new Date().getClass();前提必须由对象名;
3.Class.forName(“类名”);如;Class.forName(“java.util.Date”);
1.构造函数的反射:
得到某个类的所有构造函数:
Constructor[] constructors = Class.forName(“java.lang.String”).getConstructors();
2.成员变量的反射:
ReflectPoint pt1 = new ReflectPoint(3,5);
Field fieldY = pt1.getClass().getField("y");
System.out.println(fieldY);
System.out.println(fieldY.get(pt1));
3.成员方法的反射:
一》反射成员方法格式:
Method method = String.Class.getMethod(“charAt”,parameterType);
Method类 反射名 = 字节码.getMethod(“方法名”,参数列表);
注意:参数类型用class对象表示;
七、注解:
一》一个注解就是一个类,
二》作用就是传递信息给编译器或者开发工具,告诉它应该怎么做。
三》常用注解:
@Override:判断方法有没有覆盖;
@Deprecated 让某个方法过时;
@SuppressWarnings("deprecation"):某个方法过时,但还继续想用。
一》保留在那个生命周期
@Retention(RetentionPolicy.SOURCE)在源文件阶段,call阶段没有,运行没有
@Retention(RetentionPolicy.class):在class阶段,运行时没有;(默认阶段)
@Retention(RetentionPolicy.RUNTIME):保留注解类在运行阶段,
二》作用在那个成分上
//说明这个注解类只能作用在方法上;
@Target(ElementType.METHOD)
//既能作用在方法上和也能作用类上,用的是数组形式
@Target({ElementType.METHOD,ElementType.TYPE})
作用在字段上
@Target(ElementType.FIELD)
作用在形式参数上
@Target(ElementType.PARAMETER)
一》注解类很想接口
public @interface ItcastAnnotation {
//定义注解类属性
}
二》注解属性很像方法
//注解类
public @interface ItcastAnnotation {
//定义注解类属性,跟接口一样,前面省略public abstract
String color();
String value();
}
说明这个注解类有一个color属性和Value属性;
三》应用带属性的注解类,必须设置属性(以属性的方式设置);
//应用注解的类
@ItcastAnnotation(color="red",value="abc")
四》给注解类的属性设置默认值
public @interface ItcastAnnotation {
//定义注解类属性,跟接口一样,前面省略public abstract
String color() default "blue";
String value();
}
就是说color已经有默认值,可以重新设置,也可以不设置,就相当于该注解类只有一个属性需要设置就是value,所以设置value时,可以省略value名和“=”;
@ItcastAnnotation("abc")
五》如果注解类中只有一个属性需要设置值,可以省略属性名和“=”
@SuppressWarnings("deprecation")
六》在应用注解类的类中获取注解类对象
ItcastAnnotation annotation =
(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
七》调用注解类属性时,是以方法的形式调用;
//如果应用了某个注解类,就得到这个注解类对象
//获取注解类对象
ItcastAnnotation annotation =
(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
System.out.println(annotation.color());
1.int【】数组
//int[]数组
int[] arr();
在应用类中设置int数组属性
@ItcastAnnotation(arr={1,2,3})
2.枚举属性
TrafficLamp lamp() default TrafficLamp.GREEN;
在应用类中设置属性
@ItcastAnnotation(clamp=TrafficLamp.RED)
3.注解属性并缺省值
MetaAnnotationmetaAnnotation()default@MetaAnnotation(value="annotationA");
在应用类中设置属性
@ItcastAnnotation( metaAnnotation=@MetaAnnotation(value="annotationB"))
java高新技术的更多相关文章
- Java高新技术 注解
Java高新技术 注解 知识概要: (1)了解注解 (2)注解的应用结构图 (3)@Retention(RetentionPolicy.RUNTIME) ...
- Java高新技术 JavaBean内省
Java高新技术 JavaBean内省 知识概要: (1)了解JavaBean内省 (2)JavaBean的简单内省操作 ...
- Java高新技术 反射机制
Java高新技术 反射机制 知识概要: (1)反射的基石 (2)反射 (3)Constructor类 (4)Field类 (5)Method类 (6)用反射方 ...
- Java高新技术 JDK1.5之新特性
Java高新技术 JDK1.5的新特性 知识概要: (1)静态导入 (2)可变参数 (3)增强for循环 (4)基本数据类型的自动拆箱和装箱 静态导入 ...
- Java高新技术 Myeclipse 介绍
Java高新技术 Myeclipse 介绍 知识概述: (1)Myeclipse开发工具介绍 (2)Myeclipse常用开发步骤详解 ...
- java高新技术-枚举
1.什么是枚举 枚举是jdk1.5后才增加的新特性 用枚举就是要规定一个新的类型,那么要用这个类型的值就必须是我规定的那些值.如果不是那些值,编译器就会报错,好处是编译时就会做出判断 2.用普通类模拟 ...
- java高新技术-java5的静态导入与编译器语法设置
静态导入 import语句可以导入一个类或某个包中的所有类 import static 语句导入有一个类中的某个静态方法或所有静态方法 使用Math.random() 可以这样做 package co ...
- 黑马程序员——【Java高新技术】——案例:银行业务调度系统
---------- android培训.java培训.期待与您交流! ---------- 一.银行业务调度系统需求 Ø 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗 ...
- 黑马程序员——【Java高新技术】——案例:交通灯管理系统
---------- android培训.java培训.期待与您交流! ---------- 一.交通灯管理系统的项目需求 Ø 异步随机生成按照各个路线行驶的车辆 例如: 由南向而来去往北向的车辆 - ...
- 黑马程序员——【Java高新技术】——代理
---------- android培训.java培训.期待与您交流! ---------- 一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法 ...
随机推荐
- 20165227 2017-2018-2《Java程序设计》课程总结
20165227 2017-2018-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1 简要内容: 记忆深刻的老师 我期望的师生关系 对于Java学习的看法 预备作业2 简要内 ...
- Java给图片和PDF文件添加水印(图片水印和文字水印)
有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...
- vue组件库(一):前期准备工作
前言 将近期项目内自行开发一个vue组件,做个总结,记录下自己的思维过程~~~ 正文 接到这个任务后,还是要做些准备工作的. 主要内容如下: 1.优化下所在团队前端开发流程 服务器搭建gitlab,采 ...
- .NetCore 使用Jenkins发布多环境下的项目并适配数据库EFCore数据库更新及替换配置文件
说明 1.git上的配置地址可能都是本地环境,提交到git server后怎么来使用发布不同环境? 2.关于EFCore本地数据库有更新的情况 添加了 Migrations文件 怎么在构建的时候去更新 ...
- NET-知识点:C#中Equals和==比较
第一.相等性比较 其实这个问题的的本质就是C#的相等比较,相等比较可以分两类: 1.引用相等性,引用相等性指两个对象引用均引用同一基础对象. 2.值相等性,值相等性指两个对象包含相同的一个或多个值,其 ...
- hdu 5011 nim博弈 (2014西安网赛E题)
n堆石子,每次可以选一堆取走至少一个,之后你可以不操作或者把该堆石子分成两堆,每堆至少一个,和还是原来(取完石子后)的石子个数. Sample Input1121 131 2 3 Sample Out ...
- 为什么要做A.prototype.constructor=A这样的修正?
问题 虽然看过这篇博文JavaScript prototype之后对原型理解不再那么模糊了,但是依然还有很多理解不甚透彻的地方.比如,今天看到一个原型式继承的例子,又有些困惑,于是找了些帖子看看,有了 ...
- doc文档生成带目录的pdf文件方法
准备软件: 福昕PDF阅读器 下载地址:http://rj.baidu.com/soft/detail/12882.html?ald 安装福昕PDF阅读器,会自动安装pdf打印机. 准备好设置好各级标 ...
- 【Java】 大话数据结构(2) 线性表之单链表
本文根据<大话数据结构>一书,实现了Java版的单链表. 每个结点中只包含一个指针域的链表,称为单链表. 单链表的结构如图所示: 单链表与顺序存储结构的对比: 实现程序: package ...
- 018.Zabbix维护时间和模板导入
一 维护时间 在某些正常业务维护期间,不需要进行告警,可添加维护时间. 二 维护时间添加 2.1 维护 参数 描述 Name 维护名称 Maintenance type 两种维护类型可选: With ...