Java基础3-数组操作;类概述
昨日内容回顾
- 数据类型
- 基本数据类型
1) byte, short, int, long, float, double
2) boolean[true, false]
3) char
100: 默认为int
1.2: 默认为double
- 引用类型
1) class
2) interface
3) [],数组
- 基本数据类型
- 函数
- 作用: 封装功能代码
- 不能嵌套定义
- 函数的结果返回给调用者
- 函数定义格式
[修饰符][返回值类型][函数名](类型1 参数1, 类型2 参数2,...){ }
- 函数调用格式: 函数名()
- 函数重载:overload
- 递归:recursive, 自己调用自己
- 作用: 封装功能代码
- 指针
- java没有指针是指没有显示的指针操作
- 引用就是指针
- 指针是对象的内存地址
- 堆:heap, Object head
- 栈:stack, 方法栈
- 面向过程编程: c, 面向方法。粒度
- 面向对象: oop, oriented object program.面向对象编程
- 相关概念
1) class : 类,类是对象的抽象, 对现实世界的事物的软件抽象。
2) Object : 对象,对象是类的实例。new 类名
3) instance : 实例. 就是对象。 - 特征
1) 封装
2) 继承
3) 多态
- 相关概念
- 负数的表现形式,为什么如此设计?
补码形式存放,保证正负求和为0
- -128是在内存中是如何存储的?推算过程?
124 = 0111 1100 | -124 = 1000 0100 125 = 0111 1101 | -125 = 1000 0011 126 = 0111 1110 | -126 = 1000 0010 127 = 0111 1111 | -127 = 1000 0001 | -128 = 1000 0000
- 如果字节表示为11111111,则其真实数据是多少?
-1
- 正负数是否都支持补码的方式?
1 = 0000 0001 | -1 = 1111 1111 127 = 0111 1111 | -127 = 1000 0001
- 正数是否是负数的减一取反?
-127 = 1000 0001 ---> 1000 0000 ---> 0111 1111 = 127 -1 = 1111 1111 ---> 1111 1110 ---> 0000 0001 = 1
- 空心三角形
/* * * * ** ******* */ public void printTriAngle(){ int n = 4; for(int i=1; i<=n; i++) { for(int j=1; j<=2*n-1; j++) { if(i==1) { if(j==n) { System.out.print("*"); } else { System.out.print(" "); }} else if(i==n){ System.out.print("*"); } else { if(j==(n-i+1) || j==(n+i-1)) { System.out.print("*"); } else { System.out.print(" "); } } } System.out.println(); } }
- 倒三角空心
public void printInverseTriAngle(){ int n=4; for(int i=1; i<=n; i++) { for(int j=1; j<=2*n-1; j++) { if(i==1) { System.out.print("*"); } else if(i==n) { if(j==n) { System.out.print("*"); } else { System.out.print(" "); } } else { if(j==(n-(-i+n))|| j==(n+(-i+n))) { System.out.print("*"); } else { System.out.print(" "); } } } System.out.println(); } }
- [定义函数]
add // +
subtract // -
multiple // *
divide // /
支持float,doule,long,int。//函数重载.
public int add(int a,int b){ return a+b; } public int add(float a,float b){ return a+b; }
- 容器,同一种数据类型的集合。
- 通过下表,以0为基址。
- 定义数组
类型[] 名称 = new 类型[数字];
类型[] 名称 = new 类型[]{};
int x[] = new int[];
int[][] arr = new int[][];
int[][][] arr = ...
- 数组越界异常:java.lang.ArrayIndexOutOfBoundsException
- 空指针异常:java.lang.NullPointerException
- ipconfig //查看ip地址
- ping 192.168.12.7 //测定指定的地址是否连通
- ping www.baidu.com //测试外网的连通情况
- ping www.baidu.com -t //测试网络持续连通情况
- 选择排序
//3 1 2 5 4 ---> //1 3 2 5 4 ---> //1 2 3 5 4 ---> //1 2 3 5 4 ---> //1 2 3 4 5 public static void selectSort(int[] arr){ for(int i=0; iarr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } //增强for循环 for(int ii : arr){ System.out.print(ii+" "); } System.out.println(); }
- 【Java基础3-数组操作;
类概述】冒泡排序
每次都将最大的沉到底部
//5 3 4 2 1 ---> //3 4 2 1 5 ---> //3 2 1 4 5 ---> //2 1 3 4 5 ---> //1 2 3 4 5 //arry.length for(int i=arry.lengh-1; i>0; i--){ for(int j = 0; jarr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }
- 折半查找
在有序的数列中,进行二分法查找,每次取出搜索范围的中间值进行比较,依次再进行范围的缩小,直至找到所需要的值。
public static int halfFind(int[] array,int num){ int min = 0; int max = array.length-1; while(min<=max){ int mid = (min+max)/2; //找到了 if(array[mid] == num){ return mid; }//范围落在左半边 if(array[mid]>num){ max = mid - 1 ; } //范围落在右半边 else{ min = mid + 1; } } return -1; }
- 类的属性也叫成员变量。
- 类的方法也叫成员函数。
- 成员变量有默认的初始化值。
- 局部变量没有默认的初始化值。
- 没有返回值
- 函数名和类名相同。
- 默认的构造函数是 ClassName()
javabean
- 私有属性;
- 标准的getter/setter方法.
- 定义一个函数,函数功能是动态提取int[]中元素的最大值。
- 定义一个函数,从数组中查询指定的元素首次出现的位置。
- 定义函数,完成冒泡排序,大数下沉。
- 折半查找。
- 定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];
//前提条件是正方的。
- 遍历三维组数,横向输出三维数组的每一个层。
- 定义一个类:Dog 有名称 color age cry();
- 阐述出来堆区,栈区,何时出现溢出,如何解决。
- 将一个字节转换成0~255之间的整数:将符号位作为数字位
- 对数组进行冒泡排序(实现倒序),封装成方法,返回排序后的数组
- 实现数组的拷贝,将一个数组中的元素复制到另一个数组中,如果元素个数不等,或者截取,或者回绕。
- 输出整数的二进制表示方式
- 选择排序
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- Python基础|Python基础 - 练习1
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用