08 2019 档案

摘要:本文摘自网上,仅作学习使用! 用一web应用集群,负载均衡部署实现: 在上图可以看到,变量A在JVM1、JVM2、JVM3三个JVM内存中(这个变量A主要体现是在一个类中的一个成员变量,是一个有状态的对象),如果我们不加任何控制的话,变量A同进都会在JVM分配一块内存,三个请求发过来同时对这个变量进 阅读全文
posted @ 2019-08-27 09:06 北方有鱼 编辑
摘要:原文摘自: https://www.eyesmoons.com/article/75 1,原始构成 synchronized是关键字,属于JVM层面,通过wait,notify和notifyAll来调度线程。 Lock是具体类,是api层面的锁。 2,使用方法 synchronized不需要用户手动 阅读全文
posted @ 2019-08-17 12:48 北方有鱼 编辑
摘要:什么是CAP理论? 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后麻省理工学院的Seth Gilbert和NancyLynch从理论上证明了CAP,之后CAP理论正式成为分布式计算领域的公认定理。 CAP是一个已经经过证实的理论:一个分布 阅读全文
posted @ 2019-08-16 13:38 北方有鱼 编辑
摘要:在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。 行级锁 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁 和  阅读全文
posted @ 2019-08-16 08:39 北方有鱼 编辑
摘要:在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。 锁分类 ①、按操作划分:DML锁,DDL锁 ②、按锁的粒度划分:表级锁、行级锁、页级锁 ③、按锁级别划分:共享锁、排他锁 ④、按加锁 阅读全文
posted @ 2019-08-16 08:18 北方有鱼 编辑
摘要:说明: 本文知识网摘,仅限自己加深学习,原文出处点击 一、准备 1、了解http请求及特点 2、了解cookie和session 3、了解用户登录和注销流程 二、单机用户登录流程 总体流程图实现: 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http 阅读全文
posted @ 2019-08-15 08:49 北方有鱼 编辑
摘要:1、fail-fast 我们通常说的Java中的fail-fast机制,默认指的是Java集合的一种错误检测机制。当多个线程对部分集合进行结构上的改变的操作时,有可能会产生fail-fast机制,这个时候就会抛出ConcurrentModificationException(后文用CMExcepti 阅读全文
posted @ 2019-08-14 16:36 北方有鱼 编辑
摘要:1、“锁” 的生活实例 比如,你今天要去银行办业务,你到了银行之后,要先取一个号,然后你坐在休息区等待叫号,过段时间,广播叫到你的号码之后,会告诉你去哪个柜台办理业务,这时,你拿着你手里的号码,去到对应的柜台,找相应的柜员开始办理业务。当你办理业务的时候,这个柜台和柜台后面的柜员只能为你自己服务。当 阅读全文
posted @ 2019-08-14 15:40 北方有鱼 编辑
摘要:并发编程,为了保证数据的安全,需要满足以下三个特性: 原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。 可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 有序性即程序执行的顺序按照代码的先后顺序 阅读全文
posted @ 2019-08-14 13:58 北方有鱼 编辑
摘要:1、JVM内存模型 总结:可以发现最明显的一个变化是元空间从虚拟机转移到了本地内存。默认情况下,元数据空间大小仅受限于本地内存, 这意味着以后不会因为永久代大小不够而抛出OOM异常了。 jdk1.8以前,HotSpot VM将class和类的jar包数据存储在PermGen里, PermGen大小是 阅读全文
posted @ 2019-08-13 15:53 北方有鱼 编辑
摘要:原文转自: https://blog.csdn.net/Strong997/article/details/80033787 1、GC 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中 阅读全文
posted @ 2019-08-13 15:47 北方有鱼 编辑
摘要:1. 一段java程序是如何运行起来的呢? Java源文件,通过编译器,产生.Class字节码文件,字节码文件通过Java虚拟机中的解释器,编译成特定及其上的机器码,那Java虚拟机又是怎样加载java程序并执行起来的呢?简单来说:通过类加载器加载字节码文件,被分配到JVM的运行时数据区的字节码会被 阅读全文
posted @ 2019-08-13 14:32 北方有鱼 编辑
摘要:本文转自:https://www.jianshu.com/p/d2d806ca7859 1.对象的创建 虚拟机接收到new指令时,检查这个指令能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化。如果都没有,先执行类加载过程。 在类加载通过后,虚拟机为新对象分 阅读全文
posted @ 2019-08-13 13:00 北方有鱼 编辑
摘要:1、什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 2、jvm 运行时数据区域 堆和方法区是所有线程共有的。 虚拟机栈,本地方法栈和程序计数器则 阅读全文
posted @ 2019-08-13 12:56 北方有鱼 编辑
摘要:简介: LevelDB是一个基于本地文件的存储引擎,非分布式存储引擎,原理基于BigTable(LSM文件树),无索引机制,存储条目为Key-value。适用于保存数据缓存、日志存储、高速缓存等应用,主要是避免RPC请求带来的延迟问题。在存取模型上,顺序读取性能极高,但是对于随机读取的情况延迟较大( 阅读全文
posted @ 2019-08-07 08:46 北方有鱼 编辑
摘要:具体步骤如下 1、pom.xml添加jar包: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.4</version> </dependenc 阅读全文
posted @ 2019-08-05 14:52 北方有鱼 编辑
摘要:简述:XXL-JOB是一个轻量级分布式任务调度平台,分布式任务调度中心。 GitHub: https://github.com/xuxueli/xxl-job/ 1.1 源码目录介绍 1.2 “调度数据库”配置 XXL-JOB调度模块基于自研调度组件并支持集群部署,调度数据库表说明如下: 1.3 架 阅读全文
posted @ 2019-08-01 19:16 北方有鱼 编辑
摘要:HSSFWorkbook workbook = new HSSFWorkbook(); //创建工作簿 HSSFSheet sheet = workbook.createSheet(“Test”); //创建SHEET页 HSSFRow row = sheet.createRow(0); //创建行 阅读全文
posted @ 2019-08-01 18:47 北方有鱼 编辑
摘要:注:hashtable:使用一把锁处理并发问题,当有多个线程访问时,需要多个线程竞争一把锁,导致阻塞。 concurrentHashMap则使用分段,相当于把一个hashmap分成多个,然后每个部分分配一把锁,这样就可以支持多线程访问。 1、HashMap与hashtable继承关系图: 2、has 阅读全文
posted @ 2019-08-01 14:15 北方有鱼 编辑

点击右上角即可分享
微信分享提示