面试题1

java

基础

Java IO

jre和jdk区别

抽象类和接口区别

javascript和java的区别

jdk1.8用过吗?有没有了解过?lamda知道吧?有没有用过?

接口和类的区别

每个人举例两个碰到过的异常

重载和重写区别

Overload是重载的意思,Override是覆盖的意思,也就是重写。

​ 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

​ 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

作者:天天向上

链接:https://www.zhihu.com/question/35874324/answer/144589616

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

什么对象会放到老年代

一般新生对象要进入Eden 区,Eden 区被填满时,要进行GC,GC之后还存活的对象将被复制到两个Survivor 区域中的一个。假定该Survivor 为From 区,From 区被填满之后,这个区域也要进行GC,GC 之后存活的的对象将会复制到To 区,From区清空。To区也被填满时,之前从From 区复制过来的那部分对象仍在活动则进入老年代。(From,To 必有一区会是空的)

通过年龄计数器判断一个对象是否需要转移。对象每经过一个GC 仍然活着,年龄计数器加1。当年龄超过设定的值,则将其通过担保机制转移到老年代。
也可以动态判定,当Survivor 中 年龄相同的对象超半数,则年龄大于该年龄的对象转移到老年代,无需等待到达设置的最大年龄值。大对象直接进入老年代。

在Minor GC 之前,检查老年代的可用空间是否大于年轻代的对象总和,若大于则是一次安全的Minor GC,不大于[ 允许担保失败],则比较历次晋升到老年代的对象的平均大小是否大于老年代的最大可用空间,若大于则进行一次冒险的Minor GC。
有可能老年代不满足空间需求(不大于,并且不允许担保失败),则进行一次Full GC。
Minor GC 存在的原因是,年轻代只使用要给Survivor 保存仍存活的对象。
在一次安全Minor GC 中,仍然存活的对象不能在另一个Survivor 完全容纳,则会通过担保机制进入老年代。

java.lang.String 为什么会有 new String(String str)的构造函数, 既然 String 是不可变的,那直接用 str 不就好了么,这个构造函数有什么意义

关于String是final类的思考

String类是final类,这意味着不允许任何人定义String的子类。如果有一个String的引用,它引用的一定是一个String对象,而不可能是其他类的对象。

String 一旦被创建是不能被修改的, 因为 java 设计者将 String 为可以共享的(常量池)

而且不可变也意味着线程安全

自己定义的类如何实现hashCode方法

java核心技术有

Java的异常体系;

代理的实现,代理分为那两种,动态代理与静态代理的区别

设计模式

异常

对象序列化;

Java中的Annotation的工作原理是什么?

Annotation

java IO,NIO,Java中有没有实现异步IO

Java IO实现的是同步阻塞,它是怎么实现同步阻塞的。我拿了read()方法举例来讲的。NIO实现的是同步非阻塞,我详细讲了一下Selector中的select()方法轮询说明它是如何实现多路复用IO的。然后对比了一下他们的效率。面试官可能看我对这一块比较了解,又继续问我Java中有没有实现异步IO,我感觉好像没有,但面试官说有,让我想想,其实这里我并不清楚啦,所以我就对面试官讲了一下我对Unix中异步IO模型的理解,然后说至于Java里面有没有我真的不太清楚。(他居然笑了!说你理解是对的,Java里面有没有不重要!哈哈)

final变量的赋值是在哪一个阶段?

final相关

static相关

那你说说java是如何实现跨平台的。

equals方法和hashCode方法相关的,问如果要向集合中添加自定义类的对象该怎么做?(在类中重写equals方法和hashCode方法)

将对象转换为文件实现什么接口;反射是哪一个类 有些什么方法
通过反射获取方法时,能获取private的方法吗?protected?

分布式缓存,一致性HasH算法;

java事件监听机制的实现 --涉及源代码

LRU缓存算法

怎样保证一个对象不会被回收

最近在看JVM的我很快想到了四种引用,并回答他:只需要保持始终有一个强引用引用它就行了。

CMS收集器,标记流程

safepoint介绍

IO模型有哪些?

ReentrantLock的源码实现. (AQS Sync两个重要的类)syn在方法上和代码块有什么不同

如何用JQuery获取id、class的值?获取<div>标签下的所有<div>子标签?

