08 2017 档案
摘要:JDK 1.5 以后, 将同步和锁封装成了对象, 并将操作锁的隐式方法定义到了该对象中, 将隐式动作变成了显示动作. Lock 接口 1. Lock 接口, 位于 java.util.concurrent.locks 包中, 使用该接口需要导包. 2. Lock 接口的出现替代了同步代码块或者同步函
阅读全文
摘要:出现错误的两种情况: 1. 线程安全问题(虚假唤醒): 线程1 生产的烤鸭被线程3 和线程5 两个线程同时消费 if 只能判断标记一次, 会导致不该运行的线程运行了, 出现数据错误的情况 while 可以多次判断标记, 解决了线程获取执行权后, 是否要运行的问题! 2. 死锁 notify() 一次
阅读全文
摘要:多线程间通信: 多个线程在处理同一个资源, 但是任务却不同. 等待/唤醒机制 涉及的方法 wait(): 让线程处于冻结状态, 被 wait() 的线程会被存储到线程池中 notify(): 唤醒线程池中的任意一个线程 notifyAll(): 唤醒线程池中所有的线程 这些方法必须定义在同步中, 因
阅读全文
摘要:1. 进程 2. 线程 3. 多线程存在的意义 4. 线程的创建方式 5. 多线程的特性 进程: 正在运行中的程序.打开一个软件, 相当于打开了一个进程. 线程 1. 线程, 就是进程中一个负责程序执行的控制单元(执行路径). 一个进程中至少要有一个线程, 也可以有多个执行路径(即多线程). 开启多
阅读全文
摘要:``` // 练习一: 写出程序结果 interface A{} class B implements A { public String func() { return "func"; } } class Demo { public static void main (String[] args)
阅读全文
摘要:作用: 1. 对类文件进行分类管理, 类似于文件夹 2. 给类提供多层命名(名称)空间 3. 写在程序的第一行, 包名使用小写 4. 类名的全称是: 包名.类名 5. 包也是一种封装形式 注意: 1. 编译时,使用的语句: , 表示在当前文件夹生成包 2. 包与包之间的类进行访问, 被访问的包中的类
阅读全文
摘要:Object 类: 所有类的根类, 是不断向上抽取而来, 具备着所有对象都具备的共性内容. 常用共性方法 1. : 判断两个对象是否相等. 默认比较的是对象的地址值. 一般情况,都会覆盖此方法, 根据对象的特有内容, 建立判断对象是否相同的依据. 2. : 返回该对象的哈希码值.返回的为十进制的值.
阅读全文
摘要:异常概述 异常: 是在运行时期发生的不正常情况. 在 java 中用类的形式对不正常情况进行了描述和封装. 描述不正常情况的类, 就称为 异常类 . 异常体系 父类: Throwable ( "JDK 文档" ) 子类: 1. 一般不可处理: Error 2. 可以处理: Exception 该体系
阅读全文
摘要:流程如下图所示: _参考资料_ "JavaSE 基础视频" "Java 面试题"
阅读全文
摘要:1. 概述 2. 内部类修饰符 3. 内部类的细节 4. 局部内部类 5. 匿名内部类及其应用 6. 匿名内部类细节 内部类概述 将一个类定义在另一个类的里面, 里面的那个类就称为内部类(内置类, 嵌套类). 访问特点: 1. 内部类可以直接访问外部类中的成员, 包括私有成员. 原因是: 内部类持有
阅读全文
摘要:1. 概述 2. 好处 3. 弊端 4. 转型 5. 类型判断 6. 成员变量 7. 成员函数 8. 静态函数 概述 定义:某一类事物的多种存在形态. 多态的好处 多态的好处: 提高了代码的扩展性, 前期定义的代码可以使用后期的内容. 例如: 前期定义的 method() 方法, 在新增加动物(如猪
阅读全文
摘要:抽象类 关键字: abstract 抽象类特点: 1. 方法只有声明没有实现时, 该方法就是抽象方法, 需要被 abstract 修饰, 抽象方法必须定义在抽象类中, 该类必须也被 abstract 修饰 2. 抽象类不可以被实例化. 因为抽象方法没有方法体, 调用抽象方法没有意义 3. 抽象类的子
阅读全文
摘要:1. 继承的概述 2. 继承的特点 3. super 关键字 4. 函数覆盖 5. 子类的实例化过程 6. final 关键字 1. 继承的概述 继承是类与类之间的关系. 继承的好处: 提高了代码的复用性 让类与类之间产生了关系, 给第三个特征多态提供了前提 继承按直接父类的个数分为两种: 1. 单
阅读全文
摘要:设计模式: 对问题行之有效的解决方式, 其实它是一种思想. 单例设计模式 解决的问题:就是可以保证一个类在内存中的对象唯一性. 即单个实例. 比如对于A 和 B 两个程序使用同一个配置信息对象时, A 对配置信息作出修改, B 也与之对应的更新配置信息, 即需要保证该对象的唯一性. 如何保证对象唯一
阅读全文
摘要:``` / 建立一个用于操作数组的工具类, 其中包含着常见的对数组操作的函数, 如: 求最值, 排序等 @author 张三 @version v1.0 / public class ArrayTool // public 作用: 保证文件名和类名必须一致, 否则编译失败. 类的权限更大 { pri
阅读全文
摘要:static 特点 1. static 是一个修饰符, 用于修饰成员 2. static 修饰的成员被所有的对象所共享 3. static 优先于对象存在, 因为 static 的成员随着类的加载就已经存在了 4. static 修饰的成员多了一种调用方式, 即可以直接被类名所调用, 类名.静态成员
阅读全文
摘要:4. 构造函数 5. this 关键字 1. 构造函数 特点: 1. 函数名与类名相同 2. 不用定义返回值类型 3. 没有具体的返回值 作用: 可以给对象进行初始化. 备注: 1. 创建对象都必须要通过构造函数初始化 2. 一个类中如果没有定义过构造函数, 那么该类中会有一个默认的空参数构造函数.
阅读全文
摘要:1. 面向对象的概念 2. 类与对象的关系 3. 封装 面向对象 面向过程: 强调的是过程(动作) 面向对象: 强调的是对象(实体) 面向对象的特点 1. 面向对象就是一种常见的思想,符合人们的思考习惯; 2. 面向对象的出现,将复杂的问题简单化; 3. 面向对象的出现,让曾经在问题中的执行者,变成
阅读全文
摘要:1. 什么时候使用数组呢? 如果数据出现了对应关系, 而且对应关系的一方是有序的数字编号, 并作为角标使用. 这时,就必须要想到数组的使用. 也就是将这些数据存储到数组中, 根据运算的结果作为角标, 直接去查数组中对应的元素即可. 这种方式称为 查表法 . _参考资料:_ "JavaSE 基础视频(
阅读全文
摘要:1. 对数组操作最基本的动作: 存和取 2. 核心思想: 就是对角标的操作 数组常见操作: 1, 遍历 2, 获取最大值和最小值 3, 排序 4, 查找 5, 折半查找 // 1. 遍历 int[] arr = {23,435,46,576,456,4,4,56,574,756} for(int x
阅读全文
摘要:数组定义及格式: 数组: 同一种类型数据的集合, 就是一个容器 定义数组格式1: 说明: 1. 数组是一个容器.而容器属于一个实体,实体是用来封装多个数据的.在内存中的建立有区别于其他变量,需要使用关键字 new 2. 数组一旦建立, 需要明确其长度 3. 根据类型的不同而不同,默认初始化值不同.
阅读全文
摘要:函数的定义: 函数就是定义在类中的具有特定功能的一段独立小程序 函数也称为方法 函数定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...) { 执行语句; return 返回值; } 备注: 如果函数没有具体的返回值,则返回值类型为 void; 此时,函数中
阅读全文
摘要:程序的四种流程控制结构: 1. 顺序结构 2. 判断结构 : if 语句 3. 选择结构 : switch 语句 4. 循环结构 : while 语句, do...while 语句, for 语句 以下主要分析循环结构: while 格式 do...while 格式 特点: 无论条件是否满足, 循环
阅读全文
摘要:使用运算符之后,肯定有返回结果. 六种运算符: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符 1. 算术运算符 加(+), 减( ), 乘( ), 除(/), 取余(%), 自增(++), 自减( ) 注意: 2%5 = 2; 字符串与数字用加号连接: 3 + "2", 结果
阅读全文
摘要:大多数编程语言都包括以下基本内容: 1. 关键字 2. 标识符 3. 注释 4. 常量和变量 5. 运算符 6. 语句 7. 函数 8. 数组 学习语言最重要的两点: 该语言基础的表现形式是什么 这些东西什么时候使用 关键字 在程序语言中有特殊含义的单词 标识符 在程序中自定义的一些名称 由 26
阅读全文
摘要:代码是思想的一种表现形式. 写代码之前需要完成以下三步: 1. 明确需求: 练习一个 程序 2. 分析思路: 定义一个类,因为 java 程序都是以类的形式存在的.类的形式其实就是一个字节码文件的最终体现. 定义一个主函数(main), 为了让该类可以独立运行 因为要在控制台上看到 "hello w
阅读全文
摘要:Java 语言特点: 跨平台性: 一次编译,到处运行.即不受操作系统限制,编译一次,可以在多个平台运行.而这个优势得益于 JVM(Java Virtual Machine, 即Java 虚拟机). 两个词语 JRE: Java Runtime Enviroment, 即 Java 运行环境,包含 J
阅读全文
摘要:写在前面:本文所有系统为 OS X 环境配置 首先,在 terminal 终端检查是否安装 Git : ,安装成功的提示如下: 然后,设置git的两个基本信息:用户名和邮箱 设置完成后,可以使用atom 编辑器打开 ,查看效果. 基本操作流程和常用命令 新建一个文件夹: 打开新建的文件夹: 初始化g
阅读全文