java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象
1. java.util.Arrays 数组工具类
Arrays.toString (数组)
数组值链接字符串
Arrays.sort(数组)
基本类型: 优化的快速排序
引用类型: 优化的合并排序
Arrays.binarySearch(数组,目标值)
二分法查找
在有序数组中, 查找目标值的位置
找不到,返回辅负数无意义值
Arrays.copy(数组,长度)
把数组复制成指定长度的新数组
不超出原数组长度,相当于截取
超出原数组长度, 超出范围赋值默认值
Arrays.fill(数组,值)
填满指定的值,每一个位置都变化指定的值
2. 数组复制
Arrays.copyof(数组,长度);
会新创建数组
不会新创建数组
System.arraycopy(
原数组,
原数组起始位置,
目标数组,
目标数组起始位置,
复制的数据数量
);
3.二维数组
标识存放数组的数组
创建二维数组
int[][] a = new int[3][2]; 默认0
int[][] a = new int[3][]; 为 null
只创建外围数组都是默认值null,可以之后创建数组放入外围数组.
int[][] a = {
{2,3,6},
{5,7,9}
};
4.变量
局部变量:
定义在方法中,或局部的代码快中
1. 局部变量必须手动初始化, 初始化就是第一次赋值时,分配内存
int i ; print(i); // 错的,没有初始化, 内存中不存在这个地址.
i = 5; print(i); // 对的, 第一次赋值,初始化
2. 局部变量的作用域只存在于定义的大括号结束.
3. 作用域范围内不能重复定义
成员变量
1. 直接定义在类中.
2. 成员变量自动初始化成默认值
int i ; // 默认 0,
int[] a; // 默认 null
boolean b; // 默认 false
5. 方法
方法的参数传递
main 方法是静态的方法,静态方法能访问静态的方法,能访问静态成员变量, 但不能访问非 static
Java 的参数传递是值传递
方法的递归调用
在方法中,调用自身
void f(){
f();
};
递归一步一步的简化问题,简化成最简问题,再倒推求出结果
一般不同时做多次递归运算, 否则运算量会急剧增加, 可以考虑用循环代替
基础语法总结
面向对象
人为抽象的编程模型
把程序中的事物,算法,逻辑,概念等,抽象成一个一个的具体物体.
类
对象
引用
构造方法
this
方法重载
继承
super
重写
多态
instanceof
抽象类
final
static
访问控制符
对象的创建过程
接口
内部类
类:
相关的数据,方法代码,封装在一个程序组件中,称为类
类可以理解成模板,用模板创建对象,实例.
每个对象都占用独立的内存空间,来保存各自的属相数据
每个对象,可以独立控制,执行指定的方法代码
引用:
引用类型变量
保存一个对象的地址
使用引用变量,可以找到一个对象的内存空间,访问它的数据,或调用方法
引用类型的特殊值: null 不引用任何对象的内存地址.
java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象的更多相关文章
- java 数组基础学习(一维二维数组)
1.一维数组 1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2} 动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度] 例:int[ ] ...
- Java连载68-数组的拷贝、二维数组
一.数组的拷贝 函数arraycopy(),参数为:源数组.源数组的开始下标.目标数组.目标数组的开始下标.拷贝长度 package com.bjpowernode.java_learning; ...
- c指针与数组,传参问题,指针数组与数组指针的区别,二维数组动态内存分配
一 数组的结构:顺序存储,看谭浩强中的图,牢记 1.数组名指代一种数据结构:数组 现在可以解释为什么第1个程序第6行的输出为10的问题,根据结论1,数组名str的内涵为一种数据结构,即一个长度为10的 ...
- 《Java大学教程》—第16章 二维数组
多维(Multi-dimensional)数组维数由索引个数决定.常用的数组:一维(one-dimensional)数组.二维(two-dimensional)数组 16.2 创建二维数组索引从 ...
- java杨辉三角和空心菱形(二维数组篇)
一.杨辉三角 import java.util.Scanner; //导入包 public class Test7 { public static void main(String[]args){ S ...
- 2017.12.10 Java写一个杨辉三角(二维数组的应用)
杨辉三角的定律 第n行m列元素通项公式为: C(n-1,m-1)=(n-1)!/[(m-1)!(n-m)!] 需要用到创建二维数组 package com.glut.demo; /** * 杨辉三角 ...
- 数组(Array),二维数组,三维数组
数组(Array):相同类型数据的集合就叫做数组. (一)定义数组的方法: A) type[] 变量名 = new type[数组中元素的个数] 例如: int[] a = new int[10] ; ...
- [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组
程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...
- C语言数组篇(四)二维数组
二维数组声明: ][] ={{,,},{,,}; //两行 三列 二维数组在声明的时候可以不写行,但一定要写列 ] = {{,},{,,},{}}; //未声明的地方自动补零 二维 ...
随机推荐
- IO模型、线程模型
五种IO模型介绍和对比 https://juejin.im/post/5bd32b84f265da0ac962e7c9 Linux 的 IO 通信 以及 Reactor 线程模型浅析 https:// ...
- 使用react全家桶制作博客后台管理系统
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基于react全家桶(React.React-r ...
- Error:Failed to resolve: com.android.support.constraint:constraint-layout:1.0.2
可以换个maven库: allprojects { repositories { jcenter() //maven { url "https://jitpack.io" } ma ...
- elastic的gc相关
https://www.jianshu.com/p/1f450826f62e gc原理介绍 相关优化 https://zhaoyanblog.com/archives/319.html 问题 ht ...
- NOIP2018游记
day1 不想吐槽题目了... 40min写完,然后对拍+玩小恐龙. 每个人都阿克了. 预计得分:100+100+100 day2 体验极差 t1本来想写 \(O(n)\) 做法,写到一半发现可以 \ ...
- 【LOJ#3096】[SNOI2019]数论
[LOJ#3096][SNOI2019]数论 题面 LOJ 题解 考虑枚举一个\(A\),然后考虑有多少个合法的\(B\). 首先这个数可以写成\(a_i+kP\)的形式,那么它模\(Q\)的值成环. ...
- eclipse JVM 性能调优
最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录. 一.JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老 ...
- 函数内部还是不要使用 strtok()
今天在调试程序的时候,遇到一个奇怪的事情,一开始担心是代码存在内存溢出引起的,花了半个小时没找到原因. 在吃饭的时候,突然想起可能是 strtok() 引起的,查找调用的函数,果然发现在函数中使用了 ...
- Harbor删除镜像后且GC清理后,磁盘空间没有释放的问题
1.原因 Harbor删除镜像后且GC清理后,磁盘空间没有释放.因为我们push大量相同标签的镜像,Docker 镜像由标签引用,并由唯一的摘要标识.这意味着如果myImage使用标记推送两个图像,在 ...
- Windows 10 x64 下编译 Hadoop 源码
Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...