源码

Spring MVC源码分析

非 Y 不嫁゛ 提交于 2019-12-04 16:43:42
从以下三个方面进行介绍: Spring MVC是基于Servlet实现的封装。 首先回顾下Servlet: Servlet是sun公司提供的一门用于开发动态web资源的技术。   Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:   1、编写一个Java类,实现servlet接口。   2、把开发好的Java类部署到web服务器中。   按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet 创建工程: IDEA添加如下参数可以防止长时间Build 需要Servlet环境,则进入Servlet的Jar包,两种方式: 1.Tomcat自带的 2.mavne 引入的 在JavaEE项目必须有web.xml,那么为啥在SpringBoot不需要web.xml? 1.xml版本: public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter()

高效阅读源码

寵の児 提交于 2019-12-04 16:21:49
高效阅读源码 明确目的,把实现目标放在第一位; 熟悉业务基础,每一份有实际意义的源码都离不开业务,必须先对业务有概念 ; 查看示例,使用API找出关键代码(代表实际对象的类、衔接不同模块的类、代表业务关键节点的类); DEBUG梳理模块间业务关系; 死磕:读不懂才要读,想不明白才要想; 回顾:业务实现的设计优点、知识点; 来源: https://www.cnblogs.com/aquichita/p/11873925.html

JAVA8的HashMap

让人想犯罪 __ 提交于 2019-12-04 16:21:20
前言 回想之前几次的面试,没有一次不问到 hashmap 的,这也体现了 hashmap 的重要性了。记得当时的回答是底层是数组加链表的方式实现的,然后就是什么 get 时候怎么查找的。现在想想这些小白都知道的东西说出来也加不了分啊。现在挤点时间出来看看源码吧。 底层实现简介 数组加链表这个没什么好说的,看下面这个图就能明白了(java8当中当链表达到一定长度就会转换成红黑树,这个之后再说)。还是从源码来看吧,这里时间问题不可能每个方法都拿出来讲了,挑几个重要的方法来说。 HashMap(int, float) 第一个参数是容量默认为16,第二个参数是负载因子默认是0.75。源码如下: 123456789101112 public (int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " + initialCapacity); if (initialCapacity > MAXIMUM_CAPACITY) //最大值为1<<30 initialCapacity = MAXIMUM_CAPACITY; if (loadFactor <= 0 || Float.isNaN

[Go] gocron源码阅读-通过第三方cli包实现命令行参数获取和管理

不羁岁月 提交于 2019-12-04 15:50:15
gocron源码中使用的是下面这个第三方包来实现的,下面就单独的拿出来测试以下效果,和官方flag包差不多 go get github.com/urfave/cli package main import ( "fmt" "log" "os" "github.com/urfave/cli" ) func main() { app := cli.NewApp() var flags []cli.Flag flags = append(flags, cli.StringFlag{ Name: "host", Value: "0.0.0.0", Usage: "bind host", }, cli.IntFlag{ Name: "port,p", Value: 5090, Usage: "bind port", }, cli.StringFlag{ Name: "env,e", Value: "prod", Usage: "runtime environment, dev|test|prod", }) app.Flags = flags app.Action = func(c *cli.Context) error { fmt.Println("host:", c.String("host")) fmt.Println("port:", c.String("port")) fmt

ConcurrentHashMap put get 源码解析

与世无争的帅哥 提交于 2019-12-04 15:43:39
ConcurrentHashMap public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable {} 可以看到,继承自AbstractMap, 实现了ConcurrentMap,以及可序列化接口。 先看put方法: /** * Maps the specified key to the specified value in this table. * Neither the key nor the value can be null. * * <p>The value can be retrieved by calling the {@code get} method * with a key that is equal to the original key. * * @param key key with which the specified value is to be associated * @param value value to be associated with the specified key * @return the previous value associated with {@code key},

[QT] - HTTP文件传输服务器#工程源码

微笑、不失礼 提交于 2019-12-04 15:38:40
简介:    大学时期学习弄的一个小软件,当初做的目的是在实验室的局域网内方便同学之间文件的传输,软件的几个功能截图如正文所示,文末提供工程源码文件,感谢支持! 功能截图: [ 打开软件,选择IP及需绑定的目录 ] [ 点击后台运行后,程序启动 ] [ 可以在网页中访问到所绑定的文件夹 ] [ 点击下载需要的文件 ] 源码提取链接:   下载: https://www.lanzous.com/i7eazub   密码: 6g37 来源: https://www.cnblogs.com/GyForever1004/p/11871049.html

【源码分析】面试问烂的equals和各种字符串、Integer比较

眉间皱痕 提交于 2019-12-04 15:33:38
今天在空闲时间聊天时发现,面试题中的equals问题,以及String、Integer等的判等问题还是讨论的比较激烈而且混乱。。。(滑稽) 其实网上有非常多关于这种面试题的文章或者博客,其实多去看看就可以。 不过。。。看了好多,都是通篇理论,感觉很干。思考之后,决定开一个新的模块,通过源码来解释面试题中、或者常见的一些问题中的原理以及本质,帮助有疑惑的小伙伴更容易、更深入的理解原理,以及相应的源码设计。 说到正题,这篇文章讨论的是关于equals在不同对象、以及特殊类型String、Integer上的实际原理。 1. ==与equals 这一部分属于J2SE最基础的东西了,算是常识性的,也没什么好说的。 基本数据类型,只有==,它是比较两个变量的值是否一致 引用数据类型的比对需要区别对待 ==:比较两个对象的内存地址是否相同 equals:调用一个对象的equals方法,与另一个对象比对 就因为这些最基本的知识,引发了很多面试题,咱们一一列举 2. String的常见面试题 public class Demo { public static void main(String[] args) throws Exception { String str1 = "123"; String str2 = "123"; String str3 = new String("123");

ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?

两盒软妹~` 提交于 2019-12-04 15:33:10
众所周知,在List集合中,我们经常会用到ArrayList以及LinkedList集合,但是通过查看源码,就会发现ArrayList实现RandomAccess接口,但是RandomAccess接口里面是空的!Linked并没有实现RandomAccess接口。 这是为什么呢? ----------------------------------------------------------------------------------------------------- 这是ArrayList实现RandomAccess接口的源码 ------------------------------------------------------------------------------------------------------ 这是LinkedList的源码,并没实现RandomAccess接口 ------------------------------------------------------------------------------------------------------ 这是RandomAccess接口的源码 原来RandomAccess接口是一个标志接口(Marker),然而实现这个接口有什么作用呢? 解答:只要List集合实现这个接口

[QT] - MjpegStreamer客户端(简易版)#工程源码

倖福魔咒の 提交于 2019-12-04 15:19:50
简介: 大学时期学习弄的一个小软件,可以起到示例的作用,软件的几个功能截图如正文所示,文末提供工程源码文件,感谢支持! 功能截图: [ 开发板启动 mjpg_streamer 服务器 ] [ 启动软件 ] [ 连接服务器 ] [ 保存截图 ] 源码提取链接: 下载: https://www.lanzous.com/i7e81bg 密码: 3a34 来源: https://www.cnblogs.com/GyForever1004/p/11871043.html