自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

转载 【搞定面试】面经集合

vivo一面凉经1.手撕代码,二分查找,递归非递归2.java反射机制,优点缺点3.java线程同步,synchronized锁升级机制,synchronized lock区别4.项目,感觉最难的一点,怎么解决之类的5.看成绩单,问我成绩为什么比较差6.java public private protected default7.手撕代码,中序遍历,递归非递归8.学校的一堆事,什...

2019-05-19 18:31:22 665

转载 【搞定面试】Java篇-Java基础

一、Java基础1、为什么 Java 中只有值传递?术语解释:按值调用:表示方法接收的是调用者提供的值。即方法的得到的是变量的一份拷贝,而非原本的变量。按引用调用:表示方法接收的是调用者提供的变量地址。方法的得到的是原本的变量的引用。【答案】:Java程序设计语言只有按值调用。1)方法得到的是所有参数值的一个拷贝,方法不能修改传递给它的任何参数变量的内容。2)对对象采用的...

2019-05-10 12:27:26 222

转载 【剑指面试】第3章 数据库

关系型数据库主要考点架构部分是考察你对数据库有没有整体的了解。 索引部分和锁部分是最重点的考点 实用的工作中用到的语法。 数据库纯理论部分,如范式1的列不可再分,范式2的要有主键,范式3的去除传递依赖等等。1、如何设计一个关系型数据库?设计一个数据库,就跟设计一款软件差不多,也是将其分解成很多模块。此题主要考察面试者的模块划分能力以及对数据库的了解。1.1【答案】:...

2019-05-22 17:37:50 261

转载 【剑指面试】第11篇 SpringIOC

