摘要: public static int binarySearch(int[] arr,int target){ //设置左边位置 int left=0; //设置右边位置 int right=arr.length-1; //循环条件:如果左边位置小于等于右边位置 while(left<=right){ 阅读全文
posted @ 2024-01-31 10:55 狗狗没有坏心眼 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 二分查找的前提:数组中的数据必须是有序的 核心思想:每次排除一半的数据,查询数据的性能明显提高很多 实现步骤 1.定义两个变量,一个代表左边位置,一个代表右边位置 2.定义一个循环控制折半 3.每次折半,都算出中间位置处的索引 4.判断当前要找的元素值,与中间位置处的元素值的大小情况 往左边走,截止 阅读全文
posted @ 2024-01-31 10:14 狗狗没有坏心眼 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Optional类是Java中的一个泛型类,引入自Java8版本,它用于表示一个可能为空的值,并提供了一些便捷的方法来处理这种情况,以避免空指针异常。 是一种优雅地处理可能为空的值的方式 可以包装任意类型的值,包括引用类型和基本类型的包装类 Optional类常见方法 可以通过调用Optional. 阅读全文
posted @ 2024-01-29 16:20 狗狗没有坏心眼 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 需求:某电影院目前正在上映国产大片,共100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 public class MyThread extends Thread{ //表示这个类的所有对象都共享ticket static int ticket=0; //0~99 @Override p 阅读全文
posted @ 2024-01-29 14:09 狗狗没有坏心眼 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 线程:是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中实际运作单位 进程:进程是程序的基本执行实体,一个程序就是一个进程 简单理解线程: 应用软件中相互独立,可以同时运行的功能 有了多线程,就可以让程序同时做多件事 线程的生命周期 完整的线程状态 New(新建状态) ->创建线程对象 阅读全文
posted @ 2024-01-27 10:22 狗狗没有坏心眼 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 在JDK1.7时 如果构造1000w个哈希码相同的字符串,把他们全部插入HashMap中,这将导致严重的哈希冲突 1000w个字符串全部挤入到一个哈希桶中,从而形成一个超长链表,这时候的HashMap的性能将从O(1)退化到O(n) 为什么性能会退化到O(n)? 因为在插入的时候要先比较这个节点是不 阅读全文
posted @ 2024-01-26 12:04 狗狗没有坏心眼 阅读(57) 评论(0) 推荐(1) 编辑
摘要: 从简单的应用开始 首先创建一个Duck父类,其他所有鸭子来继承 所有鸭子都有嘎嘎叫和戏水 例如 Duck中有 quack(); //不是抽象方法 swim(); //不是抽象方法 display(); //抽象方法 //其他鸭子方法 子类 GreenHeadDuck display(){ //绿头鸭 阅读全文
posted @ 2024-01-25 23:28 狗狗没有坏心眼 阅读(9) 评论(0) 推荐(1) 编辑