进程之间如何通信的

进程与线程的区别;Java中的反射机制;

如何debug的

关于Integer常量池-128-127内有缓存,大于小于这范围似乎没有?

 String s1 = "Hello";
 2 String s2 = "Hello";
 3 String s3 = "Hel" + "lo";
 4 String s4 = "Hel" + new String("lo");
 5 String s5 = new String("Hello");
 6 String s6 = s5.intern();
 7 String s7 = "H";
 8 String s8 = "ello";
 9 String s9 = s7 + s8;
10           
11 System.out.println(s1 == s2);  // true
12 System.out.println(s1 == s3);  // true
13 System.out.println(s1 == s4);  // false
14 System.out.println(s1 == s9);  // false
15 System.out.println(s4 == s5);  // false
16 System.out.println(s1 == s6);  // true

STL

ArrayList和数组的区别

HashMap扩容

各种集合类以及区别,实现原理。

从ResultSet中获取的数据怎么封装成对象

ResultSet

java哪一个集合,可以实现放进去的数据有序,取出来保持原样?

说一下HashMap是如何实现的吧
我:就先画了一下结构,再说了一些什么拉链法解决冲突,什么JDK8里面冲突达到一定数量的时候就改用了红黑树的存储等等,然后问我怎么扩容。

说一下ConcurrentHashMap吧
我:JDK7里面采用的是分段锁机制什么的,读的时候不加锁,写的时候分段加锁,先定位到某个段,然后段里面的操作委托给HashMap等等。然后又说JDK8里面 ConcurrentHashMap有很大变化,从1600多行代码扩充到了6000多行代码。(还好没接着问我JDK8里面是怎么实现的,就昨天晚上瞄了一眼,6000多行代码确实没看下来)

List接口和Set接口的区别,(说了2个区别,一直被二面面试官说“还有还有”,那种淡定的语气,我又开始慌了,心想果然是大神,不好糊弄啊)

Map与Set的本质区别是什么?

多线程

多线程面试题

多线程:怎么实现线程安全,各个实现方法有什么区别,volatile关键字的使用,可重入锁的理解,Synchronized是不是可重入锁

这里我就主要讲了Synchronized关键字,还有并发包下面的一些锁,以及各自的优缺点和区别。volatile关键字我主要从可见性、原子性和禁止JVM指令重排序三个方面讲的,再讲了一下我在多线程的单例模式double-check中用到volatile关键字禁止JVM指令重排优化。

HashMap底层实现,怎么实现HashMap线程安全

我讲了一下HashMap底层是数组加单链表实现,Node内部类,add的过程,Hash冲突解决办法,扩容,三种集合视图。HashMap线程安全的实现方式主要讲了HashTable、ConcurrentHashMap以及Collections中的静态方法SynchronizedMap可以对HashMap进行封装。以及这三种方式的区别,效率表现。

实现多线程的方法,你一般用什么方法,为什么

为什么同步块太大会影响性能?

不同的线程拥有不同的对象锁,它们之间会有影响吗?

如果synchronized加在静态方法上面那么锁指的是什么?

(在这个地方又跟面试官就几个名词纠缠了一会儿,我说锁是Class对象,他问是实例还是对象,他说实例是静态的,对象是动态的,我说Class是静态的,对象是动态的,然后他说我们不说类了,用英文,instance和对象,我说instance我理解的就是对象啊,可能他觉得instance是指类,对象就是new出来的对象,也许是我没看过英文版的书吧)于是我接着说,指的是对象,是java虚拟机将一个类的字节码加载进内存之后生成的一个java.lang.Class对象,然后他可能没听明白我说的,还是在问,到底是类还是对象,我其实已经明白他的意思了,然后说,按照您的描述,那就是类。然后他好像满意了,就下一题了。(那明明就是一个Class对象嘛,Class对象不也是对象)

java 线程有哪些状态,这些状态之间是如何转化的。

