【新技术_01】Eclipes使用,可变参数,高级For循环,基本数据自动装箱拆箱

本文主要是介绍【新技术_01】Eclipes使用,可变参数,高级For循环,基本数据自动装箱拆箱,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


1 选择Eclipes的版本

工具栏-Window-Perferences-Java-Complier下 如图选择版本

 

 

 

1.1 Eclipes快捷键配置方法

举例:(补充语句快捷键 Alt+\)

工具栏-Window-Perferences-General-Keys-输入 content assist

 



 

1.2 配置模板

1.在Eclipes选中要创建模板的命令行,右键--Surround With—try这样就会自动的把选中命令加入到try{ } catch( ){ }模板中

 

 

 

2.如果右键--Surround With中没有需要的模板可以在

工具栏 Window—Perferences-Java-Editor-Templates-点击New-创建自己的模板命令
1.2.1

 

 

 

 

 

1.2.2


 

1.2.3 点击New,新建模板

 



1.2.4添加自己的模板

 


 

1.3 导入静态方法

import 语句可以导入一个类或某个包中的所有类

import static 语句导入一个类中的某个静态方法或所有静态方法

 

import static java.lang.Math.max;导入Math中的某一个类

 

imoort static java.lang.Math.*;导入Math中的所有静态方法

 

 

1.4可变参数:

问题:一个方法接受的参数个数不固定,例如:

System.out.println(countScore(2,3,5));

System.out.println(countScore(1,2,3,5));       

 

1.4.1可变参数的特点:

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

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

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

 

练习一:可变参数的应用

public class VarableParameter {/*** @param args*/public static void main(String[] args) {// TODO Auto-generatedmethod stubSystem.out.println(add(2,3));System.out.println(add(2,3,5));   }public static int add(int x,int... args){int sum = x;for(int i=0;i<args.length;i++){sum += args[i];}return sum;}}


1.5 高级For循环

高级For语法:

for ( type 变量名:集合变量名 )  { … }

注意事项:

迭代变量必须在( )中定义!

集合变量可以是数组或实现了Iterable接口的集合类

 

举例:

      

   publicstatic int add(int x,int ...args) {intsum = x;for(intarg:args) {sum+= arg;}returnsum;}

 

练习二:高级For循环

public class VarableParameter {/*** @param args*/public static void main(String[] args) {// TODO Auto-generatedmethod stubSystem.out.println(add(2,3));System.out.println(add(2,3,5));   }public static int add(int x,int... args){int sum = x;for(int arg : args){sum += arg;}return sum;}}


1.6   基本数据类型的自动拆箱与装箱

自动装箱:

Integer num1 = 12;

 

自动拆箱:

System.out.println(num1 + 12);

 

基本数据类型的对象缓存:

Integer num1 = 12;

Integer num2 = 12;

System.out.println(num1 == num2);

//输出true,在-128 – 127 之间的数可以存放在线程池里,属于一个地址,可重复调用

 

Integer num3 = 129;

Integer num4 = 129;

System.out.println(num3 == num4);

//输出false,在-128 – 127 之外的数,创建的是两个不同地址的对象

 

Integer num5 = Integer.valueOf(12);

Integer num6 = Integer.valueOf(12);

System.out.println(num5 == num6);

 

1.7享元模式:

英文:Flyweight

定义设计模式中的享元模式,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).

为什么使用?

面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还有一些特性是取决于应用(context),是不可共享的,这也是Flyweight中两个重要概念--内部状态intrinsic和外部状态extrinsic之分。
说白点,就是先捏一个的原始模型,然后随着不同场合和环境,再产生各具特征的具体模型,很显然,在这里需要产生不同的新对象,所以Flyweight模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight factory负责维护一个Flyweight pool(模式池)来存放内部状态的对象。
Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度。应用场合很多:比如你要从一个数据库中读取一系列字符串,这些字符串中有许多是重复的,那么我们可以将这些字符串储存在Flyweight池(pool)中。


举例:

这里就以去餐馆吃饭为例详细的说明下享元模式的使用方式。去菜馆点菜吃饭的过程大家一定都是轻车熟路了,这里就不赘述。在例子中我使用了一个list来存放外蕴状态和内蕴状态的对应关系,而且提供了查询每个客人点菜情况的方法。内蕴状态在这里代表了菜肴的种类,而外蕴状态就是每盘菜肴的点菜人。


Flyweight模式一般由几个部分组成:
·Flyweight接口(抽象类) :定义了一个可共享的元类
·Flyweight实现类:实现了元类中的操作,而且可能会提供一个用于保存内部状态(共享属性)的空间
·Flyweight Factory:创建Flyweight的工厂类,创建后将其保存到Flyweight Pool中
·Flyweight Pool:缓冲Flyweight对象的池,通常包含在工厂类中


 

Flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用它

当以下情况成立时使用Flyweight模式:

1 一个应用程序使用了大量的对象。

2 完全由于使用大量的对象,造成很大的存储开销。

3 对象的大多数状态都可以变为外部状态。

4 如果删除对象以外的状态那么可以用相对较少的共享对象取代很多组对象。

5 应用程序不依赖于对象标识。

其结构图如下所示:

 



这篇关于【新技术_01】Eclipes使用,可变参数,高级For循环,基本数据自动装箱拆箱的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016410

相关文章

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数