后端
Noneplus
君子不器,善假于物也。来自准程序员的思考...
展开
-
Debug HashMap
最近跟两个正在找工作的同学聊天,说起集合,都是面试的重灾区,必问的选项,而且在实际的面试中并不会单独提问某一个问题,而是围绕核心知识连环炮提问。所以背面试题治标不治本,还是得读一读源码。谁让这是个面试造火箭,工作拧螺丝的市场氛围,就连CSDN的首页第二张轮播图都在蹭这个热点: 本文主要包括两部分: HashMap面试必问(总结了一些常见面试题) JDK1.7 & JDK1.8 关于HashMap原理分析 这部分主要是通过断点debug来分析HashMap中常见操作的过程,但由于步骤繁多,只原创 2020-07-30 12:23:41 · 440 阅读 · 0 评论 -
开发者必备——API设计问题
本文主要探讨RPC和RESTFul两种API风格的特点以及在开发中应该如何进行技术选型,截取了部分网上社区,文章关于API设计的想法和观点供读者参考取舍。 1,背景简述 API学名:应用程序接口(Application Programming Interface) 通俗的打个比方,人与人之间通过语言来交流,而程序和程序之间通过API来交流。 目前市场主流的API设计包括RPC,RESTFul,GraphQL等设计思路,关于API风格优劣,好坏众说纷纭,但客观来说:RPC资历最老,并沿用至今,RESTFul后原创 2020-07-09 17:14:32 · 319 阅读 · 0 评论 -
SpringBoot官方文档阅读笔记(1)——使用SpringBoot
之前很多代码结构上的一些常见用法,或者公约,在Spring官网的文档里有相关描述。对实际的开发没有什么帮助,大概就是知道为什么要这么规定了。 1,考虑到Spring注解的扫描问题,推荐使用反向域名作为包名。 2, 主类置于包的根目录下 但是它给出的理由是@SpringBootApplication隐式定义为了搜索包,然后搜索@Entity类,大概这个意思,不太懂??? 3, 配置类推荐使用注解@Configuration 刚刚搜了一下。SpringBoot默认扫描入口类包下的所有子包。 4, bea原创 2020-07-07 10:16:38 · 196 阅读 · 0 评论 -
SpringBoot常用启动器
原创 2020-07-07 09:38:58 · 186 阅读 · 0 评论 -
Redis命令汇总
http://doc.redisfans.com/index.html select dbsize FlushDb FlushAll 五大数据类型 键(Key) keys * //KEYS * 匹配数据库中所有 key 。 exists key //检查给定 key 是否存在。若 key 存在,返回 1 ,否则返回 0 。 move key db //将当前数据库的 key 移动到...原创 2019-07-09 22:24:53 · 76 阅读 · 0 评论 -
多线程入门笔记
进程与线程 进程是执行程序静态代码的过程。 一个进程可以包含多个线程。 微观来看,多线程并不是同时执行多个线程,而是JVM虚拟机使CPU在多个线程之间的快速切换; 宏观来看,当切换的速度够快,不同的线程就感觉就是在同时执行。 Java默认的的主线程是main,当在main中创建的线程就称之为其他线程。 线程的五种状态 Java实现多线程的两种方式 1. 继承Thread类 执行Main方法时,J...原创 2019-07-09 22:24:35 · 120 阅读 · 0 评论 -
JSP笔记
Content 什么是JSP JSP页面构成 JSP指令. JSP动作 JSP内置对象 什么是JSP? JSP=Java Server Page(服务器端脚本语言) JSP通过将动态代码嵌入到静态的HTML中,从而产生动态的输出 JSP页面构成 HTML标记语言 jsp标记:指令标记,动作标记 注释 java代码,java表达式 java代码(脚本代码):完成业务处理,不能输出...原创 2019-07-09 22:23:59 · 114 阅读 · 0 评论 -
Docker 入门
Docker简介 问题背景:开发环境和运维环境(服务器部署)的差异导致软件无法正常运行 Docker核心: 镜像:镜像是模板,容器是实例 容器:简易版的Linux环境 仓库:存放镜像 Docker安装(CentOS 7.6) 参考文档:https://docs.docker.com/install/linux/docker-ce/centos/ 1.卸载旧版本: sudo yum remove...原创 2019-07-03 02:50:46 · 107 阅读 · 0 评论 -
JVM垃圾回收器
单线程垃圾回收——串行回收器 新生代串行回收器:使用复制算法,会触发stop-the-world现象。 老年代串行回收器:使用标记压缩算法,也会触发stop-the-world现象。 多线程垃圾回收——并行回收器 新生代ParNew回收器:使用复制算法,同样会触发stop the world现象。但因为是多线程回收,所以停顿时间会小于串行回收器。 前提条件:CPU并发能力强。如果在单CPU或者并发...原创 2019-06-23 15:42:54 · 93 阅读 · 0 评论 -
JVM垃圾回收算法
什么是垃圾? 类比日常生活中,如果一个东西经常没被使用,那么就可以说是垃圾。 同理,如果一个对象不可能再被引用,那么这个对象就是垃圾,应该被回收。 垃圾:不可能再被引用的对象。 引用计数法因循环引用导致的内存泄漏 在一个对象被引用时加一,被去除引用时减一,这样我们就可以通过判断引用计数是否为零来判断一个对象是否为垃圾。这种方法我们一般称之为「引用计数法」。 什么是循环引用? A 引用了 B,B...原创 2019-06-21 11:55:44 · 76 阅读 · 0 评论 -
入坑JVM
什么是虚拟机? 虚拟机本质上是一种软件。大致可分为系统虚拟机(仿真物理机)和程序虚拟机(执行单个计算机程序,比如JVM)。 什么是Java虚拟机? 执行Java应用的字节码,并且把字节码转化到硬件,操作系统的指令。历经时间的迭代,目前广泛应用的Java虚拟机是Oracle的HotSpot VM。 堆与栈是个什么东东? 栈是运行时的单位,而堆是存储的单位。 栈解决程序的运行问题,即程序如何执行,...原创 2019-06-06 23:28:55 · 130 阅读 · 0 评论 -
HashCode的利与弊
1.hash,hash表 一种算法 一个函数 hash表就是存放hash值的地方 2.hashCode hashCode是根据Java对象的地址(对象在hash表中的地址)计算出来的int类型数值。(就是一个数) hashCode是怎么来的? 将对象物理地址转换成一个整数,然后该整数通过hash函数的算法就得到了hashcode。 该整数和hashCode是对应的,而对象的物理地址和该...原创 2019-06-15 10:12:37 · 445 阅读 · 0 评论 -
Spring AOP面向切面编程
什么是AOP? AOP应用背景:由非业务需求(日志)造成的代码混乱 AOP(WHAT):面向切面编程,可降低耦合度,提高代码可重用性。 AOP(HOW):纵向继承—>横向抽取 应用:事务管理 AOP术语 target :目标类。需要被代理(经纪人)的类。 Joinpoint :连接点。可能被拦截到的方法。 Pointcut:切入点。以经被增强的连接点。 advice :通知/增强。增强代码...原创 2019-04-01 00:43:19 · 144 阅读 · 0 评论 -
Spring Bean 配置
IOC反转控制 传统的资源获取方式:组件向容器发送请求,容器返回资源 Spring获取资源方式IOC:容器主动将资源注入到所在的组件当中。(DI 依赖注入) ...原创 2019-03-30 21:32:36 · 119 阅读 · 0 评论 -
SpringMVC注解
@RequestMapping(处理URL请求) @RequestMapping路径 类:初步映射请求路径 方法:具体映射请求路径 @RequestMapping设置请求方法原创 2019-04-20 19:58:04 · 252 阅读 · 0 评论 -
SpringMVC视图
JSTLView . 自定义视图… [InternalResourceViewResolver的order值为最大值 . 转发和重定向原创 2019-04-21 00:21:47 · 79 阅读 · 0 评论 -
Spring IOC 容器
Spring IOC 容器 传统对象的创建本质上是类与类之间的依赖,A类调用B类本质上是A类依赖于B类,当一个大型应用中的类的数量达到一定的程度时,类与类之间复杂的依赖关系导致整个应用就会表现出高耦合的状态【耦合:模块间关联程度的衡量】,不利于持续开发和后期维护。 Spring的IOC容器并没有消除类与类之间互相依赖的本质关系,而是将类与类之间的依赖转变为类对于容器的依赖。所有的类都在容器中注...原创 2019-06-04 23:33:05 · 127 阅读 · 0 评论