有两个线程A和B,如果一个线程要等另一个线程执行完,该怎么做。(我说在ThreadA中调用ThreadB.join()方法,二面面试官问我入参呢?我说我见过的join方法没有要传入参的啊,可能面试官记错了,他也没说什么。被这么一搞我又虚了,面试官怎么能质疑我呢,我好怕。后来我回来看了一下Thread类的源码,里面有三个join方法,分别是join(); join(long millis); join(long millis, int nanos),后面两个方法含义是一样的,只不过是精度不同,都是指等待一定时间,而不带参数的join方法里面直接调用的是join(0),即调用了带参的join方法,该方法如果参数是0的话就代表一直等待下去直到所等待的那个线程执行完,所以我推断面试官问我入参可能是想让我说入参为0,其实入参为0和没有参数含义是一样的。)

Synchronized Lock区别 从JVM到操作系统到API

锁机制了解多少,一层一层深入,直到回答不出来;

进程和线程的区别?
我回答,进程是系统调度的最小单位,由程序和 PCB 块组成,线程是进程中一段顺序执行序列。又问:根本区别是什么?我回答:线程调度开销比进程调度小?面试官说不对。

分层架构中,Dao层的作用是什么?如果不要DAO层,能不能实现有Dao层时的优点?

一个库存变量,多个线程需要操作,如何保证正确性?

创建100个线程,如何使得这100个线程几乎同时启动?

一台机器压力太大了,又给你分配了5台机器,你如何使用这些机器?

线程是否越多越好?资源和内存的问题考虑

线程是否有独占的资源?有,threadlocal变量

死锁的四个必要条件

具体案例,如何避免死锁?某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?

公平锁和非公平锁

threadlocal解释

volatile的作用及原理

JVM

GC原理 我先说了哪些对象需要被GC,然后讲了一下GC的几种方法,最后说了HotSpot里面的GC算法

什么时候会发生full gc

对,你有试着去调过吗?(GC)

Bootstrap classloader-ExtClassloader-AppClassloader,父类委托机制。

说说类加载的过程? 类加载的顺序是怎么样的?可以随意调换吗?

jvm的类加载机制是怎么样的?我没理解他的意思,然后我反问,问是不是类加载器的选择?可以的,你可以说下类加载器。双亲委派模型的优势在哪里?

jdk1.7和1.8之间,内存区域有什么变化?

搜索引擎 ES原理 编译原理 倒排索引 类加载机制 UnsatisfiedLinkedError ClassNotFoundException Synchronized原理 B+树

包括但不限于(Java多线程,锁,SSM源码,并发包,各类集合框架,MySQL索引调优,事务,MVCC,Redis相关内容,JVM垃圾回收,内存模型,类加载机制)

知识点大致是:集合框架,线程池,ThreadLocal,Cookie Session,RDB AOF等。(基础回答的好)

Maven如何处理包冲突

问我知道阻塞队列吗,让我自己实现阻塞队列我会怎么做?我说我会用两种方法来实现,一种是用wait和notify的方式,一种是用Condition条件变量的方式,然后他问怎么用wait和notify实现,我就把思路说了一下。

string,stringbuffer,stringbuilder的区别

负载多服务器之间如何通信。

52.网站高并发情况,你会怎么处理?(数据层,业务逻辑层)

了解NIO吗?说说有点

知道网络编程吗?说说分布式。

数据库

数据库查询top10

数据库引擎有哪些,有什么区别

join、inner join、outer join的区别

数据库索引实现为什么用B+树不用Hash表

什么时候用视图 只说到在进行多表连接查询的时候可以建立视图方便查询,没说出主要的点:可以用视图来进行权限管理,使用视图可以隐藏底层表结构,更安全。

数据库事务 事务的隔离性怎么理解;

Mysql优化、索引的实现 我从数据库设计优化和查询优化两方面讲的。索引B+树实现,InnoDB和MyISAM主键索引的实现区别,一个聚集一个非聚集。

事务的隔离级别 四种隔离级别,可能会出现哪些异常,mysql中默认级别。

mysql和sqlserver的区别有哪些

对于Mysql了解哪些,Mysql的引擎InnoDB与Myisam有什么区别

数据库设计要考虑哪些因素;

说下数据库中的范式,用来做什么用的;

如果写了一条sql语句执行起来很慢怎样优化;

4.基本的数据库增删改查
create 、 drop 、 delete 、 update 、 insert 、 alter
5.多表连接
我以为说的是嵌套查询来着,又问了面试官,问的是 join ,这个 join 我学数据库的时候就记不住,左 join 右 join ,内 join 外 join 的,我就跟面试官直说这个东西不熟

