JAVA_SE基础——36.static的实际应用
什么时候定义静态函数
如果功能内部没有访问到非静态数据(对象的特有数据。那么该功能就可以定义为静态)
P.S.
静态方法作为类和接口的重要组成部分,可以通过类名或接口直接访问,通常将那些使用频率较高的方法声明为静态方法,从而可以方便地使用这些方法,并能提高程序的开发效率和性能。
我认为对于某些小功能的函数,而且内部没有访问到非静态数据,这种情况应该定义为静态,就如JavaAPI里面的方法摘要一样全部都是用static 关键字来修饰的。
定义数组工具类:
/*
定义数组工具类
1:定义一个遍历数组的函数
2:定义一个求数组和的功能函数 1. 遍历 2. 两两相加
3:定义一个获取数组最大值的功能函数
4:定义一个获取数组最大值角标的功能函数
5:定义一个返回指定数在指定数组中包含的角标的功能函数
6:定义一个可以用于排序int数组的函数
1:冒泡
2:选择
*/
class Arrays { // 1:定义一个遍历数组的函数
public static void print(int[] arr) {
for (int x = 0; x < arr.length; x++) {
if (x != (arr.length - 1)) {
System.out.print(arr[x] + ",");
} else {
System.out.print(arr[x]);
} }
} // 2:定义一个求数组和的功能函数
public static int getSum(int[] arr) {
int sum = 0;
for (int x = 0; x < arr.length; x++) {
sum += arr[x];
}
return sum;
} // 3:定义一个获取数组最大值的功能函数
public static int getMax(int[] arr) {
int max = 0;
for (int x = 0; x < arr.length; x++) {
if (arr[max] < arr[x]) {
max = x;
}
}
return arr[max];
} // 4:定义一个获取数组最大值角标的功能函数
public static int getIndexMax(int[] arr) {
int max = 0;
for (int x = 0; x < arr.length; x++) {
if (arr[max] < arr[x]) {
max = x;
}
}
return max;
} // 5:定义一个返回 指定数在指定数组中包含的角标的功能函数
public static int getIndex(int[] arr, int src) {
int index = -1;
for (int x = 0; x < arr.length; x++) {
if (arr[x] == src) {
index = x;
}
}
return index;
} // 冒泡
public static void test(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
if (arr[x] > arr[x + 1]) {
int temp = arr[x + 1];
arr[x + 1] = arr[x];
arr[x] = temp; }
}
} // 选择排序
public static void selectSort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = 1 + x; y < arr.length; y++) {
if (arr[x] > arr[y]) {
int temp = arr[y];
arr[y] = arr[x];
arr[x] = temp;
}
}
}
} // 7:定义一个可以将整数数组进行反序的功能函数。
public static void reverseSort(int[] arr) {
int start = 0;
int end = arr.length - 1;
for (int x = 0; x < arr.length; x++) {
if (start < end) {
int tem = arr[start];
arr[start] = arr[end];
arr[end] = tem;
}
start++;
end--;
} } // 折半查找
public static int halfSearch(int key, int[] arr) {
int min = 0;
int max = arr.length - 1;
int mid = 0; while (min < max) {
mid = (min + max) / 2;
if (key > arr[mid]) {
min = mid + 1;
} else if (key < arr[mid]) {
max = mid - 1;
} else {
return mid;
}
}
return -1;
} } class Demo3 { public static void main(String[] args) {
int[] arr = { 1, 3, 2, 4};
Arrays.selectSort(arr);//选择排序
Arrays.print(arr);//遍历数组.
System.out.println();
//获取数组最大值的功能函数
int x = Arrays.getMax(arr);
System.out.println(x);
}
}
运行结果:
JAVA_SE基础——36.static的实际应用的更多相关文章
- JAVA_SE基础——35.static修饰成员函数
在Java中适用static关键字修饰的方法称为静态方法. 声明静态方法的语法格式如下: 权限修饰符 static 数据类型 方法名(){ 方法体 } 静态方法 可以使用类名直接调用 类名.方 ...
- JAVA_SE基础——34.static修饰成员变量
需求:描述一下学校的学生. 特点:都是中国人.... 测试代码1: class Student{ String name; String country = "中国"; //国籍 ...
- JAVA_SE基础——8.基本数据类型
基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别
黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看 JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...
- JAVA_SE基础——7.常量&变量
上一篇,我讲了标识符&关键字 这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...
- JAVA_SE基础——6.标识符&关键字
学会写helloworld之后, 我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...
- JAVA_SE基础——5.第一个Java程序HelloWorld&注释的应用
配置完JDK&环境变量后,我们就可以开始写程序了,那么程序怎么写呢,用什么工具呢,我建议 为了方便学习,我们最好在一个磁盘下建立一个专门的文件来写java程序,比如就在D盘下建立一个名为&qu ...
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的差别
黑马程序猿入学blog ... 假设这章节非常难懂的话应该返回去先看 JAVA_SE基础--10.变量的作用域 定义的位置上差别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在 ...
- JAVA_SE基础——9.基本数据类型间的转换
前面我已经教会大家基本的数据类型进行了介绍, 然后这篇文章,我来介绍下,基本数据类型的转换. Java中有两种类型转换形式,分别是自动类型转换和强制类型转换. Step1.自动类型转换. 自动类型 ...
随机推荐
- MySQ备份常见问题
1.备份的时候出现2002报错,找不到/tmp/mysql.sock,这个文件 [root@centos199 backup]# mysqldump -uroot -ppassword cz-offi ...
- RestSharp 一个.NET(C#)的HTTP辅助类组件
互联网上关于.NET(C#)的HTTP相关的辅助类还是比较多的,这里再为大家推荐一个.NET的HTTP辅助类,它叫RestSharp.RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的H ...
- Maven-12: 插件解析机制
1. 插件仓库 2. 插件的默认groupId 3. 解析插件版本 4. 解析插件前缀
- linux --> fork()详解
fork()详解 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个 ...
- 在nuxt中加入element-ui插件遇到的问题
gen1.首先进入nuxt的官网跟着步骤实现内容. https://zh.nuxtjs.org/guide/plugins 2.在我们的项目目录中找plugin 根据图片中的表示引入内容: impor ...
- Java集合:TreeMap源码剖析
一.概念 TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解. 要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链 ...
- [css 揭秘]:CSS编码技巧
CSS编码技巧 我的github地址:https://github.com/FannieGirl/ifannie 喜欢的给我一个星吧 尽量减少代码重复 尽量减少改动时需要编辑的地方 当某些值相互依赖时 ...
- dom4j 最常用最简单的用法(转)
要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http://nchc.dl.sourceforg ...
- 用python程序来画花
from turtle import * import time setup(600,800,0,0) speed(0) penup() seth(90) fd(340) seth(0) pendow ...
- linux小白成长之路9————打包部署SpringBoot项目
[内容指引] SpringBoot项目介绍: 打包SpringBoot项目: 1.pom.xml: 2.application.properties配置: 3.application-dev.prop ...