一、你了解Spring IoC吗1.1 IOC的概念参考自 :[Spring框架]Spring IOC的原理及详解。为了解决对象之间的耦合度过高的问题,软件专家Michael Mattson提出了IOC理论,用于实现对象之间的“解耦”。IoC(Inversion of Control):控制反转(是把传统上由程序代码直接操控的对象的生成交给了容器来实现, 通过容器来实现对象组件的...

2019-05-22 14:37:08 332

转载 Spring系列之依赖注入的三种方式

目录一、依赖注入方式1.使用属性的setXXX方法注入2.构造函数注入(1)按类型匹配入参type(2)按索引匹配入参index(3)联合使用类型和索引匹配入参[type和index一起使用] 有时需要联合使用type和index才能确定匹配项和构造函数入参的对应关系,看下面的代码。二、依赖注入的本质就是装配——自动装配:spring可以使用xml和注解来进行...

2019-05-22 10:13:39 11517 7

转载 【剑指java面试系列】第11篇-1 Spring Bean

目录一、Spring Bean1.1面:谈谈Spring Bean的5个作用域?1.2面:Spring bean的生命周期一、Spring Bean1.1面:谈谈Spring Bean的5个作用域?作用域:用于确定Spring创建Bean的实例个数。Spring bean支持5种scope,默认是Singleton。Singleton:每一个Spri...

2019-05-21 15:22:53 694

转载 【springBoot视频学习】综

1.微服务:一个项目 可以由多个 小型服务构成(微服务)2.spring boot可以快速开发 微服务模块 【一个springboot就是一个小服务,用spring cloud连起来】 a.简化j2ee开发 b.可以进行整个spring技术栈的整合(整合springmvc spring) c.可以进行整个j2ee技术的整合(整合mybatis redis)...

2019-05-20 23:51:53 277

转载 【搞定Java基础-集合】JDK1.7 HashMap 在高并发下引起的死循环

目录一、resize()简介二、正常的 resize 过程 【其实就是每次先把next存下,然后对e(当前节点)重hash】三、并发下的 resize总结与JDK 8 的改进为什么线程不安全转载自:https://www.jianshu.com/p/619a8efcf589一、resize()简介新建一个更大尺寸的 hash 表,然后把数据从老的 Hash 表中迁移...

2019-05-19 23:09:52 1016

转载 【Java基础】回调函数

目录一、定义二、举例【观察者模式】转载自:https://www.jianshu.com/p/b8a271728638一、定义回调的意义在于,通过在其他对象中调用自身类中定义的函数,达到一定的目的(常见于事件注册,监听以及线程Runnable中的run)。 回调函数定义: 传递一个函数A到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名...

2019-05-19 20:39:45 211

转载 HashMap的插入和查找的理想复杂度为O(1)

hashmap容器O(1)的查找时间复杂度只是其理想的状态,而这种理想状态需要由java设计者去保证 在由设计者保证了链表长度尽可能短的前提下,由于利用了数组结构,使得key的查找在O(1)时间内完成 可以将hashmap分成两部分来看待,hash和map。map只是实现了键值对的存储,也就是以上查询步骤的第4步。而其整个O(1)的查找复杂度很大程度上是由hash来保证的。 hashmap对...

2019-05-19 07:59:53 2775

原创 【搞定Java基础-集合】第十篇:Java 集合类总结篇

目录序言:Collection一、List 总结篇1、List 接口描述2、使用场景3、区别3.1Aarraylist 和 Linkedlist3.2 Vector 和 ArrayList 的区别二、Map 总结篇2.0 HashMap 和TreeMap的不同点2.1、Map 概述2.2、内部哈希:哈希映射技术2.3 Map 优化2....

2019-05-18 23:14:38 466

转载 【搞定Java基础】Java中的序列化和反序列化

结合自http://swiftlet.net/archives/1268,https://baijiahao.baidu.com/s?id=1622011683975285944&wfr=spider&for=pc众所周知,类的对象会随着程序的终止而被垃圾收集器销毁。如果要在不重新创建对象的情况下调用该类,该怎么做?这就可以通过序列化将数据转换为字节流。对象序列化是一...

2019-05-18 15:52:40 187

转载 【搞定Java基础-集合】第九篇:Java 集合类细节精讲

本文主要讲述 Java 集合类中的一些细节。主要包括:指定集合的初始容量、asList 的缺陷、subList 的缺陷 和 保持 compareTo 和 equals 的同步。1、请为集合指定初始容量本部分内容转发自:http://cmsblogs.com/?p=1226集合是我们在 Java 编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容...

2019-05-17 21:53:22 183

转载 【搞定Java基础-集合】 第八篇:HashSet、TreeSet、LinkedHashSet

本文转发自:https://blog.csdn.net/a724888/article/details/80295328今天我们来探索一下HashSet,TreeSet与LinkedHashSet的基本原理与源码实现,由于这三个 Set 都是基于之前文章的三个 Map 进行实现的,所以推荐大家先看一下前面有关 Map 的文章,结合使用味道更佳。Collection 集合框架图1、H...

2019-05-17 17:58:12 167

转载 【搞定Java基础-集合】第七篇 TreeMap 和红黑树

目录1、红黑树简介2、TreeMap 的数据结构3、TreeMap 的 put() 方法3.1 红黑树增加节点一. 为根节点二. 父节点为黑色三. 若父节点 P 和 P 的兄弟节点 U 都为红色四. 若父节点 P 为红色,叔父节点 U 为黑色或者缺少,且新增节点 N 为 P 节点的右孩子五. 父节点 P 为红色,叔父节点 U 为黑色或者缺少,新增节点 N 为父...

2019-05-17 16:48:25 204

转载 【搞定Java基础-集合】第六篇:深入理解 LinkedHashMap 和 LRU 缓存

目录摘要:HashMap 和双向链表合二为一即是 LinkedHashMap友情提示1、LinkedHashMap 概述2、LinkedHashMap 在 JDK 中的定义2.1 类结构定义2.2 成员变量定义:增加了两个独有属性:双向链表头结点 header 和 迭代顺序标志位accessOrder【true=按访问顺序排序,false=按插入顺序排序(默认)...

2019-05-17 14:38:56 329

转载 -128的补码为什么是1000 0000

转载自https://www.cnblogs.com/flowerslip/p/5933833.html三.-128的补码为什么是1000 00008位二进制的原值表达范围为:-127至127共有256个组合序列 0000 0000 至1111 1111 。+128的原值在8位中是表达不出来的。下面从两个角度理解-128的补码为什么是1000 0000.(1)从补码的意义上去理解因为...

2019-05-17 11:13:31 4390 16

转载 【搞定Java基础-集合】第五篇:Iterator、fail-fast 机制与比较器 Comparator & Comparable

转载自:https://blog.csdn.net/pcwl1206/article/details/864938961、Iterator:Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构该部分内容参考自:http://cmsblogs.com/?p=1185迭代对于我们搞Java的来说绝对不陌生。我们...

2019-05-17 09:39:11 160

转载 【搞定Java基础-集合篇】第四篇 Java8-HashMap和ConCurrentHashMap

文章目录一、Java8-HashMap源码【2倍扩容】1.1 数据结构【数组+链表+红黑树,当链表元素超过了 8 个,会将链表转换为红黑树,降低查找的时间复杂度为 O(logN)。】【Java7: Entry,Java8 使用 Node来代表每个 HashMap 中的数据节点,,基本没有区别,都是 key,value,hash 和 next 这四个属性,不过,Node 只能用于链表的情况,红黑树的...

2019-05-15 22:43:01 392

转载 【搞定Java基础 - 集合篇】第三篇、源码Java7 -HashMap、HashTable、ConCurrentHashMap

文章目录一、java7-HashMap源码1.1 数据结构:hashMap :Entry数组+链表 【扩容后数组大小为当前的 2 倍。】1.2 put(K key, V value)添加数据,是插入表头,key 为 null,放到 table[0] 中,会modcount++1)当插入第一个元素的时候,需要先初始化数组大小,保证数组大小一定是 2 的 n 次方。2)求 key 的 hash 值3)...

