- 博客(46)
- 收藏
- 关注
原创 kafka高级特性
1.零拷贝https://blog.csdn.net/weixin_42641909/article/details/892549862.消息事务:三种级别:最多一次,最少一次(默认),精确一次https://blog.csdn.net/alex_xfboy/article/details/82988259...
2019-08-30 15:19:34 325
原创 常见面试题
1.SpringMVC执行流程:https://blog.csdn.net/weixin_40096176/article/details/806519002.http请求流程:DNS解析发起tcp三次握手,并建立tcp连接发起http请求服务器相应http请求并得到html代码服务器解析html代码并对页面进行渲染然后返回给用户3.Spring bean的生命周期...
2019-08-30 11:43:49 167
原创 java垃圾收集器
1.serial收集器:使用复制算法的新生代收集器,最简单的垃圾收集器,单线程收集器,单线程进行收集工作,在进行垃圾收集时会stop the world2.ParNew收集器:使用复制算法的新生代收集器,serial收集器的多线程版本,多线程进行收集工作,唯一可以与CMS(老年代)收集器配合使用的收集器。3.CMS(currrent mark sweep)收集器:以获得最短回收...
2019-08-29 20:30:43 140
原创 java面向对象的理解
1.面向对象的含义与面向对象和面向过程的区别。2.面向对象的三大特征为:封装、继承和多态,及其理解:封装:把自己内部的实现细节进行隐藏,只暴露对外的接口继承:实现代码的复用以及扩展,子类通过对父类代码的复用多态:当把不同的子类对象都当做父类类型来看待,可以屏蔽不同子类对象之间的实现差异,从而写出通用的代码达到通用编程,以适应需求的不断变化。...
2019-08-27 10:01:13 129
原创 sx
相关博客:es:https://blog.csdn.net/zereao/article/details/90240288https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.htmlsso:http://www.imooc.com/article/3555文本编辑:https://blog....
2019-08-14 16:50:05 176
转载 javaweb编程中filter和spring中拦截器的区别
filter作为javaweb中的三大组件之一(servlet,filter,listener),拥有和Spring拦截器类似的功能,都是AOP思想的体现,但是又有许多不同之处。过滤器和拦截器的区别: ①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。 ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 ③拦截器只能对action请求起作用,而过滤器则...
2019-04-02 15:58:53 208
原创 java线程的生命周期
线程可以分为4个状态:New(新生),Runnable(可运行):为了方便分析,还可将其分为:Runnable与Running。blocked(被阻塞),Dead(死亡)。具体状态变化如下图,其中状态的改变都可以利用Thread类的方法进行控制,其中一些方法可能会导致安全问题(如,stop()),图中所示方法较为安全。需要关注的是线程等待和睡眠是不一样的,具体对应sleep()...
2019-04-01 17:26:58 162
原创 servlet工作流程
如图所示即为Servlet的一般工作流程。流程如下:1)Web客户向Servlet容器(tomcat)发出Http请求;2)Servlet容器解析Web客户的Http请求;3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;4)Servlet容器创建一个HttpResponse对象;5)Servlet容器调用HttpSer...
2019-04-01 16:48:13 8797
原创 利用PriorityQueue实现最大最小堆
这是在刷剑指offer--“数据流中的中位数”一题中所遇到的问题,该题需要实现一个最大堆,一个最小堆。实现方法如下:PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>(); //小顶堆,默认容量为11PriorityQueue<Integer> maxHeap = new Prior...
2019-03-28 15:54:33 730
转载 数据库使用时的问题
1.为什么要用批量插入:一般来说有两种批量插入方式第一种:使用事务控制,在service层控制进行循环修改。容易想到,容易操作,但是要发送多次sql请求,浪费时间和性能。第二种:mybatis动态sql语句进行批量修改。一次性把要执行的sql语句发给数据库,大量提示性能,推荐使用。一般用mybatis的foreach语句实现...
2019-03-28 15:45:09 192
转载 约瑟夫环的推导
转自:https://blog.csdn.net/yanweibujian/article/details/50876631这篇博客间的很深入浅出。先来看这个类型的某个题目描述:约瑟夫生者死者游戏约瑟夫游戏的大意:30个游客同乘一条船,因为严重超载, 加上风浪大作,危险万分。因此船长告诉乘客,只有将全船 一半的旅客投入海中,其余人才能幸免于难。无奈,大家只 得同意这种办法,并议定3...
2019-03-26 17:41:55 336
原创 mybatis配合PageHelper和PageInfo实现分页
pageHelper分页的底层主要是通过 aop来实现,在执行sql之前会在sql语句中添加limit offset这两个参数。这样就完成了动态的分页。而利用PageInfo顾名思义,可以对PageHelper查询的结果进行封装以获得详细的分页查询结果。具体的实现过程可见:https://www.cnblogs.com/cksvsaaa/p/6036068.html...
2019-03-22 11:11:04 3214
原创 mysql索引
mysql的索引应该分为两方面来理解:1.存储引擎的索引方式:1.1聚簇索引:在《数据库原理》里面,对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,因此对于InnoDB来说,由于存储引擎的对于数据的存储方式就是一颗B+树,且是以主键的大小为页和记录的排序规则,叶子节点存储来表中所有的类(所有信息)。因此解释了聚簇索引的顺序就是数据的物理存储顺序。这种索引在应用中叫主键索...
2019-03-20 16:43:13 139
转载 常见面试问题--计算机基础
计算机基础一.线程状态有哪些,它们之间是如何转换的:1.初始状态实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态2.可运行状态可运行状态只是说你资格运行,调度程序没有挑选到你,你就永远是可运行状态。 调用线程的start()方法,此线程进入可运行状态。 当前线程sleep()方法结束,其他线程join()结束,等待用户输入...
2019-03-16 21:01:38 15184 1
原创 java中的锁
java中的锁与线程安全有着密切的关系,因此首先需要了解java中的线程安全。java中的线程安全主要有三种策略:1.阻塞同步(互斥同步):同步是指在多线程并发访问共享数据时,保证共享数据在同一时刻只能被一个线程使用。因此其他会出现线程的阻塞,而阻塞线程会在核心态和用户态之间相互切换,极大影响性能。2.非阻塞同步:为了解决互斥同步产生的问题,出现了基于冲突检测的乐观并发策略,通俗地说,...
2019-03-16 20:16:45 110
原创 线程与进程
线程:线程是程序的一条执行线索,执行路径,是程序使用cpu的最小单位。线程本身不能运行,它只能运行在程序中,线程是依赖于程序存在的。那么多线程的存在其实就是“最大限度的利用cpu资源”,当某一个线程的处理不需要占用cpu而之和I/O打交道的时候,让需要占用cpu资源的其他线程有机会获得cpu资源,因此也可以得出结论即当要处理io密集的工作时,应使用多线程。线程的实现与操作系统提供的内核线程...
2019-03-16 17:49:38 111
转载 cookie,session和token
cookie机制Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies 。具体来说cookie机制采用的是在客户端保持状态的方案。它是在用户端的会话状态的存贮机制,他需要用户打开客户端的co...
2019-03-16 14:22:51 128
转载 servlet 与HttpServletResponse
servlet简介见:https://blog.csdn.net/qq_39688352/article/details/76794973HttpServletResponse简介见:https://www.jianshu.com/p/8bc6b82403c5
2019-03-15 22:55:41 108
转载 排序算法的稳定性
分析一下常见的排序算法的稳定性,每个都给出简单的理由。 冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。 ...
2019-03-07 16:29:58 212
转载 java并发--自旋锁
自旋锁的优点自旋锁不会使线程状态发生切换,一直处于用户态,即线程一直都是active的;不会使线程进入阻塞状态,减少了不必要的上下文切换,执行速度快 非自旋锁在获取不到锁的时候会进入阻塞状态,从而进入内核态,当获取到锁的时候需要从内核态恢复,需要线程上下文切换。 (线程被阻塞后便进入内核(Linux)调度状态,这个会导致系统在用户态与内核态之间来回切换,严重影响锁的性能)自旋锁存在的问题...
2019-02-20 16:36:03 216
转载 java多态原理与分派
分派是java虚拟机在方法调用时使用的概念,也是实现java中能够实现多态的基础。详见:浅谈动态分派和静态分派深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派 转自:https://www.cnblogs.com/zhenlingcn/p/8539065.html https://blog.csdn.net/ns_code/article/d...
2019-02-18 17:02:39 153
转载 设计模式--单例设计模式
所谓单例,指的就是单实例,有且仅有一个类实例,这个单例不应该由人来控制,而应该由代码来限制,强制单例。详细可见:https://www.cnblogs.com/garryfu/p/7976546.html相关知识点参考(静态工厂:https://blog.csdn.net/hzy38324/article/details/72630415)...
2019-02-18 15:58:35 96
转载 MyISAM和InnoDB的区别
https://www.cnblogs.com/zhangchaoyang/articles/4214237.html
2018-12-28 14:07:34 101
原创 面试总结
1.TCP 安全性体现在哪些方面,采用了哪些机制?https://blog.csdn.net/xuzhangze/article/details/804903622.negal算法https://blog.csdn.net/sinat_35261315/article/details/793921163.发送大文件时客户端和服务端采取了什么机制?校验?4.socket 中 ...
2018-12-27 16:31:21 160
原创 jvm内存分配策略
1.对象优先在新生代的eden区分配,当空间不足时发起一次minorGC2.大对象(大字符串或数组,需要大连续空间储存的)直接进入老年代3.长期存活对象进入老年代(每个对象都有一个年龄计数器),有时对对象年龄不是设置静态的阈值,而是动态阈值,当survivor空间中的存在许多对象的年龄相同,且这些对象的数量占survivor空间中所有对象数量的一半,那么当大于这个年龄值则进入老年代。...
2018-12-25 21:06:39 248
原创 垃圾回收算法总结
在对对象进行回收操作之前首先需要对目标是否“死亡”进行判断,对于java语言来说,利用可达性分析来对对象进行判断。但是,尽管当对象不可达时,对象也并非立即被判死刑,其还需经历至少两次标记过程。*java的四种引用以及使用场景*堆的分代1.标记-清除算法最基础的gc算法,其首先标记所有需要回收的对象,在标记完成后统一回收,其效率不高且会产生大量空间碎片。2.复制算法将内存分为...
2018-12-25 20:56:25 124
原创 深入理解java虚拟机----一些细节及名词解释
1.字结码2.cas(compare and swap)3.元数组: 元数据就是用来定义数据的数据。
2018-11-18 21:11:48 155
原创 java 的 native 方法
1.概念:简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。2.使用步骤:Java程序中声明native修饰的方法,类似于...
2018-11-18 20:11:38 232
原创 Leetcode刷题中关于java的一些小问题
1.java 中一些经典数据结构的写法:Java Stack 类栈是Vector的一个子类,它实现了一个标准的后进先出的栈。EG:import java.util.*;Stack<Integer> st = new Stack<Integer>();队列:Queue<String> queue = new LinkedList<...
2018-11-18 19:17:56 481
转载 java核心技术----泛型
Java 泛型,你了解类型擦除吗?关于通配符的使用,涉及到数组的协变性:协变、逆变与不变:数组、泛型、与返回类型一个例子:利用反射绕过泛型的编译时检查,了解泛型的擦除(利用java反射机制绕过编译时的类型检查)...
2018-08-03 14:06:01 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人