关系数据模型的概念

三大范式

介绍下联结,写一个SQL;

如何分库分表

查询一个字段值有重复的表,要去除重复项,SQL语句怎么写?

MySQL的主从

缓存的击穿和雪崩如何解决

Redis的特点,数据类型,持久化策略,主从复制

WEB

Cookie和Session的区别,Cookie可以在哪里写,里面可以放些什么

Http和Https;

127.0.0.1:8080/index.html与goodstudy.com:8080/index.html请求,Cookie是否一样

有没有配置过服务器啥啥啥

HTTP有没有状态,我说无状态,怎么解决HTTP无状态 其实就是怎么进行会话跟踪,有四种方法:URL重写、隐藏表单域、Cookie、Session。

前端会不会,Ajax是什么,Ajax实现原理

知道网络编程吗?NIO,BIO,AIO这些

OSI7层模型每层的作用说一下

conccurentHashmap原理

如何获取一个网站每天的访问用户数

写一个servlet类怎样让它启动运行

Servlet 生命周期,这个很好回答,初始化、响应、销毁。然后又问 Servlet 什么时候初始化

网页包括哪些内容 HTMLCSSJS?

Http协议你了解吗?文件上传时,进度条的设计原理是什么?

对数据库的存储过程熟悉不

2、TCP与UDP的区别

3、TCP三次握手说一下(把流程说一遍,这里以为会继续问为什么不是两次或者四次,结果没有)

算法

用Java定义一颗二叉树

一个长度100的整数型数组,求子集元素乘积的最大值p

9个外观相同的球,其中有一个比其他8个轻,用一个无砝码的天平秤2次称出来(分成3,3,3;再分成1,1,1)

9个外观相同的球,其中有一个跟其他的不一样重量,用一个无砝码的天平秤3次称出来(在上面一题上进行拓展,在分成3,3,3的时候秤两次,完成两件事:确定不一样的在哪个三堆中,确定不一样的是更重还是更轻。再分成1、1、1)

把4中的9个球改为10个球(其实跟上面是一样的解题思路啦,很简单)

找到单链表的三等分点,如果单链表是有环的呢

从10万个数中找最小的10个,时间复杂度分析(最大堆,考虑内存)
从一个有正有负数组中找连续子数组的最大和,时间复杂度分析(动态规划)
满二叉树第i层有多少个节点,n层的满二叉树共有多少个节点

在collabedit上在线写代码,题目很简单是编程之美上的原题,一个有序的整数数组,输出两个数,使它们的和为某个给定的值。之前做过很快写好,然后给他讲思路。他继续问如果数组无序怎么办,先排序。

两个文件,每个文件中都有若干个url,找出两个文件中相同的url(用HashMap)

冒泡和插入的区别是什么

他让我描述一下选择排序的过程

写代码,给我5分钟,让我实现一个Stack,底层数据结构用数组。我问他需要支持扩容吗,

问我用栈怎么实现队列,我说用2个栈来实现,他问我具体怎么操作,我说我可以想一下吗?

用java统计一个文本文件中出现的频率最高的20个单词。多经典的题目啊。我问能用shell命令来实现吗?他说用java

不同的容器是用来做什么的 区别 实现

简单描述下快排 其优缺点;基本有序情况下哪种排序最优;

常见的线性结构 我回答,数组、向量、链表

队列和栈 说先进先出,又问栈,先进后出,还有什么特点?只能在顶端操作

输入一组数。拼接成一个最大的数输出(好像codeforces也有字典序最小那题...)

什么因素会影响到你选择不同种类的排序算法

合并有序链表

单链表有环推导公式

https://www.cnblogs.com/chengyeliang/p/4454290.html

LRU算法,最近被使用算法,使用链表实现一个,

https://blog.csdn.net/elricboa/article/details/78847305

分K组来反转单链表

100亿个网址,如何去重?

找出一个数组中的多数元素?追问,时间复杂度可以再小吗?

操作系统?

多路复用IO除了NIO,在操作系统级别上是怎么实现的

java NIO有哪些不好的地方

进程和线程的区别 从调度、并发性、拥有的资源和系统开销四个方面回答的。

