2020-07-22八大基本类型、递归、数组、内存分析、冒泡排序

--基础复习--
**注释**:JAVA的注释:单行注释、多行注释、文档注释
	//
	/*  */
**标识符**:只有字母和$和_开头,其他的不行,标识符是区分大小写的

**数据类型**:8大基本类型,JAVA是强类型语言
byte占1个字节
short占2个字节
int占4个字节
long占8个字节
float占4个字节
double占8个字节
char占2个字节
boolean占一位,只有两个,true和false

其中1B(byte,字节)=8bit(位)

有关数据类型的面试题:
银行业务中的数据类型:不能用浮点数,有一个舍弃误差,大约,接近不等
不要用浮点数进行比较
所以要用BigDecimal 数学工具类

字符的本质是数字
unicode编码:0-65536 ,也是2的16次方

转义字符 \t制表符 \n是换行符

shift+home是句尾选中本行

类型转换
基本原则,从低到高,否则会导致内存溢出
byte a1=10;
int a2=(int)a1;
不能对布尔型值进行转换,高到低是强转

JDK的新特性是可以在长数字之前用下划线分割,数值还是不会变的,例如int i=100_000;其实是可以正常赋值的

.equals方法就是判断字符串是否是一样的

JDK7之后的新特性,switch case可以进行匹配字符串

方法中renturn除了返回值,还有终结方法的功能

值传递和引用传递是什么??
JAVA中全部都是值传递

方法的重载,同一个类中,不同的参数列表,相同的方法名

可变参数:
public static void test(int…x){
if(x.length0){
System.out.println(“你个批根本没写参数”);
return;
}else if(x.length
1){
System.out.println(“就传了1个值”);
return;
}

    int result=0;
   for(int j=0;j<x.length;j++){
       if(x[j]>result){
           result=x[j];
       }
   }
    System.out.println("这里面最大的值是"+result);

重点:递归
public static void main(String[] args) {
Demo2 aaa=new Demo2();
int aaa1=aaa.test(4);
System.out.println(aaa1);
}

public static int test(int n){
    int result=1;
    if(n==1){
        result=n;
    }else{
        result=n*test(n-1);
    }
    return result;

}

数组的使用:
public static void main(String[] args) {

    //定义数组
    int[] a1 =new int[33];

   //赋值
    a1[3]=4;
    for(int i=0;i<a1.length;i++){
        System.out.println(a1[i]);
    }
}

JAVA中的内存分析
堆:主要是用于存放new的对象、数组,可以被所有线程共享
栈:存放基本变量类型,包括具体数值,引用对象的变量
方法区:包含所有class和static变量

数组其实就是对象

Arrays类:
工具类

方法功能:
int[] a={1,2,3,4,5};
// Arrays b=new Arrays();
System.out.println(Arrays.toString(a));
这样可以打印出数组的具体内容

Arrays.tostring:表现元素
Arrays.sort():排序
Arrays.fill(a[],0):填充数组

冒泡排序
两层循环,第一层就是冒泡轮数,第二层依次比较,时间复杂度为O(n2)
package com.wang.XXX.sort;
import java.util.Arrays;
public class ArraysDemo1 {
public static void main(String[] args) {
int[] array={1,4396,45,23,120,2200,33,61,7};
System.out.println(Arrays.toString(sort(array)));
}
//冒泡排序,
//比较相邻元素,如果第一个比第二个大,就交换位置
//每一次比较都会产生一个最大或者最小的数字
//下一次可以减少一次排序,直到结束

public static int[] sort(int[] array){
    for(int i=0;i<array.length-1;i++){
        for(int j=0;j<array.length-1-i;j++){
            if(array[j]>array[j+1]){
                int temp=array[j+1];
                array[j+1]=array[j];
                array[j]=temp;
            }
        }
    }
    return array;
}

}

如何优化冒泡排序?

稀疏数组:
棋盘上落子
不用存储大量的空值

三维数组,a[(8,8,1),(3,4,22)]
是一个8行8列共有1个元素,这个元素的位置是在第3行第4列数值是22

今天看到了P60
2020年7月22日23:01:34

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值