随笔分类 -  Java基础

摘要:先复习Java中的异常 java.lang.Throwable 顶层父类 |– Error错误:JVM内部的严重问题,如OOM,程序员无法在代码中无法处理。 |–Exception异常:普通的问题。通过合理的处理,程序还可以回到正常执行流程。要求程序员要进行处理。 |–RuntimeExceptio 阅读全文
posted @ 2019-06-16 22:23 杨岂 阅读(1815) 评论(0) 推荐(0)
摘要:前言 进程:进程是操作系统资源分配的最小单位 进程有自己的虚拟地址空间,这个空间包括了各种资源,例如堆、栈,各种段,它们其实都是虚拟地址空间的一块区域。所以说进程是资源分配的最小单位。 线程:线程是操作系统任务调度和执行的最小单位。 线程包含在进程之中,是进程中实际运作单位 协程:协程运行在线程之上 阅读全文
posted @ 2019-06-14 18:00 杨岂 阅读(3430) 评论(0) 推荐(1)
摘要:Lock Lock是顶层接口,它的实现逻辑并未用到synchronized,而是利用了volatile的可见性。 public interface Lock { /** * Acquires the lock.获取锁 * 如果锁不可用,则当前线程将被禁用以用于线程调度,并处于休眠状态,直到获得锁为止 阅读全文
posted @ 2019-06-13 23:31 杨岂 阅读(728) 评论(0) 推荐(0)
摘要:一、 线程不安全验证: /** * SimpleDateFormat线程安全测试 * 〈功能详细描述〉 * * @author 17090889 * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */ public class SimpleDateFormatT 阅读全文
posted @ 2019-06-13 16:34 杨岂 阅读(38244) 评论(0) 推荐(6)
摘要:1、Lambda 表达式 Lambda表达式,也可称为闭包 Lamdba允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 ambda 表达式的语法格式如下: (parameters) -> expression 接收的参数->元素表达式 或 (parameters) ->{ stateme 阅读全文
posted @ 2019-06-01 15:58 杨岂 阅读(302) 评论(0) 推荐(0)
摘要:Lock与Synchronized: 1、Synchronized无法判断是否获取锁的状态,Lock可以判断是否获取锁2、Lock中的某些锁允许对共享资源的并发访问,如ReadWriteLock读写锁,readLock()获取读锁,writeLock()获取写锁,读锁可以被多个线程获取,写锁只能有一 阅读全文
posted @ 2019-04-11 18:27 杨岂 阅读(155) 评论(0) 推荐(0)
摘要:concurrent包下的类都有下面的实现模式1、首先,声明变量为volatile2、然后,使用CAS的原子条件更新来实现线程之间的同步3、配合使用volatile的写可见性和CAS的原子性来实现线程之间的通信(线程安全) 最近在看 java.util.concurrent.atomic 包下的At 阅读全文
posted @ 2019-04-04 11:59 杨岂 阅读(233) 评论(0) 推荐(0)
摘要:可重入锁,持有锁的线程可以进入任何锁所同步的代码块 不可重入锁: public class Lock { private boolean isLock = false; /** * 同步方法 */ public synchronized void lock() throws InterruptedE 阅读全文
posted @ 2019-03-28 14:52 杨岂 阅读(275) 评论(0) 推荐(0)
摘要:一、前言 如果每个线程在创建的时候都有个初始值,如每个线程都分配一个线程号;针对每个请求线程需要包含请求的参数等一些信息,所以可以构造这样一个对象,将这个对象设置为共享 变量,统一设置初始值,但是每个线程对这个值的修改都是相互独立的。这个对象就是ThreadLocal,可以理解为:CopyValue 阅读全文
posted @ 2019-03-21 21:02 杨岂 阅读(943) 评论(0) 推荐(0)
摘要:自定义注解往往能够简化开发,当我们需要对某些类或者方法增加某些功能或者进行某些处理时,可以使用自定义注解做标注,减少代码侵入,实现低耦合。在自定义注解处理器中利用反射来完成想要的功能。 自定义注解一般需要根据实际使用定义一些成员变量(属性)。 注解解释: 自定义注解例子: 需求:在导出功能中,对一些 阅读全文
posted @ 2019-03-21 11:36 杨岂 阅读(242) 评论(0) 推荐(0)
摘要:Synchronized(实例锁)和 static Synchronized(类锁)区别 实例锁:锁在某个对象上,如果该类是单例的,那么该锁也有全局锁的概念 类锁:该锁针对的类,无论实例多少个对象,那么线程都共享该锁。 Java的锁分为对象锁和类锁。 1. 当两个并发线程访问同一个对象object中 阅读全文
posted @ 2017-09-13 21:18 杨岂 阅读(530) 评论(0) 推荐(0)
摘要:支持获取的完全并发和更新的所期望可调整并发的哈希表。此类遵守与 Hashtable 相同的功能规范,并且包括对应于 Hashtable 的每个方法的方法版本。不过,尽管所有操作都是线程安全的,但获取操作不 必锁定,并且不 支持以某种防止所有访问的方式锁定整个表。此类可以通过程序完全与 Hashtab 阅读全文
posted @ 2017-09-13 09:26 杨岂 阅读(372) 评论(1) 推荐(0)