Java复习
1数据类型
数值
·整型
1 byte 8位 1字节
2 short 16位 2字节
4 int 32位 4个字节 默认
3 long 64位 8字节
·浮点数
1 float 32 位 4字节
2 double 64 8字节 默认
字符
布尔类型
true/false
常量只能赋值一次 并且在前面要加 final 变量名全大写 在内存中保存的方式不一样
final double PI=3.14;
类型转换 长度短——> 长度长的 属于自然转化 byte b3=1; int a=b3; 精度短的——> 精度长的 属于自然 float c=3.3f; double d=c; 强制转换 高位丢失 保留地位 精度变化
左右位移
1 >> 右位移 ——》除以2 右移一位
2 << 左位移 ——》乘以2 左移一位
三目运算
语法 条件?: ture结果1:false结果2
循环
for ------continue 关键字 跳出循环
Arrays.fill(数组,值);给数值中所有的赋值
算法
1冒泡
思想:
//冒泡排序 int[] is ={12,341,21,4,21,4,1,4,2334,3}; for (int i=0;i<is.length;i++){ for (int j=0;j< is.length-1;j++){ if (is[j]>is[j+1]){ int temp=is[j]; is[j]=is[j+1]; is[j+1]=temp; } } } System.out.println(Arrays.toString(is));
2选择
思想:
//选者排序 把每轮最小最大 int[] is ={12,341,21,4,21,4,1,4,2334,3}; for (int i=0;i<is.length-1;i++) { int minIndex=i; for (int j=i+1;j<is.length;j++){ if (is[j]<is[minIndex]){ minIndex=j; } } // 当前最小值 int temp=is[i]; is[i]=is[minIndex]; is[minIndex]=temp; } System.out.println(Arrays.toString(is));
3插入
思想:
int[] is ={12,341,21,6,21,9,1,4,2334,3}; for (int i=1;i< is.length;i++){ for (int j=i; j>0 && is[j]<is[j-1];j--){ int temp=is[j]; is[j]=is[j-1]; is[j-1]=temp; } } System.out.println(Arrays.toString(is));
4希尔
//希尔排序 划分若干个子序列 进行插入排序 最后进行一次完整排序 一有一个增量值 T int[] is ={12,341,21,6,21,9,1,4,2334,3,2,33,11}; int gap=1;//跨度 while (gap<is.length){ gap=gap*3+1; } while (gap>0){ for (int i=gap;i<is.length;i++){ int temp=is[i] ; int j=i-gap;//找跨度元素 while (j>=0&&is[j]>temp){ is[j+gap]=is[j];//插入排序 j-=gap; } is[j+gap]=temp; } gap=gap/3; } System.out.println(Arrays.toString(is));
Object
HashCode:获取当前类的hash值 用于加密关系
toString :默认情况下是 打印类全名+hash值 一般是重写tostring 需要什么返回什么
json 字符 用于对象表示
equals:用于判断二个实列是否相等
接口 多实现
接口有默认方法 default 和 static 静态方法
单继承
类图
-
public :+
-
private : -
-
抽象方法:斜体
-
普通方法:正体
字符串 拆包和装包
Integer i6 = Integer.parseInt 转化为基本类型
Integer i7 = Integer.valueof 转化为包装数据类型
自动拆箱 :包装类型与基本类型可以自动转换
自动装箱 :
integer :(面试可能会问)
byte范围之内的值,在放在常量池中
byte 范围之外是在 栈内存中
字符串
"dahdh" 以双引号的是在常量池中的 是相等的
但是 new 出来的是不同的地址
intern 方法 : 先在常量池中寻找 ,没有在去堆内存中在去寻找
StringBuffer: 字符串拼接 线程安全
StringBuilder:线程不安全
异常
checkedException : 必须处理的
RuntimeException :可以不用被处理的异常
集合
// collection 集合接口 定义了集合的主体功能 无序 不唯一 Collection c; // set 无序 唯一 不能放入重复的数据 Set set= new HashSet(); // 通过迭代器 Iterator inter = set.iterator(); //获取迭代器 while (inter.hasNext()){ //判断是否有下一个 Object obj = (Object) inter.next();//获取下一个元素并更新游标哦 System.out.println(obj); } // 同通过for增强 // list 有序 不唯一 List l = new ArrayList(); l.add("aa"); l.add(1,"aaaaa"); LinkedList l1=new LinkedList(); // ArrayList 可变数组 每次扩容是除前三次的 原来基础的1/2倍 修改元素差 随机访问效率高 // linkedlist: 链表结构 // map-key 唯一且无序 Map mao=new HashMap(); mao.put("name","ybb"); System.out.println(Arrays.toString(mao.keySet().toArray())); System.out.println(Arrays.toString(mao.values().toArray())); //泛型 : 支持对象数据 不支持 基本数据类型 要使用就要对应的包装类 列 Integer 。。。 }