剑指Offer
yyjava
j2ee
展开
-
锁、分布式锁、无锁实战全局性ID
什么是锁JVM锁:对象,偏向,公平,重入,死锁,自旋等; 分布式锁:数据库,nosql,zookeeper;为什么要使用锁?资源共享唯一性如何排查死锁?jstack jvisualVM类锁:一个类只有一个class 对象锁:一个类可以有多个实例分布式锁Redis DB Zookeeper无锁分布式无锁CAS同理 Redis分布式无...原创 2018-08-27 15:09:55 · 368 阅读 · 0 评论 -
75道程序员面试逻辑思维题
【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。 【2】周雯的妈妈是豫林水泥厂的化验员。 一天,周雯来到化验室做作业。做完后想出去玩。 “等等,妈妈还要考你一个题目,...转载 2018-09-03 15:00:29 · 2878 阅读 · 0 评论 -
JVM初探:内存分配、GC原理与垃圾收集器
原文出处: 朱吉芳(@攻城师-翡青 )JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收.除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤:I. 怎样分配- JVM内存分配策略对象内存主要分配在新生代Eden区, 如果启用了本地线程分配缓冲, 则优先在TLAB上分配, ...转载 2018-09-05 16:44:19 · 376 阅读 · 0 评论 -
JVM架构和GC垃圾回收机制(JVM面试不用愁)
JVM架构和GC垃圾回收机制详解JVM架构图分析下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化)JVM被分为三个主要的子系统(...转载 2018-09-05 16:39:53 · 246 阅读 · 0 评论 -
你真的懂Java类加载器吗?图文详解ClassLoader的原理和机制
什么是ClassLoaderClassLoad:类加载器用来加载 Java 类到 Java 虚拟机中。Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。jdk中提供了三种类加载器:引导类加载器BootStrap ClassLoader...转载 2018-08-24 14:56:43 · 725 阅读 · 0 评论 -
知名技术团队博客
国内技术团队博客1 http://tech.meituan.com/ 美团点评技术团队2 http://fe.meituan.com/ 美团前端技术团队3 http://tech.uc.cn/ &nb...转载 2018-08-24 14:45:50 · 227 阅读 · 0 评论 -
不是技术牛人,如何拿到国内IT巨头的Offer
不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰。看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic…在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技术屌丝的同学们,是否真的与国内IT巨头遥不可及呢?当你...转载 2018-08-24 14:38:07 · 143 阅读 · 0 评论 -
HashMap源码分析与实现
1,HashMap数组+链表 数组容易查询,根据下标查询(有序),链表容易插入和删除,根据指针(散列) Hash:散列将一个任意的长度通过hash函数算法转换成一个固定值。 hash移位算法,查看源码 static final int hash(Object key) { int h; return (key == null) ? 0 : (h = ...原创 2018-08-24 11:24:25 · 137 阅读 · 0 评论 -
大型公司面试必答之数据结构与算法
数据结构1,概念数据结构:数据之间的关系,提高程序效率逻辑关系,人为认为集合:在一个范围内有多个数据,数据之间没有关系 线性:1对1关系,线性结构,链表呢? 树:1对多关系,树结构,文件目录 图:多对对关系,网状结构物理关系:内存存储顺序存储:数组,连续 链式存储:链表,散列数据结构难不难:容易但很难,技术上就变量循环判断,应用很难,写好循环和判断,...原创 2018-08-28 13:06:38 · 476 阅读 · 0 评论 -
JAVA并发编程之多线程并发同步业务场景与解决方案
业务需要1:假如现在有20个人去售票厅买票,但是只有2个窗口,那么同时只能有2个人买票,当2个人任意一个人买好票离开之后,等待的18个人中又会有一个人可以占用窗口买票 拆解: 20个人就是20个线程;2个窗口就资源 实际含义就是:怎么控制同一时间并发数为2 Semaphore 信号量(控制并发线程数) 注意使用的时候:获取和释放 acquire() release()案例: ...原创 2018-08-27 17:09:54 · 475 阅读 · 0 评论 -
程序员思维训练500题(附带答案)
第一章 假设法 一个真实的假设往往可以让事实呈现眼前,让真理浮出水面。一个人如果做什么事都可以让其思维以这些假设前提为基础,那么他便能真真正正地活在NLP里而不会陷入困境,他的人生也就会有更大地进步和提升。 初级题: 1.如何问问题? 有甲、乙两人,其中,甲只说假话,而不说真话;乙则是只说真话,不说假话。但是,他们两个人在回答别人的问题时,只通过点头与摇头来表示,不讲话。有...转载 2018-09-03 15:17:57 · 8770 阅读 · 1 评论