Debug HashMap

最近跟两个正在找工作的同学聊天,说起集合,都是面试的重灾区,必问的选项,而且在实际的面试中并不会单独提问某一个问题,而是围绕核心知识连环炮提问。所以背面试题治标不治本,还是得读一读源码。谁让这是个面试造火箭,工作拧螺丝的市场氛围,就连CSDN的首页第二张轮播图都在蹭这个热点: 本文主要包括两部分: ... »

Debug LinkedList

Debug LinkedList源码 前置知识 LinkedList基于链表,LinkedList的Node节点定义 成员变量 //链表中元素的数量 transient int size = 0; /** * 链表的头节点:用于遍历 */ transient Node<E> first; /** * ... »

Java对象公约

灵魂static关键字 Java规定:方法只能由对象来调用。 换句话来说,在面向对象的思维下,方法与对象存在一种强耦合。 static作用:即使没有初始化对象,也可以调用方法。(类比到属性上同样如此) 被static修饰的数据称为类数据,修饰的方法称为类方法。并且Java推荐使用类名.方法名(或属性 ... »

面向过程与面向对象

《Java编程思想》是一本好书,但同时也是晦涩难懂,其一是知识本身的难度,其二这本书是翻译过来的,而且是直译。我也是尝试了好多次才又拿起了这本书啃,没想到今天突然感觉发现了宝藏。 接下来我就罗列一下今晚的收获吧: Sun对Java的设计目标:为程序员减少复杂性。(虽然Sun被收购了,还是谢谢Sun, ... »

DEBUG ArrayList

1,ArrayList面试必问 说说ArrayList和LinkedList的区别? ArrayList基于数组实现,LinkedList基于链表实现,不同的数据结构决定了ArrayList查询效率比较高,而LinkedList插入删除效率比较高,反过来就比较慢了。 ArrayList默认初始容量为 ... »

【面试题系列】——Java基础

本文主要包括Java基础及面向对象相关面试题。 1,Java科普 1.1 为什么安装包要分JDK和JRE? JRE主要包含JVM,用于运行Java程序。 JDK包含了JRE,除此之外,包含了比如像javac等程序开发需要用到的工具。 先来说说什么是JDK,JRE。 JDK:Java Developm ... »

开发者必备——IDEA配置清单

本文主要探讨主流开发工具Intellj IDEA的常用配置及部分插件,供读者参考。 1,常用配置 1.1 配置JDK 1.2 配置自动导包 1.3 配置Maven(内嵌) 配置阿里云镜像加速 Settings.xml <?xml version="1.0" encoding="UTF-8"?> <s ... »

开发者必备——API设计问题

本文主要探讨RPC和RESTFul两种API风格的特点以及在开发中应该如何进行技术选型,同时截取了网上社区,文章一部分关于API设计的想法和观点供读者参考,取舍。 1,背景简述 API学名:应用程序接口(Application Programming Interface) 通俗的打个比方,人与人之间 ... »

使用Nginx防止IP地址被恶意解析

使用Nginx的目的 使用阿里云ECS云服务器,首先聊聊笔者使用Nginx的背景。 初始化ECS后会生成一个公网IP,默认访问IP地址自动访问80端口,此时通过ip地址可直接访问启动在80端口的服务。 如再把域名解析到当前ip,即可通过域名直接访问80端口的服务。 然后,出现了一个问题:任何人都可以 ... »

Beego快速入门

 Beego快速入门 参考官方文档:https://beego.me/docs/quickstart/ 一,开发环境准备 安装beego及bee工具(需要安装Git) 命令执行完成之后,会在GoPath下生成目录及文件(GoPath主要放置第三方依赖) 在环境变量中可以看到位置: 创建项目测试: ... »

Golang入门及开发环境配置

 Go语言诞生背景 计算机硬件更新频繁,主流编程语言无法发挥多核多CPU的性能 软件系统复杂度不断变高,缺乏简洁高效的编程语言 C/C++运行速度快,但编译速度慢 Go语言特点 静态类型开发语言 静态:编译时检查变量类型,如C++,Java 动态:运行时检查变量类型,如JavaScript 自动垃 ... »

常用软件清单

OS(win10) 下载镜像: "MSDN" U盘启动盘工具: "rufus" , "UltraISO" 基础软件 360驱动大师:http://weishi.360.cn/qudongdashi/index.html WPS:https://pc.wps.cn/ WInRAR:http://www ... »

Chapter 3 :代码的坏味道

“如果尿布臭了,就换掉它。” ——Beck奶奶,论保持小孩清洁的哲学 代码的坏味道这一章集中论述该何时重构。 具体的重构方法在后面的章节。 “没有任何度量规矩比得上见识广博者的直觉。你必须培养自己的判断力,学会判断一个类中有多少实例变量才算太大,一个函数内有多少代码才不算太长。” ​ ——Marti ... »

Chapter 2 :重构的原则

1,什么是重构? 在不改变软件可观察行为的前提下,使用一些重构的手法,提高代码可读性。 换句话说,在保持软件可用的前提下,修改代码使得更加容易被理解。 2,为什么重构? 为了后续的代码维护和修改,易读是重构的核心价值。 除此之外,重构随之带来的好处有: 找到bug 提高编程速度(在代码量累计到一定程 ... »

关于MXNet

关于人工智能,机器学习,深度学习 三者关系:从宏观到微观。 机器学习是人工智能的一部分,深度学习是机器学习的一部分。 基础:大数据。 关于深度学习 深度学习基于神经网络, 关于神经网络:通过叠加网络层模拟人类对输入信号的特征提取。 说白了,神经网络就是一个仿生技术,仿的就是人类思考的过程,就好像给你 ... »

SpringMVC常用注解

SpringMVC是一种基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求 响应模型,框架的目的就是帮助我们简化开发。 简单来说,SpringMVC的功能就是处理请求。 @RequestMapping 作 ... »

关于Spring

在SpringBoot火爆2019的年代,Spring框架也逐渐变成了底层。对于具体的应用,使用Spring开发的效率远远比不上使用SpringBoot,IOC与AOP的xml在SpringBoot中被取代,包依赖也被进一步被封装成各个模块。 简化开发的同时带来了更多的透明性,欲戴皇冠,必承其重。 ... »

Ubuntu18.04.3 LTS初体验

安装系统 想来虚拟机安装太慢,正好有一台旧电脑,干脆整个乌班图系统。 启动盘工具:UltraISO,老牌工具了。 上官网下载ISO镜像文件: https://cn.ubuntu.com/download 选择长期稳定支持版: dell电脑,F12进入bios,安装系统可能会有点慢。然后如果黑屏报sc ... »

读书笔记——《MySQL DBA 工作笔记》

关于前言 作者在前言中提出的一些观点很具有参考价值, 梳理完整的知识体系 这是每一个技术流都应该追逐的,完整的知识体系能够使我们对知识的掌握更加全面,而不仅仅局限于点 建立技术连接的思维,面对需求,永远没有最好的数据库,只有最合适的业务场景 之前在读一本架构的书里也提到了类似的观点,技术的根本目的是 ... »

并发基础——多线程

一,宏观概念 1,进程和线程 进程是独立应用程序,线程是进程的一条执行路径。 一个进程通常有N个线程 2,多线程 指进程中的多个路径同时执行, 主要目的是提高程序效率 。 【举个栗子】: 打开网易云音乐,可以理解为一个进程,然后点开一首歌曲,这是一个线程,然后在播放歌曲的同时,可以在下边评论,这就是 ... »