随笔分类 - JavaSE基础
摘要:死锁 两个线程对两个同步对象具有循环依赖时,就会发生死锁。即同步嵌套同步,而锁却不同。 线程饿死和活锁虽然不像死锁一样是常见的问题,但是对于并发编程的设计者来说就像一次邂逅一样。当所有线程阻塞,或者由于需要的资源无效而不能处理,不存在非阻塞线程使资源可用。JavaAPI 中线程活锁可能发生在以下情形
阅读全文
摘要:线程同步概念 同步是用来解决多线程的安全问题的,在多线程中,同步能控制对共享数据的访问。如果没有同步,当一个线程在修改一个共享数据时,而另外一个线程正在使用或者更新同一个共享数据,这样容易导致程序出现错误的结果。 线程同步方式 同步的三种表现形式: 同步代码块 可以指定需要获取哪个对象的同步锁,使用
阅读全文
摘要:基本概念 1.并发编程模型 线程之间的通信机制有两种:共享内存和消息传递。Java的并发采用的是隐式的共享内存模型。 Java内存模型(JMM)是围绕着在并发过程中如何处理原子性、可见性和有序性来建立的。 原子性:基本数据类型的访问读写是具备原子性的(针对long和double有非原子性协定),sy
阅读全文
摘要:Collections工具类 1. 提供大量方法用于操作集合,比如排序,查找,替换 2. 同步控制 提供synchronizedXxx()方法将指定集合类包装成线程同步的集合。 3. 设置不可变集合 提供三个方法返回一个不可变的集合 emptyXxx() singletonXxx() unmodif
阅读全文
摘要:Set集合总览 集合元素无序、不重复,三个实现类都是线程不安全的,最好在创建时通过Collections工具类的synchronizedSortedSet方法来包装Set集合,防止对set集合的意外非同步访问。 HashSet类 1. 底层数据结构是哈希表(是一个元素为链表的数组) 和红黑树,按Ha
阅读全文
摘要:Map集合总览 1. 保存映射关系key value键值对,键唯一,值可以重复,Map和Set的实现类相似 2. Entry是Map的内部类 3. Map接口中常用的方法: void clear() Set keySet(),返回Map中key组成的Set集合 Object put(Object k
阅读全文
摘要:Queue集合 1. 模拟队列先进先出(FIFO),不允许随机访问元素 2. Queue接口定义的方法: //void add(Object e) boolean offer(Object e),加入队列尾部,比add安全 //Object element(),获取队列头部元素 Object pee
阅读全文
摘要:List集合总览 1. 元素有序,可重复,可通过索引访问 2. 增加了通过索引操作集合的方法,如: Object get(int index) Object remove(int index) void sort(Comparator c) void replaceAll(UnaryOperator
阅读全文
摘要:集合类概述 1.继承树 2.集合和数组 区别如下: 数组可以存储基本数据类型,也可以存储引用类型;而集合只能存储引用类型(比如存储int,它会自动装箱成Integer) 数组长度固定,集合长度可变 3.List和map 相同 都是集合类,都是接口 区别 List存储单列元素,Map存储键值对 Lis
阅读全文
摘要:Java虚拟机内存区域 Java虚拟机所管理的内存由以下五个运行时数据区域组成。 1.程序计数器 可以把程序计数器看作当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选择下一条需要执行的字节码指令。 由于JVM的多线程是通过线程轮流切换并分配处
阅读全文
摘要:线程和进程 "简单入门" 多线程 1.创建多线程 继承Thread类 实现Runnable接口 实现Callable接口(位于concurrent并发包中,重写Call()方法并交给FutureTask类来执行,Call()方法可以有返回值,可以抛异常,get()方法可以拿到返回值,该方法是阻塞的)
阅读全文
摘要:异常处理 1. Java将异常分为两种: Checked异常:在编译阶段被处理的异常(被强制处理) Runtime异常:运行时异常,不需要处理 2. Java的异常机制主要依赖于try,catch,finally,throw,throws五个关键字 try块:try{},花括号不能省略 catch后
阅读全文
摘要:简单了解 java7引入菱形语法的泛型,简化了泛型编程。如: 深入泛型 1. 使用泛型声明类,可以动态生成多个逻辑上的子类,它们在运行时总是同一个类(只有一个class文件)。 2. 类型通配符 3. 泛型方法
阅读全文
摘要:File类 通过File类可以在程序中操作文件和目录,File能新建、删除、重命名文件和目录,但是不能访问文件内容本身。 理解I/O流 1. 流(stream)是从起源(source)到接收(sink)的有序数据。 2. Java的I/O流使用了装饰器模式,将I/O流分成底层节点流和上层处理流。 3
阅读全文
摘要:结构化程序设计和面向对象程序设计的区别 1. 面向过程,以函数为中心 2. 面向对象,以对象为中心 面向对象更接近自然语法。 面向对象的基本特征(缺一不可) 抽象 封装 继承 多态 JavaScript也使用了对象,但是没有继承和多态,其是基于对象。 一切皆对象(除了八个基本数据类型) Java对象
阅读全文
摘要:1. 流程控制结构 顺序结构 分支结构 if分支 switch分支 循环结构 while do while for foreach 嵌套循环 2. 控制语句 break continue 3. 数组类型 数组类型是一种引用类型,数组一旦初始化完成,就确定了其在内存占用的空间,长度不可变。 数组定义
阅读全文
摘要:数据类型 Java数据类型分为基本数据类型和引用类型。基本类型分为数值类型和boolean类型,数值类型又包含整型和浮点型;引用(指针)类型分为类、接口和数组类型、null类型。 Java数据类型转换 1. 基本类型的自动类型转换和强制转换 2. 表达式类型的自动提升 进制转换 1. 二进制 二进制
阅读全文
摘要:Java既是编译型语言,又是解释型语言 java源文件首先需要通过javac编译生成后缀名为.class的字节码文件(与平台无关,只面向JVM),然后使用Java虚拟机将字节码解释成特定平台上的机器码运行。 Java虚拟机JVM 不同平台上的JVM不同,但是都提供了相同的接口。 开发Java准备 1
阅读全文

浙公网安备 33010602011771号