--基础复习--
**注释**: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.length1){
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