天才小站

与广大爱好者共同进步

如何理解算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)等?

这里提供一点直观的视角: 先从 O(1) 来说,理论上哈希表就是O(1)。因为哈希表是通过哈希函数来映射的,所以拿到一个关键字,用哈希函数转换一下,就可以直接从表中取出对应的值。和现存数据有多少毫无关系,故而每次执行该操作只需要恒定的时间(当然,实际操作中存在冲突和冲突解决的机制,不能保证每次取...

2019-03-13 17:08:50

阅读数 66

评论数 0

Springboot项目中普通类直接调用注解类bean

写一个工具类,并托管。 import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.cont...

2019-03-13 16:09:17

阅读数 91

评论数 0

java并发编程:AQS

目录 简介 CLH同步队列 入列 出列 同步状态的获取与释放 独占式 独占式同步状态获取 独占式获取响应中断 独占式超时获取 独占式同步状态释放 共享式 共享式同步状态获取 共享式同步状态释放 阻塞和唤醒线程 简介 java的内置锁一直都是备受争议的,在JDK ...

2019-03-11 16:19:29

阅读数 23

评论数 0

java并发编程:可重入锁是什么?

释义 广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。ReentrantLock和synchronized都是可重入锁,下面是一个用synchronized实现的例子: public...

2019-03-11 15:24:50

阅读数 33

评论数 0

java并发编程:CAS

目录 CAS分析 CAS缺陷 循环时间太长 只能保证一个共享变量原子操作 ABA问题 CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以...

2019-02-01 17:52:26

阅读数 62

评论数 0

java并发编程:基于JMM分析DCL

目录 问题分析 解决方案 基于volatile解决方案 基于类初始化的解决方案 DCL,即Double Check Lock,中卫双重检查锁定。 问题分析 我们先看单例模式里面的懒汉式:   public class Singleton { private static ...

2019-02-01 17:31:06

阅读数 42

评论数 0

java并发编程:JMM内存模型及volatile关键字内存语义

目录   Java内存区域划分(数据区域) 方法区(Method Area): JVM堆(Java Heap): 程序计数器(Program Counter Register): 虚拟机栈(Java Virtual Machine Stacks): 本地方法栈(Native Meth...

2019-02-01 16:43:13

阅读数 61

评论数 0

java并发编程:synchronized

目录   synchronized三种应用方式 synchronized作用于实例方法 当前锁?: 解决的问题: 存在的问题: synchronized作用于静态方法 synchronized同步代码块 synchronized底层语义原理 理解Java对象头与Monitor ...

2019-01-19 13:47:45

阅读数 67

评论数 0

java并发编程:原子变量

当几个线程都不能访问某个数据(通常是某个变量)时,你必须同步数据的访问以确保变量的可见性和正确性。举个例子,如果你有如下一个简单的计数器: public class Counter { private int value; public int getValue(){ ...

2018-09-29 15:48:05

阅读数 54

评论数 0

java并发编程:ExecutorService详解

接口 java.util.concurrent.ExecutorService 表述了异步执行的机制,并且可以让任务在后台执行。一个 ExecutorService 实例因此特别像一个线程池。事实上,在 java.util.concurrent 包中的 ExecutorService 的实现就是一...

2018-09-29 15:37:50

阅读数 111

评论数 0

一款好用的json解析工具,JsonPath。

1. 介绍 包: com.jayway.jsonpath.JsonPath; pom: <dependency>             <groupId>com.jayway.jsonpath&a...

2018-09-29 11:02:13

阅读数 1406

评论数 0

java并发编程:ThreadLocal

概述 相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的...

2018-03-22 16:24:59

阅读数 94

评论数 0

java关键字

一、 关键字总览:访问控制privateprotectedpublic      类,方法和变量修饰符abstractclassextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvolatile  ...

2018-03-13 16:09:24

阅读数 55

评论数 0

CentOS7安装MySQL问题解决方案

问题1:[root@localhost install-files]# rpm -ivh MySQL-server-5.6.27-1.el6.x86_64.rpmPreparing...                          ##############################...

2018-03-09 13:39:37

阅读数 132

评论数 0

Spring Boot视频

1. Spring Boot  项目实战 ----- 技术栈博客企业前后端链接:https://pan.baidu.com/s/1hueViq4 密码:4ma82.Spring Boot  项目实战 -----传智播客Spring Boot视频教程附代码笔记资料链接:https://pan.bai...

2018-03-05 16:50:03

阅读数 533

评论数 0

《深入理解 Java 内存模型》 整理

基础并发编程的模型分类在并发编程需要处理的两个关键问题是:线程之间如何通信 和 线程之间如何同步。通信通信 是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存 和 消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐...

2018-03-02 10:53:40

阅读数 8345

评论数 0

IDEA里Maven依赖无法下载的解决办法

1.确认pom.xml中的远程仓库或者nexus私服配置正确有些项目的pom.xml会配置nexus私服,用于下载一些局域网依赖或者其他公开私服的依赖,请确认这里配置正确。(没有使用远程仓库或本地nexus私服的请跳至下一步~)当前也可以改为使用一些国内比较好用的仓库镜像配置,如阿里云,从而加快包...

2018-03-01 09:36:04

阅读数 30195

评论数 19

java并发编程:synchronized与static synchronized 的区别

1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么static synchroniz...

2018-02-07 11:25:31

阅读数 66

评论数 0

java并发编程:根据线程名获取线程及停止线程

    根据线程名获取线程及停止进程     线程的命名与获取名称方法   设置名称可以使用Thread类的如下方法: *构造方法:public Thread (Runnable Target,String name) *设置名字:public final void setNa...

2018-02-01 14:30:52

阅读数 3888

评论数 0

java并发编程:正确停止一个线程

停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。 在java中有以下3种方法可以终止正在运行的线程: 使用退出标志,...

2018-02-01 14:12:00

阅读数 1083

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