设计一个线程池 这个问题因为我之前看过ThreadPoolExecutor的源代码,所以我就仿照那个类的设计思路来想的,详细讲了一下核心池、创建线程可以用工厂方法模式来进行设计、线程池状态、阻塞队列、拒绝策略这几个方面。设计的还算比较周全。

Linux管道的作用

设计模式

写一个单例模式,再让我加上常用属性。是否安全

讲几个设计模式,哪些地方用到了,为什么要用 单例模式,jdk中的getRuntime();工厂方法模式,ThreadPoolExcutor用到ThreadFactory;观察者模式:java.util包下面的Observable和Observer。最后主要讲了一下工厂方法模式的使用场景。

HibernateDaoSupport,ActionSupport等类中所指的Support,是不是一种设计模式?若是,那说说你对这种设计模式的理解?

项目

项目中有没有什么地方用到过事务,说一说事务

你这系统访问量怎么想,会有高并发吗,数据库有多少数据?数量级大约多少?千万?亿?

负载均衡算法有哪些

如果你做的项目并发量很大,你会怎么做? 我从客户端建立连接、数据库设计、sql优化几个方面讲的

MD5加密用过没,(我回答说没用过)如果你要用,可能会用在什么地方 get方法不安全,可以加密,cookie存在本地,也可以加密,还可以做验证,判断摘要然后验证订单是否被篡改等

有没有用过redis和memcache

讲一下Hibernate以及延迟加载

Spring:有没有用过Spring,Spring IOC、AOP机制与实现,Spring MVC
  其实我挺不想被问到Spring的细节的,框架这些我都没有复习不太记得了。所以我对面试官说Spring里面的一些比较重要的机制我理解的还不错,然后我用一个实际的例子把我对IOC、AOP理解讲了一下,他听了说对,理解的不错(难得遇到一个边面试边能给反馈的面试官,好开心)

Spring MVC其实我用过,我就对面试官讲了我的项目中用到的Servlet,jsp和javabean实现的MVC,以及MVC各个模块职责以及每个模块是怎么联系到一起的,最后我补充了一句我想SpringMVC的思想其实跟这个是一样的(他说对的,嘿嘿有反馈真好)

有没有用过Hibernate、mybatis、git

spring有了解过吗?是否用过?用了spring后有什么感受?如果要自己实现控制反转,你准备怎么做?

IOC AOP源码,MVCC,Spring 传播级别

SpringMVC请求流程

事务的实现原理(redo+undo)

MVCC,引擎之间的区别

SSM原理

MySQL索引

缓存了解吗(无人应答)redis了解吗?redis是如何实现缓存的,是否了解memcache

Hive了解吗;

动态代理有几种,Jdk与Cglib区别

数据库引擎你认识几种,innodb 和myisam 区别,你的项目用到哪个引擎

若hashcode方法永远返回1会产生什么结果

开闭原则懂吗

AtomicInteger底层原理

CAS机制会出现什么问题

分布式理论懂多少,说一下(这里我说了CAP,Base,paxos)

RabbitMQ消息队列丢失消息,重复消费问题

Redis集群宕机,数据迁移问题

RPC说一下

说一下你对微服务的理解,与SOA的区别

7、写过脚本吗;

线程池,说一下线程池工作原理,任务拒接策略有哪几种

MVC机制,SpringMVC原理,三层结构;

集群;???

Spring整合ORM框架时,事务管理用哪个类?是Spring控制事务的提交还是ORM框架控制?同一事务中执行两个更新操作,它的工作原理是怎样的?

Hibernate框架的设计有什么不好的地方?

说说Struts2的工作原理?

你是怎么样实现分页显示的?具体原理怎么样?Hibernate的setMaxResults和setFirstResult内部是怎么实现分布查询的?

给你10万数据,20个线程,高并发访问,让你实现数据本身有序,多线程访问的时候也有序?怎么设计多线程

文件目录和文件夹及文件?如何查询一个文件夹中子目录最多的文件夹?(深度很深的情况呢)

Spring 了解吗 前置后置怎么实现?代理实现的几种方式?

linux命令:统计文件内容的行数,统计目录文件的个数,查询文件中的字符串,查看8080端口是否被占用,查看的那个进程占用情况,内存等。

  • Spring的IOC和AOP原理
  • SpringMVC的执行流程
  • MyBatis的执行流程,如何实现分页等

