Java基础
傅里叶与拉普拉斯爱搞基
这个作者很懒,什么都没留下…
展开
-
Java 中的ThreadLocal
What is ThreadLocal ?1.ThreadLocal 是一个创建线程局部变量的类2.通常情况下 ,一个对象中创建的变量是可以被任何一个线程访问的,也就是共享变量,ThreadLocal 创建的变量只能被当前线程访问,其他线程无法访问和修改Why is ThreadLocal ?1.ThreadLocal 是为了解决多线程资源共享访问的问题,为了让每个线程中有自己...原创 2019-03-11 22:10:31 · 107 阅读 · 0 评论 -
Java Synchronized锁
一、Synchronized锁的重入(1)当一个线程获得一个对象的锁时,改锁里运行时可以再次请求获取该对象的锁(2)该线程请求其他线程持有的对象锁时,该线程会阻塞住,请求自己持有的对象锁时会请求成功(3)Synchronized锁住的是对象,调用该对象的其他Synchronized修饰的方法或代码块时,是可以获得对象锁的如果已经获取了一个对象的锁,但是锁又无法支持重入,也就是再次请...转载 2019-05-10 00:38:17 · 448 阅读 · 0 评论 -
Java Object对象
Object.getClass()和Object.class区别类名.class叫做“类字面量”,因class是关键字, 所以类名.class编译时确定。而getclass()是某个具体的方法来调用,是运行时根据实际实例确定,getClass()是动态而且是final的HashCode方法Clone方法ToStringnotify/notifyAll,wait...原创 2019-06-14 00:37:45 · 308 阅读 · 0 评论 -
JVM 内存结构介绍整理
Jvm内存模型JVM内存共分为虚拟机、堆、方法区、程序计数器、本地方法栈五个部分。虚拟机栈每个线程都有一个私有的栈,随着线程创建而创建。每个栈空间都存放着栈帧,每个方法都会创建一个栈帧,栈帧主要存放了局部变量列表(局部变量表主要存放了编译器可知的各种数据类型[boolean、byte、char、short、int、float、long、double]、对象引用[reference类...原创 2019-06-14 13:07:57 · 216 阅读 · 0 评论 -
Java中的Volatile关键字
1原创 2019-06-15 13:06:27 · 118 阅读 · 0 评论 -
Java锁机制
Java锁的划分Java锁具体可分为悲观锁/乐观锁、自旋锁/适应性自旋锁、偏向锁、轻量级锁/重量级锁、公平锁和非公平锁、可重入锁/非可重入锁、共享锁/排他锁具体划分如下:乐观锁VS悲观锁特征对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,synchronized关键字和Lock的实现...转载 2019-06-20 12:57:09 · 4599 阅读 · 0 评论 -
Java CAS原理分析
概念CAS:Compare and Swap原创 2019-07-04 13:20:55 · 299 阅读 · 0 评论 -
Java并发之ReentrantReadWriteLock
特征ReentrantLock是独占锁, ReentrantReadWriteLock是读写锁成员和构造器默认是非公平锁,非公平锁在 /** Inner class providing readlock */ private final ReentrantReadWriteLock.ReadLock readerLock; /** Inner class pr...原创 2019-08-29 20:32:41 · 109 阅读 · 0 评论 -
Mybatis中的CDATA标签
CDATA 指的是不应由 XML 解析器进行解析的文本数据,使用改标签主要是防止由于mybatis的xml配置文件解析错误比如在XML中,"<" 解析器会把该字符解释为新元素的开始;"&" 解析器会把该字符解释为字符实体的开始。当配置CDATA时,CDATA 部分中的所有内容都会被解析器忽略,CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结原创 2019-02-19 00:01:47 · 1261 阅读 · 0 评论 -
Java线程异常逃逸与捕获
Java线程内部执行异常会不会Throw?贴个代码更有说服力package com.app.thread;public class OThread implements Runnable { @Override public void run() { System.out.print("Go to run exception !!!\r\n"); ...原创 2019-02-22 11:18:45 · 225 阅读 · 0 评论 -
Java集合概览
【集合架构】 【集合接口】序号 接口描述 1 Collection 接口 Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。 Collection 接口存储一组不唯一,无序的对象。 ...转载 2018-12-09 17:40:37 · 209 阅读 · 0 评论 -
Java8函数式编程示例—(Predicate、Stream、Optional)
Java8函数式编程对提高代码简洁性和操作方便性是有很大作用的,废话少说,贴一个demo,具体其他功能举一反三吧!package com.app.demo.collection;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.L...原创 2018-12-09 18:56:18 · 2776 阅读 · 0 评论 -
Java构造代码块
构造代码块类似于静态代码块,在调用函数构造器的时候插入到构造函数前边 构造器可以做类的初始化赋值,不需要显示调用,可以给构造函数"减负" 内部类的构造函数并不会调用外部的构造代码块package com.app.demo.collection;public class Child extends Father { public Child() { System...原创 2018-12-10 22:10:16 · 81 阅读 · 0 评论 -
Java集合02_LinkedList
1.LinkedList于Collection的关系 2.LinkedList的本质实现是链表 private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> pre...原创 2019-01-03 22:51:25 · 72 阅读 · 0 评论 -
Java集合03_Vector
Vector有点类似ArrayList,本质实现还是数组,不多说,但是Vector最终要的一点是他是线程安全的,Vector的操作都携带了synchronized关键字 public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1);...原创 2019-01-03 23:08:30 · 90 阅读 · 0 评论 -
Java集合01_ArrayList
ArrayList 本质实现是数组,对于数组而言频繁的访问效率比频繁的插入/删除效率更高,插入和删除会导致其他元素移动,当add时超出自己容量时会进行1.5倍扩容 ArrayList的clone最终是靠System.arraycopy实现的,System.arraycopy是浅拷贝,且不是线程安全的 //ArrayList的clone方法,最终调用的System.arrayco...原创 2019-01-02 22:11:43 · 104 阅读 · 0 评论 -
Java集合04_HashSet和LinkedHashSet
1.HashSet本质是用HashMap来存储数据的,HashMap不是线程安全的,所以HashSet也不是线程安全的 public HashSet(int initialCapacity, float loadFactor) { map = new HashMap<>(initialCapacity, loadFactor); } 2.Hash...原创 2019-01-14 22:56:53 · 142 阅读 · 0 评论 -
Java 类的加载机制
生命周期Java类在虚拟机中的生命周期包括以下几个阶段:加载、验证、准备、解析、初始化、使用和卸载七个阶段,前五个阶段都可以归纳为验证、准备、解析阶段可归纳为链接阶段加载这个阶段的JVM主要工作是从网络或者 磁盘中读取Java字节码并且转化成二进制流加载到内存中(方法区内),接着会在方法区创建对应的class对象,该class对象是该类的各个数据的访问入口 。Java字节码的存储...原创 2019-08-30 10:41:30 · 874 阅读 · 0 评论