随笔分类 - Java
摘要:Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹相关功能 File类的概述 Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在j
阅读全文
摘要:递归的思想 以此类推是递归的基本思想。 具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。 递归的两个条件 递
阅读全文
摘要:线程实现方式 并发与并行 并发:指两或多个事件在同一个时间段内发生 并行:指两或多个事件在同一个时刻发生(同时发生) 进程的概念 内存:所有的应用程序都需要进入到内存中执行 临时存储RAM 硬盘:永久存储ROM 进入到内存的程序叫进程 任务管理器-->结束进程 那么就把进程从内存中清除了 线程的概念
阅读全文
摘要:Lambda表达式 函数式编程思想概述 强调做什么,而不是以什么形式做 面向对象的思想: 做一件事情,找一个能解决这个的事情的对象,调用对象的方法,完成事情 函数式编程思想 只要能获取到结果,谁去做的,这么做的都不重要,重视的是结果,不重视过程 传统写法和Lambda写法对比 传统写法 匿名内部类的
阅读全文
摘要:线程池 线程池概念:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多的资源。 线程池:容器-->集合(ArrayList,HashSet,LinkedList<Thread>,HashMap) 当程序第一次启动的时候,创建多个线程,保存
阅读全文
摘要:线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同重点:有效的利用资源 分析:需要那些类 1 资源类:包子类 设置包子的属性 包子的状态:有true 没有false 2 生产者(包子铺)类:是一个线程类,可以继承Thread 设置线程任务(run):生产包子 对包子的状
阅读全文
摘要:等待唤醒机制 线程的状态 阻塞状态:具有cpu的执行资格,等待cpu空闲时执行 休眠状态:放弃cpu的执行资格,cpu空闲,也不执行 等待唤醒案例分析 public static void sleep(Long millis):使用当前正在执行的线程以指定的毫秒数暂停(暂停停止执行). 毫秒数结束之
阅读全文
摘要:线程的安全问题 模拟卖票案例创建三个的线程,同时开启,对共享的票进行出售 这样会导致一个结果 Thread-0 -->正在卖第1张票 Thread-1 -->正在卖第1张票 Thread-2 -->正在卖第0张票 解决线程安全问题的一种方案:使用同步代码块 格式: 注意: 通过代码块中的锁对象,可以
阅读全文
摘要:线程实现方式 并发与并行 并发:指两或多个事件在同一个时间段内发生 并行:指两或多个事件在同一个时刻发生(同时发生) 进程的概念 内存:所有的应用程序都需要进入到内存中执行 临时存储RAM 硬盘:永久存储ROM 进入到内存的程序叫进程 任务管理器-->结束进程 那么就把进程从内存中清除了 线程的概念
阅读全文
摘要:异常 异常概念 异常:指的是程序在执行过程中,出现的非正常的情况,最终导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象。Java处理异常的方式是中断处理。 异常体系 异常机制其实是帮助我们找到程序中的问题,异常的根类是java.
阅读全文
摘要:面向对象三大特征:封装、继承、多态。 封装性在Java当中的体现: 封装就是将一些细节信息隐藏起来,对于外界不可见。 一旦用了private进行修饰,那么本类当中任然可以随意访问。但是:超出了本类范围之外就不能再直接访问了。 间接访问private成员变量,就是定义一对儿Getter/Setter方
阅读全文
摘要:构造方法: 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是再调用构造函数。 注意事项: 5.一旦编写了至少一个构造方法,那么编译器将不再赠送。 6.构造方法也是可以进行重载的。
阅读全文
摘要:数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某一个元素。 增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创
阅读全文
摘要:JDK9对集合添加的优化 JDK9的新特性: list接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素 static <E> List<E> of (E... elements) 使用前提: 当集合中存储的元素的个数已经确定了,不在改变时使用 注意:
阅读全文
摘要:Debug追踪 Debug调试程序: 可以让代码逐行执行,查看代码执行的过程,调试程序中出现的bug 使用方式: 在行号的右边,鼠标左键单击,添加断点(每个方法的第一行,哪里有bug添加到哪里) 右键,选择Debug执行程序 程序就会停留在添加的第一个断点处 执行程序: f8:逐行执行程序 f7:进
阅读全文
摘要:Map集合 Collection接口: 定义了单列集合规范 Collection<E> 每次存储一个元素 单个元素 Map接口:定义了双列集合的规范 Map<K,V> 每次存储一对元素 java.util.Map<K,V>集合 Map集合的特点: HashMap集合的特点:1.HashMap集合底层
阅读全文
摘要:可变参数 可变参数:是JDK1.5 之后出现的新特性 使用前提: 当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数。 使用格式:定义方法时使用 修饰符 返回值类型 方法名(数据类型...变量名){} 可变参数的原理: 可变参数底层就是一个数组,根据传递参数个数不同,会创建不
阅读全文
摘要:Set接口 Set接口的特点: HashSet特点: HashSet集合存储数据的结构(哈希表) 哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到的地址,不是数据实际存储的物理地址)在Object类有一个方法,可以获取对象的哈希值 HashCode方法的源
阅读全文
摘要:List接口 List接口的特点: List接口中带索引的方法(特有): 注意:操作索引的时候,一定要防止索引越界异常 IndexOutOfBoundsException:索引越界异常,集合会报 ArrayIndexOutOfBoundsException:数组索引越界异常 StringIndexO
阅读全文