java
文章平均质量分 95
求知者2233
这个作者很懒,什么都没留下…
展开
-
Java知识总结(六)
Java多线程并发什么是线程和进程进程是程序执行的一次过程,即进程从创建到运行再到消亡的过程。是系统进行资源分配的独立单位进程之间是相互独立的,因此很难进行进程间的通信。线程是比进程更小的执行单位,通常一个进程可以包含多个进程。是进行资源调度和保护的基本单位进程拥有独立的内存单元,线程拥有自己独立的程序计数器、虚拟机栈、本地方法栈,多个线程之间共享进程的堆和方法区。多线程多线程是多个线程的集合。一个程序(进程)中同时执行一个以上的线程,一个线程不必等待另一个线程执行完毕之后才执行,所有原创 2021-08-25 14:17:12 · 90 阅读 · 0 评论 -
Java知识总结(一)
JAVA知识总结面向对象和面向过程的区别面向过程:优点:直观上来说面向对象生成对象实例过程消耗的资源较大。从根本上来说面向过程语言大多数是直接编译成机械码在计算机中运行,而面向对象语言(Java)是半编译语言,通过编译器将源文件编译成JVM可识别的字节码文件,通过解释器将字节码文件解释成计算机可以识别的机械码文件。缺点:相比面向对象语言,它不利于维护、复用以及扩展。面向对象:优先:面向对象语言能够实现代码易维护、易复用以及易扩展的特点,具有封装、继承、多态等特性,设计出低耦合系统、是系统更加原创 2021-08-21 19:11:44 · 172 阅读 · 0 评论 -
Java知识总结(二)
附上后续,后续持续更新Java反射特点:动态语言在程序运行期间可以改变其结构,引入新的函数,也可以改变已有函数结构。例如:JavaScript从反射角度来看:java属于半动态语言。c++、c不是动态语言。反射机制概念(运行状态中知道类的所有属性和方法)在java的反射机制中处于运行状态时,对于任意一个类都能够知道它所有的属性和方法,并且对于任意一个对象,都能够调用它的任意一个方法。动态获取信息以及动态调用对象方法的功能。本质上:从字节码中查找,动态获取类的结构,包括属性、构造器、动态调用对原创 2021-08-21 19:15:55 · 287 阅读 · 0 评论 -
Java知识总结(三)
Java集合集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口先来说说Collection接口中的集合List(对付顺序的好帮手)Java 的 List 是非常常用的数据类型。List 是有序的 Collection。Java List原创 2021-08-21 19:29:58 · 242 阅读 · 0 评论 -
Java知识总结(四)
JVM基本概念运行java字节码文件的虚拟进程(假象计算机)。它运行在操作系统之上,与硬件没有直接的交互。组成:垃圾回收,栈,堆,方法域,寄存器,一套字节码指令集。运行的过程:java语言是半编译语言,因为java的源文件通过编译器(javac)编译成字节码文件(.class),通过JVM的解释器将字节码文件解释成对应平台的机器码。Java 源文件—->编译器—->字节码文件字节码文件—->JVM—->机器码java语言也是跨平台语言,跨平台语言指的是字节码文件原创 2021-08-22 15:31:37 · 183 阅读 · 0 评论 -
Java知识总结(五)
JAVA BIO/NIO同步发起一个请求或任务,被调用者在未完成请求或任务前,不会返回结果。需要一直等待该请求返回或任务完成反馈的结果,在这期间不能够去做其他的事情。比如:你打电话给书店老板询问书籍,老板帮你去找书,你需要一直等待,等待书店老板给你回复。异步发起一个请求或任务之后,被调用者会理刻返回表示已经接受请求或任务,但是并没有返回结果,就接着去做别的事情,发出的请求或任务完成时,被调用者会返回结果。比如:你打电话给书店老板询问书籍,你让他查到了再打电话给你,然后你挂断电话,期间你可以干其原创 2021-08-22 15:34:14 · 236 阅读 · 0 评论 -
Java知识总结(七)
Java锁不可不说的Java“锁”事 - 美团技术团队 (meituan.com)乐观锁对同一数据进行并发操作,乐观锁在进行操作数据时总是乐观认为不会有别的线程修改数据,因此它不会对资源加锁。当自己在进行数据修改之前它会先进行判断有没有其他线程修改了数据,如果数据没有修改,就写入数据。如果数据被修改了,则根据不同的实现方式执行不同的操作(例如报错或者自动重试)。java中乐观锁基本上通过**CAS(Compare And Swap(比较与交换),是一种无锁算法)**操作实现的,,CAS 是一种更新原创 2021-08-25 14:21:44 · 144 阅读 · 0 评论 -
Java知识总结(八)
Synchronized同步锁同步锁可以将任意一个不为null的对象当作锁。它属于独占式的悲观锁,同时属于可重入锁、非公平锁作用范围(9条消息) Java中synchronized同步锁用法及作用范围_在梅边的专栏-CSDN博客_java 同步锁java中的对象锁和类锁:对象锁作用于:对象实例方法或者对象实例上。类锁作用于:类的静态方法和类对应的Class对象。一个类可以对应多个对象实列,一个对象拥有一个对象锁,多个对象对应多把锁,因此各个对象实例之间的对象锁互不干扰。每个类只有一个,对应一原创 2021-08-25 14:23:33 · 102 阅读 · 0 评论 -
Java知识总结(九)
Semaphore(信号量)一种基于计数的信号量,可以控制同时访问的线程个数。可以设定阈值,在阈值规定的范围内 同一时间多个线程可以获取信号量来完成自己的工作,用完后归还,若线程的数量超过了阈值,其他没有获取信号量的线程等待。信号量可以用来实现对象池、资源池。比如:数据库连接池。实现代码// 创建一个计数阈值为 5 的信号量对象// 只能 5 个线程同时访问Semaphore semp = new Semaphore(5);try { // 申请许可 semp.acquire(原创 2021-08-25 14:31:22 · 102 阅读 · 0 评论 -
Java知识总结(十)
线程池你要的线程池来了,还带有10道面试题和答案 (markdowner.net)将一个或多个线程使用统一的方式进行调度和管理的技术,减少线程的创建和销毁所带来的开销。线程池的作用(为什么要使用线程池)降低资源消耗:线程的创建和销毁都需要消耗资源,通过重复利用线程减少这方面消耗。提高响应速度:当请求任务到达时,通常工作线程已经存在,不需要等待线程创建,直接执行。提高线程的可管理:使用线程池统一对线程进行调度管理线程池的创建在JDK包下的JUC(java.util.concurrent)创原创 2021-08-25 14:35:18 · 153 阅读 · 0 评论 -
Java知识总结(十一)
volatile关键字在了解volatile的特性之前,先要补充一点内存方面的知识。Java并发编程:volatile关键字解析 - Matrix海子 - 博客园 (cnblogs.com)内存模型计算机在运行程序时,执行的是一条条的指令,而指令是在cpu上执行的,这个过程势必有数据的读写过程。程序中运行的临时数据都存放在**主存(物理内存)**中,这时候就存在一个问题,cpu的执行速度是很快的,而从主存中读数据和写数据的速度肯定是远远低于cpu执行的速度,cpu需要等主存的数据, 这样就会导致执行原创 2021-08-25 14:42:18 · 110 阅读 · 0 评论 -
Java知识总结(十二)
ThreadLocalJava中的ThreadLocal详解 - 夏末秋涼 - 博客园 (cnblogs.com)多线程在访问一个共享变量时,若该变量不做任何处理可能导致数据不一致,出现线程不安全问题。一般通过加锁(volatile关键字主要是修饰共享变量,保证变量可见性和有序性)来保证线程安全。ThreadLocal是通过另一种方式来保证线程的安全性,不过不是通过同步数据,而是将变量拷贝给每一个调用该变量的线程,把变量存储在线程的内部,因此每个线程之间的变量的数据是独立的,每次调用的都是自己的那一份原创 2021-08-25 14:43:59 · 62 阅读 · 0 评论 -
Java知识总结(十三)
CAS(compare and swap/set)CAS原理解析 CAS底层 - YoungDeng - 博客园 (cnblogs.com)CAS:比较 和 交换。判断内存中某个位置的值是否和预期值相符(比较),如果相符将对应内存中的值更新为新的值(交换/设置),整个过程是原子性的。CAS的原语体现在java中的sun.misc.Unsafe类的各个方法。Unsafe类中的CAS方法,JVM帮助我们实现CAS的汇编语言,这个过程是依赖于硬件的功能,通过它实现了原子操作。CAS是一种系统源语,属于操作系原创 2021-08-25 14:47:13 · 82 阅读 · 0 评论 -
Java知识总结(十四)
AQS(抽象的队列同步器)Java并发之AQS详解 - waterystone - 博客园 (cnblogs.com)从ReentrantLock的实现看AQS的原理及应用 - 美团技术团队 (meituan.com)AQS(Abstract Queued Synchronizer)抽象式队列同步器,是一套多线程访问共享资源的同步框架。许多同步类都是基于它实现同步、线程安全。例如:ReentrantLock/Semaphore/CountDownLatchAQS原理框架AQS核心思想:如果被原创 2021-08-25 14:50:57 · 180 阅读 · 0 评论