- 博客(28)
- 资源 (9)
- 收藏
- 关注
原创 MySQL中MVCC的使用及原理详解
MySQL数据库默认隔离级别:RR可重复读MVCC只适用于RC、RR隔离级别;1)RC:读取提交的内容,可避免发生脏读。也就是事务只能看到已经提交事务所作的改变,支持不可重复读;2)RR:可重读;可避免脏读、不可重复读的发生;1、MVCCmulti-version concurrency Control多版本并发控制,乐观锁的实现方式;适用范围广泛;通过保存数据在某个时间点的快...
2019-08-30 17:02:12 1012
原创 Java阿里+美团一面问题总结-8.30
阿里一面1、首先讲自己的项目,项目的主要功能;流程设计;打分的原理,怎么保证这个分值较为准确;1)首先进行阈值测量,看我的阈值设置多少范围;2)根据阈值进行打分;距离计算以及时间计算的原理;约束条件的考虑;相关算法进行实现描述和分析;遇到的难点有哪些;分配策略主要有哪些?贪心策略的任务分配具体讲一下,原理是什么?流程是什么?2、研三是否实习?3、HashMap和Ha...
2019-08-30 11:34:47 211
原创 二叉树镜像Java-剑指offer+二叉树插入节点
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。解题思路1、递归方法实现:先判断是否为空,或者左右节点为空,这种直接return;如果不为空直接左右节点交换,交换直接递归交换根节点的左节点,再递归交换根节点的右节点;直到遍历左右节点。2、栈的实现:利用栈的先进后出的特性进行实现。将根节点push到栈中,如果栈不为空,先pop根节点,然后进行交换;再遍历交换左节点,交换;再遍...
2019-08-29 15:56:00 167
原创 树的子结构Java-剑指offer
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路1、比较根节点val相同,则进行左右节点的比较:(如果b为空了,那直接输出true。如果a为空,b不为空,则输出false;如果两者不为null,比较节点值,再进行比较左右节点);2、如果根节点val不同,则进行比较a的根节点的左节点,递归比较;3、如果根节点val不同...
2019-08-29 15:17:01 115
原创 堆排序实现+分析
堆排序package pratice826;//堆排序-最小顶堆public class Main { public static void main(String[] args) { int nums[] = {16,7,3,20,17,8}; headsort(nums); for(int i=0;i<nums.leng...
2019-08-28 11:37:08 115
原创 Spring的IOC和AOP及数据库读写分离
详情:https://www.zhihu.com/tardis/sogou/art/58006579实现AOP技术:1)动态代理: 采用消息截取,对该消息进行装饰,以取代原对象行为的执行;2)静态织入:引入特定的语法创建方面,使得编译器可以编译期间织入有关的代码;例如biz层实现打印“你好”,其他类中用ref=”biz.*”,就可以实现打印;Spring优点:降低组件耦合,...
2019-08-28 11:36:12 248
原创 拼多多一面、二面-Java工程师
1、自我介绍2、自己的项目进行介绍3、MySQL的作用和机制4、数据库事务特性、每一个细问、四种隔离类型,每个类型对应的作用脏读是什么?哪些可以避免脏读?幻读是什么?哪些可以避免换的?5、两个系统的事务怎么进行通信的,例如工商银行和农业银行进行两个事务的通信?分布式事务处理:1)全局消息;2)基于可靠消息事务服务;3)最大通知;银行,基于可靠消息服务实现细节:通...
2019-08-27 17:51:17 1081
转载 java项目缓存技术
https://blog.csdn.net/baidu_33497625/article/details/50801571一、什么是缓存1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache二、缓存的分类1、基于web应用的系统架构图...
2019-08-27 14:31:19 1629
原创 Java项目中使用Redis缓存解析、与MySQL和MongoDB对比
1、Redis先缓存中取数据,如果换成没有就去数据库取数据,然后数据也存入缓存中。(service层实现)如果进行修改和删除数据,缓存同步: 删除缓存,处理数据,数据放入缓存;1)常用命令连接操作命令:quit关闭连接;auth:简单密码验证;help cmd:查看帮助持久化:save:数据同步保存到磁盘;bgsave:数据异步保存到磁盘;shutdown:同步保存到磁盘...
2019-08-27 10:36:34 920
原创 数据库事务特性和隔离级别-详情解析
1、数据库事务的四大特性ACID支持事务的数据库必须有这四大特性,否则不能保证数据的正确性。原子性Atomicity:事务内所有操作共同组成原子包;要么全部成功,要么全部失败,保存特殊因素导致数据库宕机,仍然正确。 一致性Consistency:事务执行前后都必须处于一致性状态;一致性基于原子性,原子性保证一个事务内的所有操作同一性,但是如果事务提交一半,会不会有中间结果呢?为了防止这样...
2019-08-26 21:51:33 164
转载 select和epoll区别和概述
1、select调用select发生以下事情:1)从用户空间拷贝fd_set到内核空间;2)注册回调函数_pollwait;3)遍历所有的fd,对全部指定的设备做一次poll(poll指一个文件操作,有两个参数,一个是文件fd本身,一个是当设备尚未就绪时调用的回调函数,这个函数将设备自己特有的等待队列传给内核,让内核把当前进程挂载到其中)。4)设备就绪就唤醒自己特有等待队列中的...
2019-08-26 21:27:55 261
原创 Java常见知识点总结-8.15
整体以我的项目:任务分配策略管理系统为例1、web项目用到的技术栈、主要负责的内容作为项目负责人,一直跟踪项目的需求分析、原型设计、系统设计开发、测试、迭代开发以及算法研究和实现;然后前端使用了BootStrap,使用Eclipse进行开发,使用了框架SpringMVC但是可能用的较浅,还在进行深入了解。然后用到了多线程(多个用户进行任务执行,例如同时执行一个任务,那这时候,任务所...
2019-08-15 17:50:54 150
原创 高并发性能调优
原来写了一些关于性能优化的,这次根据新学习的知识做一些补充。首先看一下牛客给的答案:1、提高CPU并发计算能力(1)多进程&多线程(2)减少进程切换,使用线程,考虑进程绑定CPU(3)减少使用不必要的锁,考虑无锁编程(4)考虑进程优先级(5)关注系统负载2、改进I/O模型(1)DMA技术(2)异步I/O(3)改进多路I/O就绪通知策略,epoll...
2019-08-14 16:15:12 433
原创 Socket的三种通信模型-BIO、NIO和AIO
1、BIO编程一个连接一个线程1)传统的BIO编程网络编程的基本模型是C/S模型,即两个进程间的通信;HTTP请求之后,进行域名解析、三次握手建立连接、连接成功之后,套接字进行通信;传统的就是同步阻塞,双方是输入和输出流同步阻塞通信;通常由一个独立的Acceptor线程负责监听客户端的连接,接收客户端请求之后为每个客户端建立新线程进行链路处理,通过输出流返回给客户端,然后再...
2019-08-14 12:57:47 5028
转载 排序算法总结分析-Java
十大排序算法Java实现https://blog.csdn.net/dp_dp/article/details/80543290
2019-08-13 20:46:15 135
转载 BTree和B+Tree详解
一直理不清楚,今日详细学习一下!B+索引是B+树在数据库中的一种实现,最为常见的。B+树种的B代表平衡,而不是二叉。1、二叉查找树二叉树的左子树的键值小于根的键值,右子树的键值大于根的键值。二叉查找树可以任意构造,但是可能有些构造情况可能导致查找效率低。如果想让二叉树查询效率尽可能的高,需要二叉树是平衡的,所以有AVL平衡二叉树。2、平衡二叉树AVL Tree符合...
2019-08-13 15:52:42 1046
原创 总结一些问题并进行解析-Java基础
1、介绍项目,你的难点和解决方式这个就自己琢磨吧2、hashmap底层实现?有哪些是线程安全的?当冲突的时候怎么解决?当hash值相同时,怎么进行比较?JDK1.7以及之前,是数组+链表;JDK1.8及以后就是数组+链表+红黑树;这里就可能引入红黑树的特点:平衡多叉树,根为黑色,叶子为黑色,查找快速,但是删除和插入有些麻烦,例如没有父节点的插入就直接插入,如果想插入为红色,父节点需...
2019-08-12 00:53:52 109
转载 线程池的重要参数说明
1、ThreadPoolExecutor的重要参数1)corePoolSize核心线程数核心线程一直存活,即使没有任务需要执行。当线程数小于核心线程数时,即使线程空闲,线程池也会优先创建新线程处理;2)queueCapactiy任务队列容量(阻塞队列)当核心线程数达到最大时,新任务会放在队列中排队等待执行;3)maxPoolSize最大线程数当前线程数>=corePo...
2019-08-10 17:30:59 440
转载 手写生产者/消费者模式(三种实现方式)
生产者消费者模式需要满足:1)生产者生产数据到缓冲区中,消费者从缓冲区中取数据;2)缓冲区蛮,生产者线程阻塞;3)缓冲区为空,消费者线程阻塞;分析1)定义缓存队列,选择一个集合当作缓存,给与缓存上线,缓存队列只有两种行为(生产数据和消费数据)。2)定义生产者线程,调用缓存队列中的生产行为;3)定义消费者线程,调用缓存队列中的消费者行为第一种方式:双向链表Link...
2019-08-10 16:13:00 681 1
原创 TreeMap实现原理
实现了SortedMap接口,是一个有序的集合,是一个红黑树接口,每个key-vlaue作为红黑树的节点,没有指定顺序则是根据key执行自然排序。1、继承了AbstractMap类,实现了接口implements NavigableMap<K,V>, Cloneable, java.io.Serializable可以自然排序,可以定制排序,Entry root = nul...
2019-08-10 15:04:10 422
原创 Java反射机制
1、什么是反射机制反射就是运行状态中,对于任何一个类,都能知道类的方法和属性,并且能够调用。这种动态获取对象信息和调用对象方法的功能称之为反射。所谓反射就是获取类得字节码文件,也就是.class文件。2、反射的获取字节码的三种方式1)Class c = t.getClass(); 返回t对象的运行时类;这个方法时Object的一个方法,继承了Object,所以直接使用;2)Clas...
2019-08-07 16:32:11 108
原创 Java常见的问题总结
1、HashMap根据键进行存储数据,快速访问遍历,取得数据完全随机。不支持线程同步。同一时刻可以有多个线程同时写HashMap,可能导致数据不一致。如果需要同步,可以使用Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。2、Volatile保证有序性和可见性。编译器和CPU会做重排序,重排序是为了减少...
2019-08-07 11:39:35 452
原创 Java中static关键词的解析
方便在没有对象的情况下进行调用方法或者变量。1、static方法没有this,static方法内部不能调用非静态方法。不依赖对象,依赖类。可以通过类名调用。而非静态方法和非静态成员都是依赖具体对象才能被调用。2、static变量静态变量被所有对象共享,在内存中只有一个副本,当且仅当类初次加载时会被初始化。而非静态变量是对象所拥有,创建对象的时候被初始化,存在多个副本,各个对象拥有的...
2019-08-06 11:42:13 88
原创 Java后台返回复杂数据、大数据给前端分析
一个网页同时返回大量格式长短不同的数据。后台角度:数据具有相同接口,通过网址链接请求,服务器数据库种获取相应的数据,进行整理在一个json或其他格式返回到当前页面。具体:1)依据需求文档,接口文档,数据库获取原数据在后台存储;后台获取json,json与String、ArrayList等数据格式转换。2)分析需求,数据转存味hashmap或arraylist方便一起传输。3)组合为一个字符...
2019-08-04 15:22:40 1725
原创 组件化和模块化总结
模块:主要是业务模块,单指业务。按照项目的业务拆分,例如,用户模块、首页模块、商城模块、电影模块等。组件:主要对功能的封装,一个功能就是一个组件,Io\数据库\网络都是功能组件。基础功能组件、通用UI组件、基础业务组件。例如,基础组件的登录组件、地图组件、支付组件、直播组件、IM组件。然后业务组件有:电影组件、首页组件、我的组件、商城组件等。模块之间需要考虑,模块之间页面跳转、数据传递、初...
2019-08-04 14:47:45 352
原创 进程和线程区别及通信方式总结-Java 基础
进程:资源分配的基本单位,切换耗费资源多,操作系统含多个进程,进程含多个线程。分配不同内存空间。线程:调度执行的基本单位,切换快速,共享地址空间,通信方便。资源利用率好,需要考虑互斥与同步;同一类线程共享代码和数据空间,但是有独立运行栈和程序计数器。不给分配空间,除了cpu,共享资源。通信方式1、线程共享地址1)锁机制,互斥锁(排他,防止并发修改)、条件变量(以原子方式阻塞进程,直...
2019-08-04 11:39:29 860
转载 web前端性能优化方法总结、移动页面性能优化-超级全面
web性能优化的具体方法(way)一)内容层面1、DNS解析优化(DNS缓存、减少DNS查找、keep-alive、适当的主机域名) 2、避免重定向(/还是需要的) 3、切分到多个域名 4、杜绝404二)网络传输阶段1、减少传输过程中实体的大小 1)缓存 2)cookie优化 3)文件压缩(Accept-Encoding:g-zip)...
2019-08-04 10:58:16 228
转载 Http与HTTPs的区别?
1、http协议用于客户端与服务端通信;无状态:不保存请求和响应信息,每次来请求都是新的。虽然http是无状态协议,但是为了实现保持状态功能,引入了Cookie技术,可以用来管理状态。Get:用来请求已被URL识别的指定资源,指定资源被服务端解析后返回相应的内容;Post:用来传输实体主体;get也可以,但是一般不用;Put:传输文件:要求请求报文的主体包含文件的内容,然后保存...
2019-08-03 22:10:09 123
APP开发技术解决方案模板
2019-02-17
android-support-4.0.jar.
2017-11-06
mysql-connector-java-5.0.8-bin
2017-10-17
servlet-api.jar(tomcat7.0)
2017-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人