随笔分类 - Java基础知识
摘要:学习地址:https://blog.csdn.net/sw5131899/article/details/54947192 java注解使用是相当频繁,特别是在搭建一些框架时,用到类的反射获取方法和属性,用的尤其多。 java中元注解有四个: @Retention @Target @Document
阅读全文
摘要:学习地址:https://blog.csdn.net/weixin_40964170/article/details/118794199 Servlet(Server Applet)是什么? Servlet可以通过多种方式进行描述,具体取决于上下文: Servlet 是一种用于创建Web应用程序的技
阅读全文
摘要:CAS原理解析 1、CAS基本概念 CAS(Compare And Swap)也叫做比较与交换,是一种无锁原子算法,映射到操作系统就是一条cmpxchg硬件汇编指令,通过硬件命令保证了原子性。其作用是让CPU将内存值更新为新值,但是有个条件,内存值必须与期望值相同。CAS操作无需用户态和内核态切换,
阅读全文
摘要:Java中的锁 java中的锁主要用于保障线程在多并发情况下数据的一致性,即多次执行过程中,线程的执行顺序都不相同,但最终的结果始终相同。 通常在使用对象或者调用方法之前加锁,这时如果有其他线程也需要使用该对象或者该方法,则首先要获得锁,如果某个线程发现锁已经被其它线程使用,就会进入锁池(Lock
阅读全文
摘要:学习地址:红黑树(一)之 原理和算法详细介绍 - 如果天空不死 - 博客园 (cnblogs.com) 红黑树(Red-Black Tree) 红黑树(Red Black Tree)是一种自平衡二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红或黑。在进行插入和删操作时通过特定操作保持
阅读全文
摘要:Java源码解读(三)— HashMap深入理解之增删查改 学习地址:[HashMap深入理解之增删查改]: https://blog.csdn.net/dongmuyang/article/details/98751508 本文为Java 8源码解读,已有红黑树。 主要成员变量 // 存储键值对的
阅读全文
摘要:1、HashMap简介 HashMap是在JDK1.2引入的Map的实现类 HashMap核心是散列表(Hash table,也叫哈希表) 散列表是根据关键码值(Key value)而直接进行访问的数据结构 整体框架:HashMap是基于哈希表实现的,底层是基于 数组+链表 组成的,每个元素是一个键
阅读全文
摘要:四个构造方法 HashMap():构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。 HashMap(int initialCapacity):构造一个空的 HashMap,具有指定的初始容量和默认负载因子(0.75)。 HashMap(int initialCapac
阅读全文
摘要:Java 线程的 5 种状态 线程状态图: 线程共包含以下五种状态: 1、新建状态(New):线程对象被创建后,就进入了新建状态,例如,Thread thread = new Thread(); 2、就绪状态(Runnable):也称之为“可执行”状态。线程对象被创建后,其它线程调用该对象的star
阅读全文
摘要:异常的产生与如何处理异常 产生过程(示例) 处理过程 JVM在程序执行过程中检测出程序会发生异常 (1)首先,JVM根据异常产生的原因创建一个异常对象,这个异常对象包含异常产生的内容、原因和位置; (2)然后,若当前方法中没有异常处理逻辑(try...catch),那么JVM就会把异常对象抛出给方法
阅读全文
摘要:一、static关键字的用途 static可以用来修饰类的成员方法、类的成员变量,也可以编写static代码块来优化程序性能。 注意: 1、被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问 2、禁止在静态成员方法中访问非静态成员方法,但非静态
阅读全文
摘要:
阅读全文
摘要:java 关于锁的基础知识 1、synchronized作用于静态方法和非静态方法的区别 非静态方法:给对象加锁(可以理解为给这个对象的内存上锁,注意:只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥 静态方法: 相当于
阅读全文
摘要:Java的八种基本数据类型 序号 数据类型 字节数 默认值 取值范围 示例 1 byte (位) 1 0 -27 ~ 27-1 byte b = 10; 2 short (短整数) 2 0 -215 ~ 215-1 short s = 10; 3 int (整数) 4 0 -231 ~ 231-1
阅读全文
摘要:学习地址:https://mp.weixin.qq.com/s/JD298UZ-1q8YuV5ft3RDWA 1、对象的实例化过程:类的加载与初始化 + 对象的初始化 对象的实例化过程是分成两部分:类的加载与初始化 以及 对象的初始化 一个子类要初始化需要先初始化父类 要创建类的对象实例需要先加载并
阅读全文
摘要:学习地址:https://www.cnblogs.com/zupengliu/p/10802535.html 接口 jdk8之前 interface(接口)中可以定义 变量 和 方法,变量必须是public、static、final的**(公共静态常量),方法必须是public、abstract的(
阅读全文
摘要:原文地址:http://www.cnblogs.com/waterystone/p/4920797.html AQS、抽象的队列式的同步器 AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用ReentrantLock/Semaphore/CountDownLatch 整
阅读全文
摘要:通过Executors类提供的方法 1、newCachedThreadPool:创建一个可缓存的线程池,若线程数超过处理所需,缓存一段时间后会回收,若线程数不够,则新建线程 2、newFixedThreadPool:创建一个固定大小的线程池,可控制并发的线程数,超出的线程会在队列中等待 3、newS
阅读全文
摘要:作用:让 调用线程 等待 被调用线程 结束之后,调用进程 才能继续运行 当在线程A中调用某个线程的join()方法时,这个方法会挂起调用线程A,直到被调用线程结束执行,调用线程A才会继续执行 英文翻译:当我们调用某个线程的这个方法时,这个方法会挂起调用线程,直到被调用线程结束执行,调用线程才会继续执
阅读全文
摘要:原因:因为Mark Word中使用4个bit记录对象的年龄,最大就是15 相关知识 Java对象存储在堆(Heap)内存中,一个Java对象包含 对象头、对象体和对齐字节; 对象的几个部分的作用: 1、对象头中的Mark Word(标记字)主要用来表示对象的 线程锁状态,还可以用来存放该对象的has
阅读全文