补day4:如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都保证有返回值。(除了void类型)

return关键字的作用:

1.返回数据给函数的调用者

2.函数一旦执行到了return关键字,那么该函数马上结束。(能结束一个函数)    return;

注意:一个函数的返回值类型是void,那么也可以出现return关键字,但是return关键字的后面不能有数据。

break关键字与return关键字的区别

1.break关键字是结束一个循环

2.return关键字是结束一个函数

函数的重载

在一个类中出现两个或者两个以上的同名函数,这个称作为函数的重载。

函数重载的作用:同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数。

函数重载的要求:

1.函数名一致

2.形参列表不一致(形式参数的个数或者是对应的数据类型不一致)

3.与函数的返回值类型是无关的

(要不就是重复定义)

数组:数组是同一种数据类型数据的集合容器。

数组的定义格式:

数据类型【】  变量名=new   数据类型【长度】;

局部变量:如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。

成员变量:成员变量就是定义在方法之外,类之内的。

栈内存:栈内存存储的都是局部变量,变量一旦出了自己的作用域,那么马上会从内存中消失,释放内存空间。

堆内存:堆内存存储的都是对象数据,对象一旦被使用完,并不会马上从内存中消失,而是等待垃圾回收器不定时把垃圾对象回收,这时候该对象才会消失,释放内存。

对象如果没有变量引用了,那么该对象就是一个垃圾对象了。

凡是以new关键字创建的对象,jvm都会在堆内存中开辟一个新的空间,创建一个新的对象。

数组的好处,对分配到数组对象中的每一个数据都分配一个编号(索引值,角标,下标),索引值的范围从0开始,到n-1

数组中最常见的问题

1.NullPointerException     空指针异常

原因:引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。

2.ArrayIndexOutOfBoundsException   索引值越界。

原因:访问了不存在的索引值。

数组的初始化方式:

数据类型【】     变量名=new   数据类型【长度】;    //动态初始化

数据类型【】     变量名={元素1,元素2,元素3....};   //静态初始化

排序:

选择排序:

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a= {18,12,6,8,9};
selectSort(a);
}
public static void selectSort(int[] arr) {
for (int i=0;i<arr.length-1;i++) {
for (int j=i+1;j<arr.length;j++) {
if (arr[j]>arr[i]) {
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
System.out.println("目前的元素是:");
for (int i=0;i<arr.length ;i++) {
System.out.print(arr[i]+",");
}
}

冒泡排序:

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a= {18,12,6,8,9};
bubbleSort(a);
}
public static void bubbleSort(int[] arr) {
for(int i=0;i<arr.length-1;i++) {
for (int j=0;j<arr.length-1-i;j++) {
if (arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}

}
System.out.println("目前的元素是:");
for (int i=0;i<arr.length ;i++) {
System.out.print(arr[i]+",");
}
}

查找:折半查找法

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a= {12,16,54,56,70};
int index=halfSearch(a,156);
System.out.println("元素的索引值为:"+index);
}

public static int halfSearch(int[] arr,int target) {
int max=arr.length-1;
int min=0;
int mid=(max+min)/2;
while (true) {
if (target>arr[mid])
min=mid+1;
else if (target<arr[mid])
max=mid-1;
else
return mid;
//没有找到
if (max<min)
return -1;
mid=(max+min)/2;
}

}

Arrays.sort();排序

Arrays.toString();输出

Arrays.binarySearch();折半查找法

二维数组的初始化方式:

数据类型【】【】  变量名=new 数据类型【长度1】【长度2】;

静态初始化:

数据类型【】【】  变量名={{元素1,元素2,元素3...},{元素1,元素2,元素3...},{元素1,元素2,元素3...}...}

数组的特点:

1.数组只能存储同一种数据类型的数据

2.数组是会给存储到数组中的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1

3.数组一旦初始化,长度固定

4.数组中的元素与元素之间的内存地址是连续的,注意,是数组中的相邻元素的地址,而不是数组本身的地址

Java学习笔记(5)的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  4. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  5. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  6. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  7. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  8. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  9. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  10. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

随机推荐

  1. codeforces 1065D

    题目链接:https://codeforces.com/problemset/problem/1065/D 题意:给你一个又1~n^2组成的n行n列的矩阵,你可以走日字型,直线,斜线,现在要求你从1走 ...

  2. python构建一个项目

    二.实验步骤 2.1 实验准备 我们的实验项目名为 factorial. $ mkdir factorial $ cd factorial/ 2.2 主代码 我们给将要创建的 Python 模块取名为 ...

  3. HTML5之SVG详解(一):基本概括

    转载自:http://www.cnblogs.com/hupeng/archive/2012/12/21/2828456.html 1.背景 SVG是Scalable Vector Graphics的 ...

  4. 设计模式开篇综述(Java)

    设计原则是规范,设计模式是技巧.如果在项目中能够灵活运用这些基础知识,那么我相信一定会得到意想不到的收获. 接下来的时间里,我将继续学习设计模式,将对每一个设计模式从以下几点进行分析和学习,如有不妥当 ...

  5. elemetUi 组件--el-upload

    [需求]实现上传Excel文件,在上传到服务器时,还要附加一个参数,在请求上传文件接口前,先要进行文件格式判断. [知识点] 1.el-upload 官方文档中,主要用到了以下属性: data 可选参 ...

  6. 修改nginx对http请求数据大小限制

    1. 问题发现 在公司搭建了一个基于mindoc的wiki知识库,用nginx做的反向代理服务器,同事在使用过程中上传某个文件一直失败,于是看着看下mindoc自己的日志文件,发现都是类似于fastd ...

  7. SCC模板

    vector<int> G[maxn]; int pre[maxn], low[maxn], c[maxn]; int n, m; stack<int> s; int dfst ...

  8. 【BZOJ1857】【SCOI2010】传送带 [三分]

    传送带 Time Limit: 1 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 在一个2维平面上有两条传送带,每一条传送 ...

  9. HIT 1917 2—SAT

    题目大意:一国有n个党派,每个党派在议会中都有2个代表, 现要组建和平委员会,要从每个党派在议会的代表中选出1人,一共n人组成和平委员会. 已知有一些代表之间存在仇恨,也就是说他们不能同时被选为和平委 ...

  10. 【洛谷 P1437】 [HNOI2004]敲砖块 (DP)

    题目链接 毒瘤DP题 因为\((i,j)\)能不能敲取决于\((i-1,j)\)和\((i-1,j+1)\),所以一行一行地转移显然是有后效性的. 于是考虑从列入手.我们把这个三角形"左对齐 ...