随笔 - 330,  文章 - 1,  评论 - 0,  阅读 - 8873
09 2019 档案
互联网大厂面经分享
摘要:互联网大厂面经分享(牛客网) 传送门:https://www.nowcoder.com/interview/center 阅读全文
posted @ 2019-09-29 11:05 vow007 阅读(3) 评论(0) 推荐(0) 编辑
hash索引详解
摘要:hash索引的弊端 hash索引必须进行二次查找hash索引无法用于排序hash索引不支持部分索引查找也不支持范围查找hash索引中hash码的计算可能存在hash冲突 阅读全文
posted @ 2019-09-27 22:35 vow007 阅读(2) 评论(0) 推荐(0) 编辑
Bean的作用范围的配置(重点)
摘要:​​Bean的作用范围的配置 scope 属性 :Bean的作用范围 singleton :默认的,Spring会采用单例模式创建这个对象。prototype :多例模式。(Struts2和Spring整合一定会用到)request :web项目中,Spring创建这个类以后,将这个类存入到requ 阅读全文
posted @ 2019-09-26 21:54 vow007 阅读(4) 评论(0) 推荐(0) 编辑
解决哈希冲突的方法
摘要:在哈希表中,哈希冲突是指不同的键值经过哈希函数计算后得到相同的哈希值。解决哈希冲突是保证哈希表性能的关键。本文将介绍几种常见的解决哈希冲突的方法,包括开放寻址法、链地址法和再哈希法。 1. 开放寻址法 开放寻址法是一种解决哈希冲突的方法,它将冲突的键值对直接存储在哈希表中的其他位置。当发生冲突时,通 阅读全文
posted @ 2019-09-21 11:24 vow007 阅读(45) 评论(0) 推荐(0) 编辑
京东JSF序列化问题
摘要:问题背景 早上来上班,突然值班群里有人报问题,说店铺属性在JD App前端显示错乱了。打开App,点开一个店铺查看,问题复现。打开内部店铺信息查询系统,发现查出来的属性确实有一部分错乱了。OMG~线上bug来了。 查看JONE系统,发现昨晚有人加班上线了新功能,甭问,肯定是这次上线造成的问题。尝试回 阅读全文
posted @ 2019-09-21 11:24 vow007 阅读(6) 评论(0) 推荐(0) 编辑
十大经典排序算法(动图演示)
摘要:十大经典排序算法(动图演示) 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线 阅读全文
posted @ 2019-09-21 11:24 vow007 阅读(7) 评论(0) 推荐(0) 编辑
【误区】next()&nextLine()
摘要:next()和nextLine()的区别: next()方法 在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符 阅读全文
posted @ 2019-09-19 21:09 vow007 阅读(3) 评论(0) 推荐(0) 编辑
Java中Char占用几个字节???
摘要:也许你看到的一些书上说Char占用2个字节,但事实真的的是这样吗? 非也: 与编码格式、中英文均有关系 uft8编码下占3个字节;GBK编码下占2个字节; 但是如果 char表示英文字母: 在uft8编码下占一个字节;在GBK编码下还是占2个字节;所以GBK编码下:char类型的值不管是英文还是中文 阅读全文
posted @ 2019-09-16 10:58 vow007 阅读(5) 评论(0) 推荐(0) 编辑
>>>与>>
摘要:>> 表示(带符号)右移,如果该数为正,则高位补0,若为负数,则高位补1; >>> 表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。 阅读全文
posted @ 2019-09-16 09:37 vow007 阅读(3) 评论(0) 推荐(0) 编辑
并行和并发的区别
摘要:并发:同一时间段,做多件事情 并行:同一时刻,做多件事情 图片来自:https://www.jianshu.com/p/c334f8198f9b 阅读全文
posted @ 2019-09-09 17:43 vow007 阅读(3) 评论(0) 推荐(0) 编辑
Synchronized的内部实现原理
摘要:synchronized的作用主要有三个: 确保线程互斥的访问代码保证共享变量的修改能够及时可见(可见性)可以阻止JVM的指令重排序 在Java中所有对象都可以作为锁,这是synchronized实现同步的基础。 synchronized主要有三种应用方式: 普通同步方法,锁的是当前实例的对象静态同 阅读全文
posted @ 2019-09-05 17:38 vow007 阅读(4) 评论(0) 推荐(0) 编辑
公平锁与非公平锁
摘要:根据线程获取锁的抢占机制,锁可分为公平锁和非公平锁。 公平锁:线程获取锁的顺序是按照线程请求锁的时间顺序决定的,也就是最早请求的线程将最早获取到锁,即 FIFO 可用 JUC 中的lock提供了实现 ReentrantLock lock=new ReentrantLock (ture) 非公平锁:线 阅读全文
posted @ 2019-09-05 16:53 vow007 阅读(7) 评论(0) 推荐(0) 编辑
单例模式的实现方法(主要的7种)
摘要:1. 饿汉模式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { 阅读全文
posted @ 2019-09-04 00:43 vow007 阅读(6) 评论(0) 推荐(0) 编辑
Java技术之AQS详解(AbstractQueuedSynchronizer)
摘要:AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,如下图所示。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用的基础。子类们必须定义改变state变量的protected方法, 阅读全文
posted @ 2019-09-04 00:26 vow007 阅读(37) 评论(0) 推荐(0) 编辑
JVM:可达性分析算法
摘要:在堆里存放着几乎多有的java对象实例,垃圾搜集器在对堆进行回收之前,第一件事情就是确定这些对象之中哪些还“存活”着(即通过任何途径都无法使用的对象)。 一、可达性分析算法 在Java中,是通过可达性分析(Reachability Analysis)来判定对象是否存活的。该算法的基本思路就是通过一些 阅读全文
posted @ 2019-09-04 00:23 vow007 阅读(47) 评论(0) 推荐(0) 编辑
JDBC连接步骤
摘要:JDBC:Java Data Base Connection JDBC是用于运行sql语句并从数据库中获取新新的java API. JDBC是用来(让我们的程序)通过网络来操作数据库的,作用非常重要;JDBC技术也是Java核心技术之中的一个。 是使用JDBC驱动程序訪问数据库的首选方式 通过JDB 阅读全文
posted @ 2019-09-04 00:23 vow007 阅读(6) 评论(0) 推荐(0) 编辑
Java中的读写锁
摘要:一、读写锁 1、初识读写锁 a)Java中的锁——Lock和synchronized中介绍的ReentrantLock和synchronized基本上都是排它锁,意味着这些锁在同一时刻只允许一个线程进行访问,而读写锁在同一时刻可以允许多个读线程访问,在写线程访问的时候其他的读线程和写线程都会被阻塞。 阅读全文
posted @ 2019-09-04 00:23 vow007 阅读(4) 评论(0) 推荐(0) 编辑
共享锁(S锁)和排他锁(X锁)
摘要:共享锁(S锁):共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 排他锁(X锁):用于数据修改操作,例如 INSERT、UPDATE 或 DELET 阅读全文
posted @ 2019-09-04 00:22 vow007 阅读(16) 评论(0) 推荐(0) 编辑
ThreadLocal和Synchonized
摘要:ThreadLocal 和 synchronized 是 Java 中用于实现线程安全的两种机制,它们之间有以下几点区别: 作用范围不同: ThreadLocal:用于在多线程环境下,为每个线程提供独立的变量副本,每个线程都可以通过 ThreadLocal 访问自己的变量副本,互不干扰。synchr 阅读全文
posted @ 2019-09-04 00:20 vow007 阅读(8) 评论(0) 推荐(0) 编辑
解决分布式系统session一致性
摘要:适用场景: 一、引言 1.什么是session Session 是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。最常见的,会把用户的登录信息、用户信息存储在 session 中,以保持登录状态。 2.session的创建 在会话开始时,分配一个唯一的会话标识 SessionID(se 阅读全文
posted @ 2019-09-03 18:08 vow007 阅读(12) 评论(0) 推荐(0) 编辑
JVM GC的类型和策略
摘要:以及今天谈到的的JVM GC的类型和策略,特别是大家经常混淆的Minor GC、Major GC、Full GC,年轻代GC、老年代GC,之间有什么区别和联系。 Minor GC JVM堆内存被分为两部分:年轻代(Young Generation)和老年代(Old Generation)。 1.年轻 阅读全文
posted @ 2019-09-03 16:34 vow007 阅读(10) 评论(0) 推荐(0) 编辑
事务的隔离级别
摘要:一、事务的并发问题有哪几种? 丢失更新:一个事务的更新覆盖了另一个事务的更新;脏读: 一个事务读取了其他一个事务未提交的数据;不可重复读: 不可重复读的重点是修改,同样条件下两次读取结果不同,也就是说,被读取的数据可以被其它事务修改;幻读:幻读的重点在于新增或者删除,同样条件下两次读出来的记录数不一 阅读全文
posted @ 2019-09-03 16:15 vow007 阅读(5) 评论(0) 推荐(0) 编辑
【JVM系列】7、JVM调优
摘要:堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0 阅读全文
posted @ 2019-09-03 14:21 vow007 阅读(3) 评论(0) 推荐(0) 编辑
【JVM系列】6、Jvm垃圾回收器(终结篇)
摘要:Jvm垃圾回收目前就准备了这三篇博文进行整理,在写博文的过程中我也是边看边记载的,我觉得这种学习方式更容易让人记住,不会轻易忘记。以前的学习模式都是看PDF文档、看书等,但是有个缺点就是当时记住了过段时间就会忘记,因此想把学习过程中重要的部分做个笔记总结,以便于后期复习回顾(学习技巧仅个人观点)同时 阅读全文
posted @ 2019-09-03 13:08 vow007 阅读(10) 评论(0) 推荐(0) 编辑
【JVM系列】5、Jvm垃圾回收器(算法篇)
摘要:在《【JVM系列】4、Jvm垃圾回收器(基础篇)》中我们主要学习了判断对象是否存活还是死亡?两种基础的垃圾回收算法:引用计数法、可达性分析算法。以及Java引用的4种分类:强引用、软引用、弱引用、虚引用。和方法区的回收介绍。 那么接下来我们重点研究下虚拟机的几种常见的垃圾回收算法:标记-清除算法、复 阅读全文
posted @ 2019-09-03 13:04 vow007 阅读(5) 评论(0) 推荐(0) 编辑
【JVM系列】4、Jvm垃圾回收器(基础篇)
摘要:一:概述 在这篇文章中《【JVM系列】1、运行时数据区》介绍了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈,3个区域随着线程的生存而生存的。内存分配和回收都是确定的。随着线程的结束内存自然就被回收了,因此不需要考虑垃圾回收的问题。而Java堆和方法区则不一样,各线程共享,内 阅读全文
posted @ 2019-09-03 12:59 vow007 阅读(5) 评论(0) 推荐(0) 编辑
【JVM系列】3、Java内存模型(JMM)
摘要:1.Java内存模型概述 Java内存模型是一种抽象概念,不是真实存在的。主要定义了程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存取出变量这样的底层细节。注意:这里的变量仅包括实例字段、静态字段、构成数组对象的元素,但不包括局部变量与方法参数。因为后者是线程私有的,不会被共享,自然就 阅读全文
posted @ 2019-09-03 11:37 vow007 阅读(7) 评论(0) 推荐(0) 编辑
【JVM系列】2、类的加载机制
摘要:1.概述 虚拟机加载Class文件(二进制字节流)到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这一系列过程就是类的加载机制。 2.类的加载时机 类从被虚拟机加载到内存开始,直到卸载出内存为止,整个生命周期包括:加载——验证——准备——解析——初始化——使用— 阅读全文
posted @ 2019-09-03 11:31 vow007 阅读(4) 评论(0) 推荐(0) 编辑
【JVM系列】1、运行时数据区
摘要:一:运行时数据区 Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运 阅读全文
posted @ 2019-09-03 11:09 vow007 阅读(7) 评论(0) 推荐(0) 编辑
JVM核心参数用法详解
摘要:堆内存相关 参数描述-Xmx设置最大堆内存大小。例如 -Xmx2G 表示2GB的最大堆内存。-Xms设置初始堆内存大小。例如 -Xms512M 表示512MB的初始堆内存。-XX:NewRatio设置新生代和老年代的比例。例如 -XX:NewRatio=2 表示新生代和老年代比例为1:2。 垃圾回收 阅读全文
posted @ 2019-09-02 00:08 vow007 阅读(12) 评论(0) 推荐(0) 编辑
【HashMap】深入理解HashMap+ConcurrentHashMap的扩容策略
摘要:前言 理解HashMap和ConcurrentHashMap的重点在于: (1)理解HashMap的数据结构的设计和实现思路 (2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路 前面的文章已经介绍过Map结构的底层实现,这里我们重点放在其扩容方法, 这里分别对J 阅读全文
posted @ 2019-09-01 23:43 vow007 阅读(4) 评论(0) 推荐(0) 编辑
MyBatis的介绍以及工作流程原理
摘要:什么是MyBatis? MyBatis是一个Java持久化框架,它通过使用简单的XML或注解来简化关系型数据库的访问。它提供了灵活的SQL映射和数据库操作的功能,使得开发人员可以更轻松地处理数据库交互。 MyBatis与其他ORM框架的主要区别在于,它采用了更为传统的数据库访问方式,即SQL层与持久 阅读全文
posted @ 2019-09-01 23:27 vow007 阅读(63) 评论(0) 推荐(0) 编辑
Servlet中的service()方法
摘要:引入 Servlet的生存时间是由init,service,destory方法构成,这里分析一下service这个方法 Servlet接口中定义了一个service()方法,而我们一般是使用HttpServlet,HttpServlet中对它进行了实现,将ServletRequest和Servlet 阅读全文
posted @ 2019-09-01 22:42 vow007 阅读(20) 评论(0) 推荐(0) 编辑
redis实现分布式的方法总结
摘要:使用分布式锁要满足的几个条件 1.系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现)2.共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL)3.同步访问(即有很多个进程同事访问同一个共享资源。没有同步访 阅读全文
posted @ 2019-09-01 17:21 vow007 阅读(11) 评论(0) 推荐(0) 编辑
重入锁及实现原理
摘要:可重入锁,从字面来理解,就是可以重复进入的锁。 可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后,内层递归函数仍然有获取该锁的代码,但不受影响。 在JAVA环境下ReentrantLock和synchronized都是可重入锁。 synchronized是一个可重入锁。在一个类中,如果syn 阅读全文
posted @ 2019-09-01 12:41 vow007 阅读(10) 评论(0) 推荐(0) 编辑
java常用的并发工具类
摘要:一、等待多线程完成的CountDownLatch 需求场景:当我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到sheet都解析完之后,程序需要提示解析完成。 当然我们可以使用join方法,join用于让当前线程等待join线程执行结束 阅读全文
posted @ 2019-09-01 12:39 vow007 阅读(4) 评论(0) 推荐(0) 编辑
Netty简介及使用
摘要:一、简介 在本文中,我们将了解 Netty——一个异步事件驱动的网络应用程序框架。 Netty的主要目的是构建基于NIO(或者可能是NIO.2)的高性能协议服务器,网络和业务逻辑组件分离且松散耦合。它可能实现众所周知的协议,例如 HTTP,或您自己的特定协议。 2. 核心概念 Netty 是一个非阻 阅读全文
posted @ 2019-09-01 10:15 vow007 阅读(7) 评论(0) 推荐(0) 编辑
zookeeper介绍
摘要:zookeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户 Zookeeper 阅读全文
posted @ 2019-09-01 10:13 vow007 阅读(6) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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