摘要:
一、反射原理 通过一个路径,Java反射机制(类的加载器)自动创建一个对象 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 二、获取类的三 阅读全文
摘要:
知识总结 同步锁 多个线程想保证线程安全,必须要使用同一个锁对象> 同步锁 同步代码块> 同步锁 synchronized (锁对象){ 可能产生线程安全问题的代码 } 同步代码块的锁对象可以是任意的对象 同步方法 public synchronized void method() 可能产生线程安全 阅读全文
摘要:
一、死锁 同步锁使用的弊端:当线程任务中出现了多个同步(多个锁)时,如果同步中嵌套了其他的同步。这时容易引发一种现象:程序出现无限等待,这种现象我们称为死锁。 public class DeadLockTest { public static void main(String[] args) { D 阅读全文
摘要:
线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。 方式一:使用Runnable接口 /** * 例子:创建三个窗口买票,总票数为10 阅读全文
摘要:
一、对象池、线程池、常量池、数据库中的池子 池的概念: 池是用来约束的,不让程序无节制地创建对象;造成资源浪费 池的底层是用集合来存储的,对于不经常用的,gc会进行回收 二、线程池(通过线程池,实现Callable接口) 为了不无节制地创建对象,使用线程池 三、使用线程池方式--Runnable接口 阅读全文
摘要:
一、多线程 原理: 一个cpu内核有”一个指针“,由于cpu的频率过高,所以感觉不到卡顿。(伪线程) 二、进程&线程 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程:线程是进程中的一个执行单元,负责当前进程中程 阅读全文
摘要:
瞬态关键字transient 当一个类的对象需要被序列化时,某些属性不需要被序列化,这时不需要序列化的属性可以使用关键字transient修饰。只要被transient修饰了,序列化时这个属性就不会被序列化了。 同时静态修饰也不会被序列化,因为序列化是把对象数据进行持久化存储,而静态的属于类加载时的 阅读全文
摘要:
一、序列化&反序列化 概念: 序列化:把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程。 序列化接口 1. 当一个对象要能被序列化,这个对象所属的类必须实现Serializable接口。否则会发生异常NotSerializableException异常。 2. 同时 阅读全文
摘要:
一、Properties类 特点: 1. Hashtable的子类,map集合中的方法都可以用。 2. 该集合没有泛型。键值都是字符串。 3. 它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。 4. 有和流技术相结合的 阅读全文
摘要:
一、IO流的操作规律 IO流进行了规律的总结(四个明确): 明确一:要操作的数据是数据源还是数据目的。 源:InputStream Reader 目的:OutputStream Writer 先根据需求明确要读,还是要写。 明确二:要操作的数据是字节还是文本呢? 源: 字节:InputStream 阅读全文
摘要:
一、缓冲流 高效流,一般指默认声明了一个byte空间(容器)作为缓冲区,比我们一般申请的空间64k大;所以较为高效。 若我们要使FileInputStream流高效,把空间申请得最大即可实现。 二、字节缓冲流 2.1 字节缓冲输出流BufferedOutputStream public class 阅读全文