
面试
文章平均质量分 93
harryptter
这个作者很懒,什么都没留下…
展开
-
java 并发AQS 理解
但是,通过在节点中显式地维护前驱节点,CLH 锁就可以处理“超时”和各种形式的“取消”:如果一个节点的前驱节点取消了,这个节点就可以滑动去使用前面一个节点的状态字段。AQS 中显式的维护前驱节点和后继节点,需要释放锁的节点会显式通知下一个节点解除阻塞,如下图所示,T1 释放锁后主动唤醒 T2,使 T2 检测到锁已释放,获取锁成功。其次锁状态去中心化,让每个线程在不同的状态变量中自旋,这样当一个线程释放它的锁时,只能使其后续线程的高速缓存失效,缩小了影响范围,从而减少了 CPU 的开销。原创 2023-10-13 17:24:04 · 223 阅读 · 0 评论 -
java 面试基础 全面解读Java异常
转载自:https://blog.youkuaiyun.com/a724888/article/details/80114720目录为什么要使用异常异常基本定义异常体系初识异常异常和错误异常的处理方式纠结的finallythrow : JRE也使用的关键字异常调用链异常的链化自定义异常异常的注意事项当finally遇上return本文非常详尽地介绍了...转载 2019-02-22 11:26:30 · 237 阅读 · 0 评论 -
HashMap在Java1.7与1.8中的区别
转载自:https://blog.youkuaiyun.com/jek123456/article/details/73869203基于JDK1.7.0_80与JDK1.8.0_66做的分析JDK1.7中使用一个Entry数组来存储数据,但是这个Entry是链表结构,如果插入的key的hashcode相同(hash collision),那么这些key会被定位到Entry数组的同一个格子里,这些k...转载 2019-02-17 11:14:54 · 340 阅读 · 0 评论 -
java 常考面试基础 代码块与代码加载顺序 static
在面试大型公司时,如果遇到大型国企或者大的互联网私企,笔试中经常遇到代码块和代码加载顺序的笔试题。这里做一个总结,也方便各位小伙伴不晕车。源码github地址:https://github.com/harrypitter/JavaBase.git部分转载自:https://blog.youkuaiyun.com/a724888/article/details/80069472目录简介局部代...原创 2019-02-22 14:51:07 · 1369 阅读 · 0 评论 -
java 面试基础 final 关键字
转载自:https://blog.youkuaiyun.com/a724888/article/details/80048792源码地址github:https://github.com/harrypitter/JavaBase.gitfinal关键字可以修饰类、方法和引用。修饰类,该类不能被继承。并且这个类的对象在堆中分配内存后地址不可变。修饰方法,方法不能被子类重写。修饰引用,引用无法改变...转载 2019-02-22 15:53:02 · 143 阅读 · 0 评论 -
mysql explain 执行计划
目录参数意义 idselect_typetabletypepossible_keyskeyrowsfilteredmysql Sql语句优化中,通过慢日志这种方式是比较常用的一种方式,这里总结下。在大数据量的mysql查询中,有时候通过不同的sql语句,查询的时间差别很大,这其中就引申出来了sql语句优化的问题。我这边导入测试数据参照之前的博文:my...原创 2019-02-17 16:05:55 · 354 阅读 · 0 评论 -
java 面试高频问题 java8新特性
之前面试几家公司,很频繁的问到了java8新特性的问题。这里总结一下:部分转载于java8新特性目录1.介绍2.Java语言新特性2.1 Lambda表达式2.2 接口的默认方法与静态方法 2.3 方法引用2.4 重复注解2.5 更好的类型推测机制2.6 扩展注解的支持3. Java编译器的新特性3.1 参数名字4. Java 类库的新特性4...转载 2019-02-13 13:24:07 · 10912 阅读 · 1 评论 -
深入理解Java中的字段与属性的区别
https://blog.youkuaiyun.com/chenchunlin526/article/details/71424844深入理解Java中的字段与属性的区别1、Java中的属性和字段有什么区别? 答:Java中的属性(property),通常可以理解为get和set方法。而字段(field),通常叫做“类成员”,或 "类成员变量”,有时也叫“域”,理解为“数据成员”,用来承载数据的。...转载 2019-02-20 10:38:00 · 314 阅读 · 0 评论 -
Spring RestTemplate详解
转载自:https://www.cnblogs.com/hfultrastrong/p/8537005.html目录1、什么是REST?2、REST成熟度的四个层次3、HTTP请求的方法4、HTTP请求的状态码5、RestTemplate5.1 简介5.2 对外开放的接口(2)每一个小类又分三种,这三种有什么区别?(3)Exchange(4)excute...转载 2019-03-06 11:02:00 · 538 阅读 · 0 评论 -
SpringCloud——Feign实例及原理
转载自:https://blog.youkuaiyun.com/u010066934/article/details/80967709一、实例1、配置feign添加依赖在maven的pom中添加feign <dependency> <groupId>org.springframework.cloud</groupId> ...转载 2019-03-06 11:52:34 · 734 阅读 · 0 评论 -
java基础面试 集合框架梳理
在java面试中,集合是必面的内容,所以这里整理了大致的框架图,方便复习。转载自:https://blog.youkuaiyun.com/a724888/article/details/80215706目录集合图Collection接口List接口2.1、ArrayList2.2、LinkedList2.3、Vector 2.4、Stack Set接口3.1、Enu...转载 2019-02-22 10:19:44 · 310 阅读 · 0 评论 -
mysql innodb事务和锁详解
mysql 当使用innodb时候,是支持事务和行级锁的,本篇作为自己理解的一个梳理。目录简介事务的ACID特性:mysql开启事务的方法事务并发可能会遇到的问题:1.赃读2.幻读3.不可重复读数据库的隔离级别mySql中的锁一次封锁or两段锁 行锁分类:共享锁(S锁),排他锁(X锁)表锁分类:意向共享锁(IS),意向排它锁(IX),自增锁(AU...原创 2019-02-15 17:10:06 · 567 阅读 · 0 评论 -
Java-线程池专题
转载自:https://www.cnblogs.com/aspirant/p/6920418.html1、什么是线程池: java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 ...转载 2018-11-29 11:37:06 · 193 阅读 · 0 评论 -
乐观锁和悲观锁
转载自:https://www.cnblogs.com/qjjazry/p/6581568.html首先介绍一些乐观锁与悲观锁: 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的...转载 2018-11-29 14:42:20 · 163 阅读 · 0 评论 -
Java中的锁
转载自:https://blog.youkuaiyun.com/u013256816/article/details/51204385在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等待。这里整理了Java中的各种锁,若有不足之处希望大家在下方留言探讨。WARNING:本文适合有一定JAVA基础的同学阅读。公...转载 2018-11-29 14:54:41 · 160 阅读 · 0 评论 -
深入理解JVM类加载机制
深入理解JVM类加载机制转载自:https://blog.youkuaiyun.com/a724888/article/details/78396462简述:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。下面我们具体来看类加载的过程:类的生命周期 类从被加载到内存中开始,到卸载出...转载 2018-12-20 09:40:35 · 379 阅读 · 0 评论 -
父类声明子类实例化以及重载,重写的一些问题
最近面试碰到一道父类子类的面试题:public class SuperClass { public int a; public SuperClass(){ a=1; System.out.println("a is"+a); } public int getA(){ return a; }}pub...原创 2018-12-26 15:41:16 · 665 阅读 · 0 评论 -
剑指offer 面试题2之单例模式实现
在应聘比较知名的IT或者互联网企业的时候,不管是高级还是中初级工程师都会有很大几率遇到笔试,笔试内容主要就是考察基础了,而且在面试的时候也经常会让手写算法的时候,这部分内容的准备可以刷下剑指offer和leetcode,我这边主要是java,之前看的剑指offer主要是用c++实现的,这边就用java把剑指offer里面的面试题大部分都实现一下。面试题二:实现单例模式不推荐的解法一,单线程...原创 2019-01-26 10:04:22 · 285 阅读 · 0 评论 -
剑指offer 面试题3 二维数查找 java实现
面试题3:题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束:如果该数字大于要查找的数字,剔除这个数字所在的列:如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的...原创 2019-01-26 20:59:13 · 224 阅读 · 1 评论 -
剑指offer,面试题04,替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”最原始的思路是直接对字符串进行顺序扫描,然后再找到空格的地方,进行替换并移动之后的字符,但是这样的话时间复杂度就是O(n2)。书上提供的一种思路是,先计算需要替换的有多少处,这样就能得到新建的char数组的大小了,然后,在老的char数组和新的char...原创 2019-01-27 00:00:55 · 166 阅读 · 0 评论 -
剑指offer 面试题05
题目:输入个链表的头结点,从尾到头反过来打印出每个结点的值。一般来说翻转过来打印链表中的值,应该不允许修改原链表的内容,由于顺序读取数据,打印是从尾到头,有种后进先出的感觉,很容易就能想到通过栈的方法来实现。再引申一步,递归实际上也是一个栈的思想,所以也可以通过递归的方式来实现。下面是代码:package partOne;import java.util.Stack;pu...原创 2019-01-27 01:09:17 · 194 阅读 · 0 评论 -
java中创建线程的三种方法以及区别
转载自:https://www.cnblogs.com/3s540/p/7172146.htmlJava使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用三种方式来创建线程,如下所示:1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程下面让我们分别来看看这三种创建线程的方法...转载 2018-11-29 11:25:26 · 129 阅读 · 0 评论