【新技术_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

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(