面试总结
文章平均质量分 89
总结
Ang Ga Ga
Rush!投入/专注/我永远爱Java。
展开
-
Java 生产者-消费者模式的 3 种实现
Java 生产者-消费者模式的 3 种实现原创 2020-03-18 14:05:41 · 664 阅读 · 0 评论 -
Spring相关
Spring bean、AOP、MVC相关补充:1.依赖注入:依赖关系将被自动注入到它们的对象中去。2.Bean 对象的作用域 在Spring容器中管理Bean对象,可以声明时通过 scope 属性或相关注解指定其作用域,最常见是singleton【单例,全局唯一性】,prototype【每次获取都会创建新的对象,(Spring读取xml文件时...原创 2020-03-07 22:43:53 · 271 阅读 · 0 评论 -
Tomcat+Servlet 知识点总结
Tomcat、Servlet原创 2020-03-07 18:38:16 · 1089 阅读 · 0 评论 -
面向对象 / 抽象类 与 接口
面向对象基本特性、继承和组合有什么区别、使用场景、 抽象类和接口的区别、使用场景、jdk1.8 接口中的 default 方法有什么好处原创 2020-04-05 12:39:38 · 217 阅读 · 0 评论 -
Java BIO、NIO、AIO
BIO、NIO、AIO 总结原创 2020-04-06 17:41:25 · 1064 阅读 · 0 评论 -
春招复习 - ⑧大排序算法
冒泡排序、选择排序、插入排序1.直接插入2.折半插入3.希尔排序、快速排序1.原地排序 递归实现2.双路快排、归并排序、堆排序 以升序,从小到大 为例。一、冒泡排序思路:相邻的元素两两比较,如果后面的元素比前面的小,就需要交换,每遍历一次,就会有一个位置上会是正确的元素(比如第一次就是最大的元素到了末尾),所以是两层循环,需...原创 2020-04-08 10:22:22 · 158 阅读 · 0 评论 -
Spring 总结 IOC-Bean 的生命周期-循环依赖
文章目录一、 Bean 的实例化三种方式二、ApplicationContext 的三个常用实现类三、常见 IOC 注解分类@Resource 和 @Autowired 的区别四、Bean 的生命周期五、Spring 解决循环依赖六、.Bean 三级缓存的作用 控制反转(IOC)/依赖注入(DI) 和 AOP 面向切面编程是 Spring 的两大核心。 控制反转:本来,类A 依赖于类B,即类B 具有控制权,(因原创 2020-05-15 10:15:14 · 531 阅读 · 2 评论 -
Spring 总结 事务
文章目录一、 Spring 事务的支持有两种方式:1. 编程式事务(1) @Transactional 注解(2)TransactionDefinition 事务定义(3)PlatFromTranscationManager 事务管理器(4)TranscationStatus 事务状态2. 声明式事务(依靠AOP)3. 事务的传播行为 关系型数据库、某些消息队列等产品或中间件称为事务性资源,因为它们本身支持事务,也能够处理事务。 &nb原创 2020-05-15 09:37:14 · 273 阅读 · 0 评论 -
ArrayList 源码解读
ArrayList的一些字段: private static final long serialVersionUID = 8683452581122892189L;//默认容量 private static final int DEFAULT_CAPACITY = 10;//无参构造 或 传入长度为0 时,是空数组 private static final Object[...原创 2020-03-10 22:30:10 · 174 阅读 · 0 评论 -
搜索算法之深度优先搜索(盒子里放扑克牌 Java版超详解)
前情提要:【递归】这个难题中经常出现return,return的作用只有两个:1.返回指定类型的数据。2.直接结束方法的调用。如下所示:public void test8(){while (true){System.out.println(“ohh”);return;}深度优先搜索Depth First Search的思想——一条道走到黑,走到尽头再回退。回退的实...原创 2019-08-28 20:32:10 · 952 阅读 · 2 评论 -
TCP 三次握手 与 四次挥手
首先,TCP 是双向通信的,客户端和服务器双方都可以发信息。1.三次握手 在上图中:(1) Seq : 序列号,标记数据的顺序。 TCP 连接中每个数据字节都有一个编号,第一个字节的编号由本地随机产生。字节编号后就给报文指派序号,序列号 Seq 就是这个报文中第一个字节的编号。(2)ack : ...原创 2020-03-08 18:01:42 · 182 阅读 · 1 评论 -
HTTP 与 HTTPS 的区别
HTTPS=HTTP + 通信加密 + 证书 +完整性保护。 HTTP 与 HTTPS 相比具有以上缺点:明文传输(未加密),不能确定对方身份,没有校验完整性。 而 HTTPS (Secerty) 是将 HTTP 的部分接口用 SSL (Secerty ...原创 2020-03-08 13:57:52 · 608 阅读 · 0 评论 -
面向对象设计模式学习总结之工厂方法模式(Factory Method)
2020-03-01 工厂方法模式(Factory Method)一、把我能想到的写下来:1.工厂方法 工厂方法是把创建类实例封装成接口/抽象类,降低了耦合性。 以 《Head First》中的例子,订购Pizza: 首先,需要一个抽象类 PizzaS...原创 2020-03-01 15:27:30 · 206 阅读 · 0 评论 -
Java并发编程总结 [6] 并发包中的并发锁 原理剖析
一、把我能想到的写下来1.LockSupport 类 JUC中有个很重要的工具类 LockSupport 类,每个调用这个方法的线程会对应一个许可证。默认情况下,线程是没有这个许可证的。它提供 park() 和 unpark() 方法,在并发包中用于对线程进行阻塞。 park()方法:如果线程有许可证...原创 2020-02-29 19:39:26 · 195 阅读 · 0 评论 -
HTTP/TCP 常见问题复习
问题1. TCP、UDP协议对应的应用层协议:给出的答案:(改: 在传输层的 TCP 对应的应用层协议是:HTTP 超文本传输协议、FTP 文件传输协议SMTP 简单邮件传输协议Telnet 远程登录协议 在传输层的 UDP 对应的应用层协议是:DNS 域名解析协议、SNMP 简单网络...原创 2020-02-28 23:19:23 · 601 阅读 · 0 评论 -
POST和 GET 的区别(破解传言! 。)
https://tools.ietf.org/html/rfc2616#section-9.31.这是RFC中对于 GET 方法的描述: GET方法表示检索任何信息(作为实体),由Request-URI标识。 如果请求URI引用,对于数据生成过程,应将生成的数据作为响应中的实体返回,而不是流程,除...原创 2020-02-27 16:20:50 · 612 阅读 · 1 评论 -
Java并发编程总结 [5] 并发包中的并发List源码分析
一、把我能想到的写下来: 并发包中只有一个 List:CopyOnWriteArrayList,写时复制。对于数组的 增删改,都是通过先获取锁 ReetrantLock ,通过 ReetrantLock 的lock() 获取锁,保证只有一个线程对数组进行修改,然后 unlock() 方法将锁释放,该类中有个 object 类型的数组 array 。...原创 2020-02-26 19:37:22 · 166 阅读 · 0 评论 -
Java并发编程总结 [3] 并发包中的 ThreadLocalRandom 类原理解析
一、把我能想到的写下来 Java 中用于生成伪随机数(这里的 “伪” 是有规律的意思)的类:Random ,它的原理是这样的,有 种子 seed,(随机数生成的基准)每次通过旧种子,生成新种子,进而生成随机数,如果没有传入参数,将以当前时间作为种子,随机性更强 ???。 用法如下,生成 10 个 0~9...原创 2020-02-24 18:47:21 · 216 阅读 · 0 评论 -
面向对象设计模式学习总结之单例模式(Singleton Method)
2020-02-23-单例模式(Template Method ):一、把我能想到的写下来: 单例模式是要实现 对于一个类,只有一个实例化对象,并且有全局??点。(答:全局的访问点。和全局变量一样方便,但又没有全局变量的缺点:在程序一开始就会创建对象,万一创建对象非常耗费资源,而程序在后面的执行过程中又没有用到它,就形成了浪费。) ...原创 2020-02-23 22:37:51 · 189 阅读 · 1 评论 -
每日一题总结 2020.02.17-2020.02.27
值传递题目:如下代码,执行test()函数后,屏幕打印结果为?public class Test { public void add(Byte b) { b = b++; } public void test() { Byte a = 127; Byte b = 127; add(++a); System.out.print(a + " "); ...原创 2020-02-20 15:08:42 · 337 阅读 · 0 评论 -
Java并发编程总结 [2] 基础篇(下)
一、把我能想到的写下来:1.并发与并行的区别 并发是指在一段时间内,多个线程同”时”执行;一段时间是由许多个单位时间组成的,由于时间片给线程时,其他线程不能拥有时间片而被阻塞,所以同一时刻只能有一个线程在执行。其实并发时线程是交替执行的。 而并行是指在单位时间内,多个线程同时执行。&nb...原创 2020-02-18 17:52:26 · 212 阅读 · 0 评论 -
MySQL数据库学习之跟着掘金手册学-个人笔记与总结[8]-InnoDB的表空间
一、前情提要数据目录 MySQL 服务器程序在启动时会到 文件系统 的某个目录下加载文件,之后产生的数据会存到这个目录的某些文件中,这个目录就是 数据目录。 每个数据库都对应一个和数据库同名的目录(或者说是文件夹) 当用 create databas...原创 2020-02-16 21:32:48 · 133 阅读 · 0 评论 -
MySQL数据库学习之跟着掘金手册学-个人笔记与总结[7]-MySQL数据目录
一、前情提要索引的代价: 每建立一个索引,都需要建立一颗B+树,建多非常占用空间;每次对表的增删改,都需要修改各个B+树索引排列顺序,导致性能损耗。B+树索引适用的条件: (结合B+树索引的特点) 全值匹配、 匹配左边的列、 匹配范围值、 精确匹配某一列并范围匹配另外...原创 2020-02-16 21:12:14 · 302 阅读 · 0 评论 -
MySQL数据库学习之跟着掘金手册学-个人笔记与总结[6]-B+树索引的使用
一、对上一章的复习摘要如果想从这么多页中根据主键值快速定位某些记录所在的页,需要给它们做个目录,每个页对应一个目录项,每个目录项包括下边两个部分:(1)页的用户记录中最小的主键值,我们用key来表示。(2)页号,我们用page_no表示。目录项记录和普通的用户记录的不同点:(1)目录项记录的record_type值是1,而普通用户记录的record_type值是0。(2)目录项...原创 2020-02-09 20:14:22 · 290 阅读 · 2 评论 -
MySQL数据库学习之跟着掘金手册学-个人笔记与总结[5]-B+树索引
一、对上一章的复习摘要InnoDB为了不同的目的而设计了不同类型的页,我们把用于存放记录的页叫做数据页(索引页)。一个数据页可以被大致划分为7个部分,分别是(1)File Header,表示页的一些通用信息,占固定的38字节。(2)Page Header,表示数据页专有的一些信息,占固定的56个字节。(3)Infimum + Supremum,两个虚拟的伪记录,分别表示页中的最小...原创 2020-02-06 22:16:29 · 243 阅读 · 0 评论 -
每日一题总结 2020.02.06-2020.02.16
8种基本类型变量:boolean 1字节short 1字节byte 2字节char 2字节int 4字节double 4字节float 8字节long 8字节 byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6;当 short、byte、char在进行运...原创 2020-02-06 18:42:11 · 282 阅读 · 0 评论 -
MySQL数据库学习之跟着掘金手册学-个人笔记与总结[3]-InnoDB记录存储结构
一、对上一章的复习摘要字符集编码规则:(1)ASCII:可以表示128个符号,最多1字节。(2)ISO 8859-1 也叫latain1,是在ASCII基础上扩充了128个西欧-德/法常用的字符。最多1字节。(3)GB2312:汉字、拉丁字母、希腊字母、日本片假名、俄语西里尔字母,兼容ASCII,如果在ASCII中,1字节;如果不在ASCII中,2字节,采用变长编码方式。Windows操...原创 2020-01-26 22:58:53 · 182 阅读 · 0 评论 -
每日一题总结 2020.01.26-2020.02.04
“>>”(有符号)右移,如果为正,高位补”0“;如果为负,高位补”1“。”>>>“无符号右移/逻辑右移,无论正负都补"0"。没有无符号左移。Java中int类型是4字节,32位,所以左移时要注意。(不是看当前数字有几位)。负数是以补码形式存储的,所以负数的左移和右移要先看补码左右移的结果, 然后根据”补码的补码是原码“求得最终结果。(要注意求反码时:符号位不变...原创 2020-01-26 15:43:42 · 432 阅读 · 0 评论 -
面向对象设计模式学习总结之模板模式(Template Method)
2020-01-16-模板模式(Template Method ):一、.把我能想到的写下来:以过年回家为例,游子需要完成以下步骤:1.买票buy ticket2.搭乘相应的交通工具(长途汽车/火车/飞机)回家 travel by …3.回家过年 happy new year!不同的游子选择的交通工具可能不同,然而1与3的步骤总是要有的,而且顺序也一定是按照“1.2.3”的,为了避免代...原创 2020-01-16 21:22:47 · 314 阅读 · 1 评论 -
每日一题总结 2020.01.14-2020.01.24
面向对象设计方法的主要特征:抽象,封装,继承,多态。public class Test{ static int i; public static void main(String[] args) { System.out.println(i); }输出结果是:0。静态变量会被默认初始化,在类中,没有"static",就会显示”Error:...原创 2020-01-14 18:05:49 · 737 阅读 · 1 评论 -
【期末课设】 Java+MySQL管理信息之简易通讯录、产品销售子系统/复习JDBC
借着大三这次期末课设,我打算从0开始实现一个小系统,正好对之前学过的JDBC做以复习。首先是课设的问题描述:编写一个简单的通讯录管理程序。通讯录中需要存储姓名,地址,电话号码,邮政编码四项。还可以存储Email,家庭电话等信息。基本要求:程序应提供的基本管理功能有:1)添加:即增加一个人的记录到通信录中。2) 显示:即在屏幕上显示所有通信录中的人员信息。3)存储:即将通讯录信息保存在数...原创 2020-01-07 18:22:11 · 2146 阅读 · 0 评论 -
每日总结[11] 20191117 Java SE复习-集合框架util包/解析HashMap源码
(1)头脑风暴:把我能想到的写下来:Java类集提供了两个重要的接口:Collection和Map。Collection是所有存放单个元素的集合的最大父接口。它有List(允许重复)和Set(不允许重复)两个重要子接口。List有几个常见实现类:ArrayList [ 动态对象数组 ] ,Vector, LinkedList [ 链表实现 ]。[补:List比Collection多提供了g...原创 2019-11-17 21:32:59 · 170 阅读 · 0 评论 -
每日总结[10] 20191029 数据结构复习-常见8大排序
1.头脑风暴+代码重写一遍(见github的SortRewrite)排序分为两种:内部排序——只用内存。和外部排序——占用外部空间,如磁盘,其实外部排序的内部用的还是内部排序。排序需要考虑:时间复杂度、(最好、最坏、平均)空间复杂度、稳定性(值相等的元素的前后顺序有无改变)、如何优化这四个问题。冒泡排序以升序为例,“冒泡”就是轻(小)的会浮上来,重(大)的会沉到底,冒泡是两两之间的比较,比...原创 2019-11-01 18:24:55 · 152 阅读 · 0 评论 -
每日总结[9]20191019 数据结构复习-堆排序/优先级队列
(1)头脑风暴:把我能想到的写下来堆排序 思路:方法一:原地堆排序。不占用额外空间。从最后一个非叶子节点开始,(因为叶子节点可以看作是天然的堆)siftDown,(这个siftDown不像之前的siftDown,是heap类中的,用的是该类的数组data,我们直接在传入的数组的基础上进行元素交换)直到根为止, 这样堆顶元素一定是最大值,然后每次将堆顶与数组最后一个元素交换,(这样就可以使...原创 2019-10-19 15:47:35 · 167 阅读 · 0 评论 -
每日总结[8] 20191016 数据结构复习-堆-二叉堆/比较器Comparable和Comparator
(1)头脑风暴:把我能想到的的先写下来。堆一般用完全二叉树实现——二叉堆。完全二叉树就是除了最后一层不满以外,其他层都需要是满的。靠左排。完全二叉树可以使用数组存储。如果每个根节点都不小于它的左右子树,那么这个堆是大顶堆/最大堆。JVM中的堆存类的对象,数组对象。操作系统的堆用链表实现。堆有siftUp元素上浮,是指向堆添加元素时,鉴于数组,直接删除和插入都需要元素整体搬移,时间和空...原创 2019-10-17 21:06:31 · 172 阅读 · 1 评论 -
每日总结[1] 20191001 初识Spring//Beans/控制反转/依赖注入/Date转换
(1)头脑风暴,把我能想到的写下来:开发需要高内聚,低耦合,可实现接口不要继承类。要降低类与类之间的依赖关系。Spring是一种技术,是一种框架,是一个容器。容器的作用:管理生命周期。需要新建Maven项目,Maven的作用:1.可以帮助添加jar包及依赖。2.在src-main-java-resource下新建applicationContext.xml文件,这个“应用上下文”就是S...原创 2019-10-03 11:41:29 · 262 阅读 · 0 评论 -
每日总结[2]20191002 MVC/SpringMVC XML配置
(1)头脑风暴:把我能想到的写下来:MVC是一种设计模式。在web开发中,为了解耦,实现轻量级开发,有经典三层构造:V(View视图层),如浏览器端显示的HTTP响应与请求;M(model)模型层,用来管理类与类之间的关系。C(Control)控制层,用来调用相应的构造。这样不同功能的模块不会相互耦合。Spring用于M层,管理类与类之间的关系,而SpringMVC则是用于C层。S...原创 2019-10-04 13:56:29 · 146 阅读 · 0 评论 -
每日总结[4]20191004 初识Mybatis-CRUD操作/SpringMVC+JDBC
(1)头脑风暴:把我能想到的写下来:Mybatis:因为Java是面向对象的语言,而数据库多是面向关系的,存在阻抗不匹配的问题,需要把数据库中的一条条记录映射成面向对象中的类,字段映射成属性。[在MVC下还需要一个持久层,与DB数据库进行交互。]Mybatis框架实现了这样的封装,不需要我们手写JDBC,只需要配置SqlConfig.xml,用SqlSessionFactory和SqlSe...原创 2019-10-05 11:51:21 · 151 阅读 · 0 评论 -
每日总结[6]20191006 Mybatis之关联映射
(1)头脑风暴:把我能想到的写下来:在我们的数据库中,Order表是主表,从Order表到User表是一对一的关系,因此使用标签完成关联映射,比如sql语句是:select order.*,user.id,user.username,user.addressfrom order,userwhere order.user_id=user.id在OrderMapper.xml中写:<...原创 2019-10-07 10:20:47 · 149 阅读 · 0 评论 -
每日总结[7]20191008 初识SSM
(1)头脑风暴:把我能想到的写下来。SSM就是Spring+SpringMVC+Mybatis。以简单实现select * from user;为例。我们使用Spring来管理Mybatis,本来使用Mybatis时,需要配置两个核心配置文件:sqlMapConfig.xml和UserMapper.xml(使用动态代理方式生成,需要满足7条规则,在mapper包下提供UserMapper接口...原创 2019-10-09 21:00:38 · 133 阅读 · 0 评论