2019-05-15 20:17:17 311

原创 【手撕算法】 双向链表

package test;import org.junit.Test;import java.util.Iterator;public class DoubleList<T> { int size; Node<T> head; Node<T> last; private static class Node<T...

2019-05-15 15:19:50 487

转载 【搞定Java基础-集合篇】第二篇 源码ArrayList、LinkedList和Vector的区别

文章目录1、ArrayList、LinkedList、HashMap中都有一个字段叫modCount(表示list结构上被修改的次数。)1.1 该字段被Iterator以及ListIterator的实现类所使用,如果该值被意外更改,Iterator或者ListIterator 将抛出ConcurrentModificationException异常一、ArrayList源码分析1.1 ArrayL...

2019-05-15 15:17:39 215

转载 【搞定Java基础 - 集合篇】第一篇:Java 集合框架梳理

目录1、Java 集合框架概览2、Collection 接口3、List 接口3.1、ArrayList3.2、LinkedList3.3、Vector3.4、Stack4、Set 接口3.1、EnumSet3.2、HashSet3.3. TreeSet4、Map4.1、HashMap4.2、TreeMap4.3、HashTa...

2019-05-15 15:16:19 180

转载 【搞定spring 原理分析】 第一篇 spring AOP实现原理

https://www.cnblogs.com/puyangsky/p/6218925.html目录代理模式代理类实现了被代理类的接口,同时与被代理类是组合关系。一、静态代理观察代码可以发现每一个代理类只能为一个接口服务,这样一来程序开发中必然会产生过多的代理,而且,所有的代理操作除了调用的方法不一样之外,其他的操作都一样,则此时肯定是重复代码。解决这一问题最好的做法是...

2019-05-14 11:39:12 130

转载 【搞定spring】视频课2 -AOP

1.使用注解实现事务(声明式事务),事务是针对数据库的[先导入jar包,再配置,再使用]目标:通过事务 使以下方法 要么全成功、要么全失败public void addStudent(){ //增加班级 //增加学生 //crdu}a. jar包spring-tx-4.3.9.RELEASEojdbc.jarcommons-dbcp.jar 连接池使用...

2019-05-14 11:25:37 676

转载 【搞定Spring】 视频课3-Spring开发Web项目 及 拆分Spring配置文件

Java程序在main里new ClassPathXmlApplicationContext1.Spring开发Web项目 及 拆分Spring配置文件a.Spring开发Web项目【因为web容器没有main入口,你也不知道会先使用哪个方法,你如果用一次,就new ClassPathXmlApplicationContext一次,肯定很不合适】 Web项目如何初始化Spr...

2019-05-14 11:25:07 162

转载 【搞定spring】视屏课1-IOC

2002 Rod Johnon <Expoer One-on-one j2eedevelopment and Design>Spring 2003 ,IOC AopSpring data,spring boot,spring cloud,spring framework ,spring socialIOC :控制反转 (DI:依赖注入)1.搭建Spring环境...

2019-05-13 21:10:42 233

转载 【从根上理解MySQL】第二章

这里写自定义目录标题mysql.server也是一个启动脚本,它会间接的调用mysqld_safe,在调用mysql.server时在后边指定start参数就可以启动服务器程序了localhost、127.0.0.1和0.0.0.0和本机IP的区别1) ps a 显示现行终端机下的所有程序,包括其他用户的程序。mysql.server也是一个启动脚本,它会间接的调用mysqld_safe,在调用...

2019-05-12 21:45:13 594

转载 【搞定网络】0.0.0.0和255.255.255.255和127.0.0.1

一、0.0.0.0严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。二、255.255.25...

2019-05-11 14:24:40 1579

转载 正向代理和反向代理

https://www.cnblogs.com/Anker/p/6056540.html

2019-05-06 15:41:50 181

转载 【搞定Java并发】 第10章 Executor框架

文章目录1、Executor 框架简介1.1、Executor 框架的两级调度模型1.2、Executor 框架的结构与成员1.2.1、Executor 框架的结构1.2.2、Executor 框架的成员1、ThreadPoolExecutor2.1、FixedThreadPool:创建固定线程数的线程池。【corePoolSize 和 maxiumPoolSize 都被设置nThreads。使用...

2019-05-06 14:34:03 197

转载 【搞定Java并发】第9章 线程池

Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来三个好处:降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行;提高现成的课管理性:线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可...

2019-05-05 21:07:32 181

转载 【搞定Java并发】2 Java内存模型详解

目录目录一、并发编程模型的两个关键问题二、理解Java内存区域与Java内存模型1.1、Java内存区域方法区(Method Area):堆(Java Heap):程序计数器(Program Counter Register):虚拟机栈(Java Virtual Machine Stacks):本地方法栈(Native Method Stacks):1...

2019-04-25 02:15:45 215

转载 【搞定Java并发】5.5 synchronized关键字

目录1、Synchronized的三种应用方式1.1、synchronized作用于实例方法1.2、synchronized作用于静态方法1.3、synchronized同步代码块2、synchronized底层语义原理2.1、理解Java对象头与Monitor2.2、synchronized代码块底层原理2.3、synchronized方法底层原理3、Java...

2019-04-25 01:22:06 141

转载 【搞定Java并发】第六章 Java并发容器和框架:阻塞队列和Fork/Join框架

Java中的阻塞队列 BlockingQueue 详解Fork/Join框架

2019-04-24 20:38:23 251

转载 【手撕代码】多个线程交替打印

目录方法一: 锁实现【推荐】:通过ReentrantLock和当前打印状态state(打印到哪了)方法二:使用 Lock / Condition + state实现:即 A打印后唤醒等待在conditionB上的B 线程-> B打印后唤醒等待在conditionC上的C线程->C打印后唤醒等待在conditionA上的A线程(和法一类似,只不过在获取锁后,又不该它打印时,它选择...

2019-04-23 01:30:45 264

转载 【搞定Java并发】5.4 读写锁 ReentrantReadWriteLock

转载自https://blog.csdn.net/pcwl1206/article/details/85012834目录1、ReentrantReadWriteLock读写锁的概述:读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。1.1 ReentrantReadWriteLock的特性1.2 ReentrantReadWriteLoc...

2019-04-20 15:21:04 237

转载 【搞定Java并发】5.3 重入锁 ReentrantLock

目录1、重入锁ReentrantLock的基本概念:支持重进入的锁,它表示该线程能够支持一个线程对资源的重复加锁。除此之外,重入锁还支持获取锁时的公平和非公平性选择。2、重入锁ReentrantLock的源码分析2.1 获取锁和释放锁(lock和unlock)调用默认无参构造器会将NonfairSync实例赋值给sync,此时锁是非公平锁,即Reentrant默认是非公平锁。...

2019-04-20 14:39:10 164

原创 【搞定Java并发】5.2 AQS

目录二、队列同步器AQS2.1 队列同步器的接口和示例2.2 对同步队列AQS的源码分析2.2.1 同步队列2.2.2 队列同步器AQS源码分析之独占模式1、独占式获取同步状态(不响应中断)主要逻辑是:首先调用自定义同步器实现的tryAcquire(intarg)方法,该方法保证线程安全的获取同步状态,如果失败则构造同步节点(独占式Node.EXCLUSIVE,同...

2019-04-19 22:26:18 126

转载 【搞定Java并发】 第五章 5.1 Java中的锁

目录1、Lock接口1.1 Lock的使用1.2 Lock接口提供的synchronized关键字不具备的主要特性:尝试非阻塞地获取锁,能被中断地获取锁、超时获取锁二、队列同步器AQS(AbstractQueuedSynchronizer(AQS))三、可重入锁:ReentrantLock四、读写锁:ReentrantReadWriteLock五、LockSupport...

2019-04-19 18:06:29 153

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除