- 博客(178)
- 收藏
- 关注
原创 equals&hashCode
经典规则:如果重写了equals,必须重写hashCode为什么???这个规则考虑的应用场景:如果你的对象可能放入HashMap,HashSet,不重写会出问题问题场景:new一个对象,重写了equals,但是没有重写hashCode,再new一个对象,原对象.equals(新对象)等于true时,但hashCode却不一致。hashCode的默认计算规则:根据对象的内存地...
2020-08-15 19:48:00
182
原创 JavaSE语法
【目录结构】目录Java基础1,Java语言的特点2,配置开发环境3,经典HelloWorld3.1 命令行运行Java程序3.2 使用IDEA 运行Java程序4,数据类型&变量4.1 为什么要设计不同种类的数据类型?4.2 数据变量&类型的定义4.3 基本数据类型4.4 自动类型转换&强制类型转换4.5 包装类面向对象1,灵魂拷问,什么是面向对象?2,如何实...
2020-08-15 16:45:00
435
原创 域名备案&robots协议
目录1 域名备案个人备案公司备案备案完成之后了解更多2 robots.txt这篇文章不谈技术,聊一聊笔者在网站建设一些需要注意的点。1 域名备案建设一个网站一定会需要域名,而域名又一定需要备案。备案分为两类,公司备案和个人备案:个人备案笔者之前在大二的时候在阿里云购买过一个域名,备案是一个周期较长的事情,希望即将准备备案的小伙伴们做好心理准备。相对于公司备案来说,个人备案更久更...
2020-08-15 16:02:00
301
原创 MySQL笔记汇总
目录1 MySQL背景介绍1.1 关于MySQL1.2 MySQL8.0新特性2 CentOS 7.6 安装MySQL2.1 环境准备2.2 配置MySQL远程连接3 MySQL基础知识储备3.1 常用命令登录数据库相关命令数据库表相关命令增删改查命令插入更新删除查询3.2 常用数据类型数值类型日期时间类型字符串类型3.3 运算符算术运算符比较运算符逻辑运算符位运算符运算符优先级4 开发...
2020-08-11 16:06:00
257
原创 Linux常用命令
目录1 基础命令1.1 目录命令ll 查看当前目录下的所有文件cd 切换目录pwd 显示当前所在目录mkdir 创建目录1.2 文件命令stat 查看文件详细信息cat 查看文件内容more 分屏显示文件内容head 显示文件开头内容tail 显示文件结尾内容rm -rf 级联删除文件和目录cp -r place1 place2复制文件和目录mv -v place1 place2 剪切文...
2020-08-11 14:39:00
184
原创 TCP/IP速记
目录网络协议OSI七层模型和TCP/IP五层模型TCP/IP五层模型TCP的三次握手和四次挥手三次握手进行连接四次挥手断开连接TCP连接的特点TCP是如何保证安全可靠的UDP连接的特点TCP和UDP的区别TCP和UDP首部的区别HTTP请求的过程和原理网络协议计算机网络的核心就是网络协议。网络协议是计算机网络中为了数据交换而建立的规则。OSI七层模型和TCP/IP五层模型在实际运...
2020-08-11 12:14:00
455
原创 数据结构和算法速记
目录数据结构算法查找算法排序算法数据结构数组结构特征:内存地址连续,大小固定使用特点:查询快,插入慢链表结构特征:内存地址不连续,大小可变使用特点:查询慢,插入快栈结构特征:顺序栈(基于数组实现,继承数组特征),链式栈(基于链表实现,继承链表特征)使用特点:先进后出,后进先出队列结构特征:顺序队列(基于数组实现,继承数组特征),链式队列(基于链表实...
2020-08-10 13:43:00
289
原创 多线程相关概念
目录相关概念停止线程的方式多线程的5种状态join方法相关概念进程:启动一个应用程序,就会开启一个进程(微信,QQ,浏览器等等)线程:程序的执行路径进程和线程的区别:进程是在操作系统下的并发,线程是在应用程序下的并发多线程:在同一进程中开启了多个不同的执行路径,多个路径同时执行多线程好处:提高程序整体运行速度,快速响应多线程的应用场景:异步发送短...
2020-08-07 17:20:00
152
原创 线程安全&Java内存模型
目录Java内存模型关于线程安全Volatile关键字Synchronized关键字锁的分类轻量级锁&重量级锁可重入锁&不可重入锁读写锁乐观锁与悲观锁乐观锁(适合多读场景)悲观锁(适合多写场景)CAS无锁机制Java内存模型Java内存模型(JMM)主要目标是定义多线程的情况下线程访问变量的规则。JMM规定线程之间的共享变量存储在主内存中,每个线程都有一个本地内存(...
2020-08-07 17:14:00
127
原创 线程通讯wait¬ify
目录相关概念生产者&消费者模型相关概念锁:解决线程间冲突的问题wait¬ify:解决线程间协作的问题wait和sleep的区别wait期间对象锁是释放的,而sleep只能延时,并未释放锁调用wait方法:暂停正在执行的线程,放弃CPU执行权,并释放资源锁调用notify方法:唤醒暂停的线程使之运行生产者&消费者模型场...
2020-08-07 17:12:00
124
原创 创建多线程的4种方式
目录- 继承Thread- 实现Runnable接口- 实现Callable接口- 使用线程池ThreadPoolExecutor- 继承Thread继承Thread类,重写run方法实现多线程package com.noneplus;class Task1 extends Thread { @Override public void run() { ...
2020-08-06 18:44:00
122
原创 重写ThreadPoolTaskExecutor
目录主类开启异步注解创建线程池配置类创建线程池实现类创建一个测试类Controller创建异步Service方法定义异步的实现类ThreadPoolExecutor:JDK内置线程池实现ThreadPoolTaskExecutor:Spring对JDK中线程池做了一层封装参考代码:https://github.com/Noneplus/ConcurrentDemo创建一个Sp...
2020-08-06 18:42:00
690
原创 GC回收算法&GC回收器
目录垃圾标记引用计数法可达性分析(主流使用)GC回收算法标记-清除算法(适合老年代)标记-复制算法(适合年轻代)标记-整理算法(适合老年代)“因地制宜”——分代算法GC回收器Serial 回收器Serial Old 回收器ParNew回收器Parallel Old回收器Parallel Scavenge回收器CMS收集器G1回收器垃圾标记在回收垃圾前,需要判断哪些是垃圾,哪些不是。...
2020-08-05 17:19:00
163
原创 部署Python应用
安装Python 3.7.5CentOS默认安装的是2.7.5版本的python[root@iZuf6e3zah39uzoj5pg1myZ ~]# python -VPython 2.7.5更新成阿里云yum源cd /etc/yum.repos.dwget http://mirrors.aliyun.com/repo/Centos-7.repo下载阿里云的资源文件mv CentOS-Base.repo CentOS-Base.repo.bak 修改原有的源备份mv Centos-
2020-08-02 19:10:05
423
原创 static关键字设计原理
语法只是表象,原理才是关键!!!灵魂static关键字Java规定:方法只能由对象来调用。换句话来说,在面向对象的思维下,方法与对象存在一种强耦合。方法在没有对象的情况下无法调用,于是上帝派来了staticstatic作用:即使没有初始化对象,也可以调用方法。(类比到属性上同样如此)被static修饰的数据称为类数据,修饰的方法称为类方法。并且Java推荐使用类名.方法名...
2020-08-01 23:04:00
206
原创 JVM内存结构
目录JVM内存区域堆方法区程序计数器虚拟机栈本地方法栈Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。围城这个比喻过于形象!!!JVM内存区域上经典图【线程公有】:堆和方法区【线程私有】:虚拟机栈,本地方法栈,程序计数器堆用于对象实例的内存分配,GC的主要区域。方法区存储已被虚拟机加载的类信息、常量、静态...
2020-08-01 21:15:00
127
原创 配置Python开发环境
目录安装开发包配置IDEA插件验证编译运行环境安装开发包https://www.python.org/注:x86适用Intel处理器,X86-64适用AMD处理器(选择对应的包,避免出现兼容性问题)建议在win10的机子上安装可执行文件(win10安装pip会遇到很多依赖问题,使用可执行文件可以顺带把pip安装了)运行cmd检测环境变量是否生效:C:\Users\nonep...
2020-08-01 00:04:00
324
原创 爬取博客园文章
目录main文件spider-cnblogs代码一直想整个爬虫玩玩,之前用Java试过...的确是术业有专攻啊,Python写起爬虫来更加方便今天的成果:main文件主要的方法都封装在了spider-cnblogs里了,这里主要传递一个url,待会代码贴在后边spider-cnblogs大致的思路是这样的,先用requests发送请求,然后使用BeautifulSoup进行...
2020-07-31 23:57:00
709
1
原创 JVM科普
目录再看前言不完美的程序Java发展史JVM族谱什么是广义的虚拟机?什么是Java虚拟机(JVM)?二刷周先生的《深入理解JVM》时,没想到已经出了第三版,拿着第二版的我在风中凌乱....第一次看这本书的时候是在19年的暑假前后,转眼即将到了20年的暑假,一年里,我也开始做了一些web开发上的工作,然而用到JVM的地方似乎仅仅限于开发环境和服务器的部署环境。这部分的知识偏理论,或者说...
2020-07-31 13:36:00
95
原创 Debug HashMap
最近跟两个正在找工作的同学聊天,说起集合,都是面试的重灾区,必问的选项,而且在实际的面试中并不会单独提问某一个问题,而是围绕核心知识连环炮提问。所以背面试题治标不治本,还是得读一读源码。谁让这是个面试造火箭,工作拧螺丝的市场氛围,就连优快云的首页第二张轮播图都在蹭这个热点:本文主要包括两部分:HashMap面试必问(总结了一些常见面试题)JDK1.7 & JDK1.8 关于HashMap原理分析这部分主要是通过断点debug来分析HashMap中常见操作的过程,但由于步骤繁多,只
2020-07-30 12:23:41
497
原创 静态按钮UI优化
目录1,直角与圆角2,按钮中嵌入图片3,使用对比度强的配色更醒目附录讨论一下静态按钮的样式可以如何优化(国产动态按钮较少,当用户量大了也是相当耗费资源的一件事),那就讨论一下静态按钮优化的一些思路:1,直角与圆角根据我所找的一些样本,大多数采用圆角,见附录。然后就是圆多少的问题了,有两种,一种是圆一丢丢,把直角整没了;另外一种就是圆一半,左右变成半圆。在一些纯图形表意的按钮,直接...
2020-07-29 17:23:00
286
原创 Debug LinkedList
目录Debug LinkedList源码2.1 Debug 分析第一个元素是如何进入链表的2.2 Debug 分析如何通过下标插入指定位置add(index,e)2.3 Debug 分析如何通过下标获取指定元素2.4 Debug 分析如何通过下标删除元素2.5 Debug 分析如何通过对象删除节点(内容)Debug LinkedList源码前置知识LinkedList基于链表,L...
2020-07-26 18:24:00
118
原创 Java对象公约
灵魂static关键字Java规定:方法只能由对象来调用。换句话来说,在面向对象的思维下,方法与对象存在一种强耦合。static作用:即使没有初始化对象,也可以调用方法。(类比到属性上同样如此)被static修饰的数据称为类数据,修饰的方法称为类方法。并且Java推荐使用类名.方法名(或属性名)的方式调用。对象的存储寄存器:CPU内存堆栈:存储对象的引用堆:存储对象...
2020-07-25 12:09:00
109
原创 面向过程与面向对象
《Java编程思想》是一本好书,但同时也是晦涩难懂,其一是知识本身的难度,其二这本书是翻译过来的,而且是直译。我也是尝试了好多次才又拿起了这本书啃,没想到今天突然感觉发现了宝藏。接下来我就罗列一下今晚的收获吧:Sun对Java的设计目标:为程序员减少复杂性。(虽然Sun被收购了,还是谢谢Sun,注意,这里说的不是减少程序的复杂性,而是减少程序员写代码的复杂性,Java面向对象的思想毫...
2020-07-19 23:37:00
167
原创 面向对象的由来
《Java编程思想》是一本好书,但同时也是晦涩难懂,其一是知识本身的难度,其二这本书是翻译过来的,而且是直译。我也是尝试了好多次才又拿起了这本书啃,没想到今天突然感觉发现了宝藏。接下来我就罗列一下今晚的收获吧:Sun对Java的设计目标:为程序员减少复杂性。(虽然Sun被收购了,还是谢谢Sun,注意,这里说的不是减少程序的复杂性,而是减少程序员写代码的复杂性,Java面向对象的思想毫...
2020-07-19 23:37:00
472
8
原创 Debug ArrayList
1,ArrayList面试必问说说ArrayList和LinkedList的区别?ArrayList基于数组实现,LinkedList基于链表实现,不同的数据结构决定了ArrayList查询效率比较高,而LinkedList插入删除效率比较高,反过来就比较慢了。ArrayList默认初始容量为多少?按照几倍来扩容?10,1.5倍。说说数组扩容的原理?ArrayList扩容调用的是Array.copyof函数,把老数组遍历赋值给新数组返回。说说ArrayList常见方法的时间复杂
2020-07-18 15:47:20
416
2
原创 【面试题系列】——Java基础
本文主要包括Java基础及面向对象相关面试题。文章目录1,Java科普1.1 为什么安装包要分JDK和JRE?1.2 为什么Java语言是跨平台的?1.3 为什么安装完JDK后要设置环境变量?1.4 Java和C++区别2,数据类型&变量2.1 boolean占几个字节?2.2 为什么long可以自动转换为float?2.3 包装类型和基本数据类型的区别2.4 String,StringBuffer,StringBuilder的区别2.5 String s = "Hello";s = s + "w
2020-07-14 12:18:35
147
原创 【进收藏夹吃灰系列】——Java基础快速扫盲
建议看完目录后扔进收藏夹吃灰,需要用的时候再翻出来。(手动狗头)本文主要包括Java入门的一些知识,包括JDK环境安装,常用语法以及面向对象编程等。【目录结构】文章目录Java基础1,Java语言的特点2,配置开发环境3,经典HelloWorld3.1 命令行运行Java程序3.2 使用IDEA 运行Java程序4,数据类型&变量4.1 为什么要设计不同种类的数据类型?4.2 数据变量&类型的定义4.3 基本数据类型4.4 自动类型转换&强制类型转换4.5 包装类面向对象1.
2020-07-14 11:53:27
439
原创 开发者必备——IDEA配置清单
本文主要探讨主流开发工具Intellj IDEA的常用配置及部分插件,供读者参考。1,常用配置1.1 配置JDK1.2 配置自动导包1.3 配置Maven(内嵌)配置阿里云镜像加速Settings.xml<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.or
2020-07-10 11:57:02
336
2
原创 开发者必备——API设计问题
本文主要探讨RPC和RESTFul两种API风格的特点以及在开发中应该如何进行技术选型,截取了部分网上社区,文章关于API设计的想法和观点供读者参考取舍。1,背景简述API学名:应用程序接口(Application Programming Interface)通俗的打个比方,人与人之间通过语言来交流,而程序和程序之间通过API来交流。目前市场主流的API设计包括RPC,RESTFul,GraphQL等设计思路,关于API风格优劣,好坏众说纷纭,但客观来说:RPC资历最老,并沿用至今,RESTFul后
2020-07-09 17:14:32
382
原创 SpringBoot官方文档阅读笔记(1)——使用SpringBoot
之前很多代码结构上的一些常见用法,或者公约,在Spring官网的文档里有相关描述。对实际的开发没有什么帮助,大概就是知道为什么要这么规定了。1,考虑到Spring注解的扫描问题,推荐使用反向域名作为包名。2, 主类置于包的根目录下但是它给出的理由是@SpringBootApplication隐式定义为了搜索包,然后搜索@Entity类,大概这个意思,不太懂???3, 配置类推荐使用注解@Configuration刚刚搜了一下。SpringBoot默认扫描入口类包下的所有子包。4, bea
2020-07-07 10:16:38
224
原创 使用Nginx防止IP地址被恶意解析
使用Nginx的目的使用阿里云ECS云服务器,首先聊聊笔者使用Nginx的背景。初始化ECS后会生成一个公网IP,默认访问IP地址自动访问80端口,此时通过ip地址可直接访问启动在80端口的服务。如再把域名解析到当前ip,即可通过域名直接访问80端口的服务。然后,出现了一个问题:任何人都可以将域名解析到ip地址,也就是说,通过其他域名也可以访问到自己ECS上的服务。至于目的,这种攻击手段未免太光明正大了,应该是想养域名然后售卖(猜测,脑洞够大的大大交流一下)。避免这种攻击的方式有很多种,参考网上的
2020-06-05 07:54:37
705
原创 Druid参数说明
配置缺省值说明name配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this). 另外配置此属性至少在1.0.5版本中是不起作用的,强行设置name会出错。详情-点此处。url连接数据库的url,不同数据...
2020-02-04 14:36:00
713
原创 Beego快速入门
Beego快速入门参考官方文档:https://beego.me/docs/quickstart/一,开发环境准备安装beego及bee工具(需要安装Git)go get -u github.com/astaxie/beegogo get -u github.com/beego/bee命令执行完成之后,会在GoPath下生成目录及文件(GoPath主要放置第三方依赖)在环境...
2020-01-15 14:47:00
290
原创 Ubuntu常用配置
1 更新软件源打开软件和更新应用程序,换成阿里云的软件源。2 常用命令关于apt和apt-getAPT是一种包管理系统,然后衍生了apt-cache,apt-config,apt-get等命令。由于命令过于分散,引入apt,apt=apt-get+apt-cache+apt-config。apt是三种命令的精简,但是相对来说,apt命令无法涵盖所有的apt-get等的命令。但是...
2020-01-13 11:03:00
155
原创 Golang入门及开发环境配置
Go语言诞生背景计算机硬件更新频繁,主流编程语言无法发挥多核多CPU的性能软件系统复杂度不断变高,缺乏简洁高效的编程语言C/C++运行速度快,但编译速度慢Go语言特点静态类型开发语言静态:编译时检查变量类型,如C++,Java动态:运行时检查变量类型,如JavaScript自动垃圾回收机制编译速度快(直接编译成机器码,不依赖其他库)并发性能高(语言...
2019-12-24 11:47:00
143
原创 常用软件清单
OS(win10)下载镜像:MSDNU盘启动盘工具:rufus,UltraISO基础软件360驱动大师:http://weishi.360.cn/qudongdashi/index.htmlWPS:https://pc.wps.cn/WInRAR:http://www.winrar.com.cn/QQ:https://im.qq.com/微信:https://weixin...
2019-12-18 21:23:00
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人