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

相关文章

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分