单例模式和注解单例模式区别

kafka分区

git完全撤销

控制反转

专治HR

先自我介绍一下,不要说简历上的东西了,说下你个性比较突出的地方
你做的这些项目是不是都是学校的?
你觉得学校的项目和公司里的差距在哪里?
关于你的科研工作,是团队还是你个人在做?我可以理解为你个人完成,老师给予指导吗?
关于你所说的专利,是你个人申请?还是学校老师一起?
对于第一份工作的选择,你比较看重什么?你对于今后的职业生涯是怎么规划和打算的?
关于刚刚的技术面试官,以后也有可能是你的同事或者主管,你印象如何?
你对于自己将来想从事的方向有没有什么想法?是想搞业务相关的,还是底层或者中间的技术?为什么想做业务这一块?
实验室对你们的实习时间有限制吗?
之前有投了别的公司吗?如果蘑菇街也给你发offer的话,你怎么选择?

说下未来的方向与规划;如果你发现有好多东西要学你工作完不成怎么办;如果你有问题自己各种方法都解决不了问别人问题别人不告诉你怎么办;如果你问别人问题别人说你很笨怎么办;如果有问题解决不了需要别人帮助但你发现大家都很忙怎么办;

复习重点

  每个人目标不一样,所以复习重点也不一样。我主要是Java后台开发的复习,所以我下面几个方面进行复习的。我复习基本放在9月份和国庆假期一共五周时间,除了算法每天都会做以外,其余的都是按照顺序来的。当然里面有很多知识的交集点,我会把他们联系在一起理解。

1、Java基础

Java核心技术 卷一、卷二(全部看完,重点章节重点看,看完可以在牛客网上刷题练练,正确率8/10以上不在话下)
周志明 深入理解Java虚拟机(我重点看了2、3、7、12、13这五章)
深入分析Java Web技术内幕(我只看了1、2、5-11章)
Java并发编程实战(这个是因为我简历上突出的重点,所以特意做了复习功课)

  只看书肯定不够,对于重点的知识点一定要实际写demo测试验证,而且对于很容易被问到的几个知识点最好也要看源代码加深自己的理解。毕竟书上都是别人写的,是别人的理解。

2、操作系统
  这个我是看的本科的时候的操作系统教材,重点掌握:

进程管理(进程状态、进程同步、进程线程区别、进程调度)
经典的同步问题(生产者消费者、哲学家进餐、读者写着)
死锁的产生原因、必要条件、预防死锁的方法、死锁的检测与解除
存储器管理(分页、分段、段页式)
虚拟存储器(请求分页,页面置换算法)

3、计算机网络

OSI七层模型、TCP/IP四层模型,每层作用和有哪些协议
网络访问层——帧的格式
网络层协议——IP、ARP、RIP、BGP、IPv4和IPv6区别
传输层协议——UDP、TCP(流与分段、滑窗、连接、流量控制、重新发送、堵塞控制)
应用层协议——DNS、HTTP(格式、请求方法、状态码)

4、数据库
  看的本科教材,主要复习了基本sql语句、数据库引擎、索引实现、事务、隔离级别、sql优化。

5、算法数据结构
  刷题!我刷完了剑指offer上的题和LeetCode上所有easy的题,差不多100多道吧,大部分都很简单,刷完基本实习面试差不多没什么问题了。但是对于很重要的算法我会去看算法导论里面对应的章节扩充一下。虽然实习我不打算再找了,但刷题的节奏不能停呀,嘿嘿。

6、其他

这个就根据个人简历上所提到的技能进行复习啦,因为我写了熟悉设计模式,所以这一块就要着重复习,主要是设计模式的实现思路、为什么要用、优缺点、jdk里面哪些用到了、多线程下怎么用(这个也是因为我简历里说理解多线程并发,所以也要结合着来准备复习的点),设计模式的复习推荐我的老师——伟帅的博客。

关于书籍和网站,《深入了解JAVA虚拟机》周志明版本的,《Java并发编程实战》Brian Goetz版本,进阶书籍《Effective Java》小黄书,《Think in java》。牛客网和LeetCode,刷算法可以去牛客网搜索《剑指offer》当然也可以买这本书。

标签: none

添加新评论