Java严选
1,假如有两个线程,一个线程A,一个线程B都会访问一个加锁方法,可能存在并发情况,但是线程B访问频繁,线程A访问次数很少,问如何优化。(然后面试官说有了解过重度锁和轻度锁吗)
a,竞争资源不激烈,选择Synchronized:
在资源竞争不是很激烈的情况下,Synchronized的性能要优于ReetrantLock,
但是在资源竞争很激烈的情况下,Synchronized的性能会下降几十倍,但是ReetrantLock的性能能维持常态;
b,优化,假设线程A和B不会并发访问,如果发生了并发,再膨胀为重量级锁:
轻量级锁的核心思想就是“被加锁的代码不会发生并发,如果发生并发,那就膨胀成重量级锁。
http://tech.youzan.com/load-balancing-algorithm/
4.设计一个分布式负载均衡缓冲系统,如何快速定位到是那个服务器
(使用key分段、一致性hash:http://blog.csdn.net/sparkliang/article/details/5279393 )
6.HashMap高并发情况下会出现什么问题
高并发场景下HashMap在扩容时可能会形成闭环,导致死循环。
http://www.iteye.com/topic/962172
7,ConcurrentHashMap如何扩容,内部结构?
如何扩容?
扩容的时候首先会创建一个两倍于原容量的数组,然后将原数组里的元素进行再hash后插入到新的数组里。
为了高效ConcurrentHashMap不会对整个容器进行扩容,而只对某个segment进行扩容
http://www.infoq.com/cn/articles/ConcurrentHashMap
数据库SQL优化大总结之 百万级数据库优化方案:
http://database.51cto.com/art/201407/445934.htm
9,用过哪些容器?(tomcat)对比过Tomcat与其他服务器的区别吗?比如nginx?
- 动静态资源分离——运用Nginx的反向代理功能分发请求:所有动态资源的请求交给Tomcat,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器,这样能大大减轻Tomcat的压力。
- 负载均衡,当业务压力增大时,可能一个Tomcat的实例不足以处理,那么这时可以启动多个Tomcat实例进行水平扩展,而Nginx的负载均衡功能可以把请求通过算法分发到各个不同的实例进行处理。
10,HashMap的内部实现
在分析jdk1.8后的HashMap源码时,HashMap的数据结构(数组+链表+红黑树),桶中的结构可能是链表,也可能是红黑树,红黑树的引入是为了提高效率。
HashMap数据结构:
http://www.cnblogs.com/huaizuo/p/5371099.html

11,ConcurrentHashMap内部是如何实现的?每个segment是个什么数据结构?
12.tomcat均衡方式 ,netty
Netty是什么?
本质:JBoss做的一个Jar包
目的:快速开发高性能、高可靠性的网络服务器和客户端程序
优点:提供异步的、事件驱动的网络应用程序框架和工具
通俗的说:一个好使的处理Socket的东东
http://lippeng.iteye.com/blog/1907279
http://blog.csdn.net/kobejayandy/article/details/11493717
读取log中的IP记录,并统计每个IP的访问次数,以5分钟为分隔,超过100的IP就是爬虫IP,没有超过的在5分钟的时候清零,继续统计。
15.对后台的优化有了解吗?比如负载均衡。
Nginx+Tomcat负载均衡: http://blog.csdn.net/wang379275614/article/details/47778201
异步处理(消息缓冲服务器): http://blog.csdn.net/shaobingj126/article/details/50585035
缓存(Redis,Memcache),NoSQL,数据库优化,存储索引优化。
16.DNS均衡
负载均衡之DNS域名解析 : http://blog.csdn.net/cywosp/article/details/38017027
17.nginx事件处理模型
http://blog.csdn.net/u013009575/article/details/17471615
19.int i=0; Integer i1=0; Integer i2=new Integer(0); Integer i3=new Integer(0);
System.out.println(i==i1);//true 指向堆中的基本类型时,直接取到其值。
System.out.println(i==i1);//true指向堆中的基本类型时,直接取到其值。
System.out.println(i1==i2);//false指向堆中的 对象 类型时,直接取到其地址。
System.out.println(i3==i2);//false指向堆中的 对象 类型时,直接取到其地址。
System.out.println(i3.equals(i2));//true指向堆中的 对象 类型时,equals取到其值。
Java严选的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 严选 Android 路由框架优化(下篇)
3 router 框架优化 3.1 apt 生成代码量过大问题优化 思考框架本身,其实可以发现仅有 router 映射表是需要根据注解编译生成的,其他的全部代码都是固定代码,完全可以 sdk 中直接编 ...
- 严选 Android 路由框架优化(上篇)
0 背景 早前严选 Android 工程,使用原生 Intent 方式做页面跳转,为规范参数传递,做了编码规范,使用静态方法的方式唤起 Activity public static void star ...
- 2020年JAVA大厂笔经面经
个人简介 Java后台开发方向. 非计算机专业硕士,专业涉及到一些开发. 实验室项目主要是Java Web系统,挖掘小亮点. 无实习经验. 闲话唠嗑 回顾这几个月,宛若梦一场. 一开始心态不好 ...
- 感觉学java学到自己的瓶颈期了,各种框架乱七八糟,感觉好乱。该怎么办!?
通常我们都会有这样的一个疑问! 解决办法 这时候,你需要的是分清条理,重整知识架构 GitHub开源社区有一个这样的项目,我觉得非常好,很适合Java有基础但是想进阶提升的人. 项目简介 本期介绍的开 ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
随机推荐
- Java 添加、删除、移动、隐藏/显示Excel工作表
本文内容将介绍通过Java程序如何添加.删除.移动工作表,以及设置工作表隐藏.显示等操作.文中使用了Java Excel类库(Free Spire.XLS for Java 免费版),可通过官网下载包 ...
- CSS3 animation属性 实现转动效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- noi.ac #525 神树的权值
mcfx神仙的题qwq 题目链接:戳我 首先,我们知道30%的分还是挺好做的 直接枚举根,然后dfs一遍以\(O(n)\)的时间复杂度求出来有多少神仙点 代码如下: #include<iostr ...
- return返回方法值:狮子玩具
public class Lion { String color ="黄色"; public void run(){ System.out.println("正在以0.1 ...
- Python基础之算术运算符
如下图所示, 假设变量a = 10, b = 20:
- <% 拼写页面
js中 function udSelect(obj){ var val = $("#"+obj.id).val(); $("select[cd="+obj.id ...
- PHP7 的部分新特性
1. 运算符(NULL 合并运算符) $a = $_GET['a'] ?? 1; 它相当于: <php$a = isset($_GET['a']) ? $_GET['a'] : 1; 我们知道三 ...
- 基本CSS布局
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- laravel 框架接入环信遇到的坑(-)
在脚本中执行判断user表中是否注册环信时,报错: “请求错误:service_resource_not_found Service resource not found ” // 判断环信是否已经 ...
- PHP中try catch的用法
异常(Exception)用于在指定的错误发生时改变脚本的正常流程. 什么是异常? PHP 5 提供了一种新的面向对象的错误处理方法. 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程.这 ...