面试
gavin5033
阔以
展开
-
Java面试知识点解析——JVM篇
一、JVM 基础知识 1)Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 答:我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,...原创 2018-10-20 11:54:13 · 124 阅读 · 0 评论 -
几种简单的负载均衡算法
什么是负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题...原创 2018-10-20 12:01:55 · 154 阅读 · 0 评论 -
面试的角度诠释Java工程师(二)
三、框架篇 框架基础 反射:反射是Java开发的一类动态相关机制。因为本身Java语言并不是一款动态语言,如果我们想要得到程序动态的效果,因此便引入了反射机制这一概念。 怎么表达反射? 能用反射做什么? PS:某面试题:Java中创建实例化对象有哪些方式? ①最常见的创建对象方法,使用new语句创建一个对象。 ②通过工厂方法返回对象,例:String s =Strin...原创 2018-10-20 12:01:22 · 127 阅读 · 0 评论 -
Java反射机制深入详解
一.概念 反射就是把Java的各种成分映射成相应的Java类。 Class类的构造方法是private,由JVM创建。 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在...原创 2018-10-20 12:00:12 · 110 阅读 · 0 评论 -
谈谈java的ThreadLocal
简单介绍 ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。 跳出误区 需要重点强调的的是,不要拿ThreadLocal和synchronized做类比,因为这种比较压根就是无意义的!sysnchronized是一种互斥同步机制,是为了保证在多线...原创 2018-10-20 11:59:33 · 184 阅读 · 0 评论 -
MySQL的索引是什么?怎么优化?
索引对大数据的查询速度的提升是非常大的,Explain可以帮你分析SQL语句是否用到相关索引。 索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。 一、导致S...原创 2018-10-20 11:58:51 · 203 阅读 · 0 评论 -
细谈CAS与ABA
题目:如何实现乐观锁(CAS),如何避免ABA问题? 本文阅读大概需要15分钟。 这个题主要考查原子操作、悲观锁、乐观锁及ABA问题。 一 原子操作 原子在化学中,有基本粒子,不可再分之意(现在早已不是不可再分),计算机科学因此引入了原子操作这一名词,用来指代某一或一系列计算机操作具有原子性。原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。例如在计算机...原创 2018-10-20 11:57:51 · 145 阅读 · 0 评论 -
面试的角度诠释Java工程师(一)
前言: 我相信每一个程序员都是为了生活而努力着的。很多人因为兴趣,从此踏上了这条‘烧脑大行动’的金桥;也有很多人因为梦想和执着,奋不顾身融入这个职业;还有很多人因为被现实逼得太无奈,不得不为自己、为家人、为未来谋这么一条坎坷的路。 这里,我不去评价什么,再说我也没有资格去评价啊。言归正传,下面我写这篇文章的定位是各位在场的读者,如果你认为我接下来说的内容会跟书里说的差不多,那么请高...原创 2018-10-20 11:57:00 · 115 阅读 · 0 评论 -
Java面试中常问的数据库方面问题
MySQL 为什么用自增列作为主键 如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWI...原创 2018-10-20 11:55:13 · 118 阅读 · 0 评论 -
Java动态代理原理及解析
代理:设计模式 代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。 通过代理层这一中间层,有效的控制对于真实委托类对象的直接访问,同时可以实现自定义的控制策略(Spring的AOP机制),设计上获得更大的灵活性。 java动态代理的类和接口(jdk1.6源码) ...原创 2018-10-20 12:02:49 · 142 阅读 · 0 评论