- 博客(74)
- 资源 (12)
- 收藏
- 关注

原创 Java后端知识体系
Java后端知识体系基础重点(必须掌握)Java语言语言基础 《Java核心技术》基础语法面向对象常用API异常处理集合IO多线程网络编程泛型反射注解JVM 《深入理解Java虚拟机》类加载机制双亲委托字节码执行机制JVM内存模型堆区虚拟机栈方法区GC垃圾回收JVM性能监控与故障定位JVM调优多线程、锁、并发 1:《Java并发编程的艺术》、2:《Java并发编程实战》并发编程基础线程池
2021-04-26 13:46:50
286
原创 Maven基础
Maven是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
2023-06-26 22:28:52
590
原创 操作系统基础
操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。操作系统存在屏蔽了硬件层的复杂性。操作系统就像是硬件使用的负责人,统筹着各种相关事项。操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。
2023-06-26 17:27:14
535
原创 JVM整理(一)
JVM 是 Java Virtual Machine 的缩写,它是一个虚构出来的计算机,一种规范。通过在实际的计算机上仿真模拟各类计算机功能实现···好,其实抛开这么专业的句子不说,就知道JVM其实就类似于一台小电脑运行在windows或者linux这些操作系统环境下即可。它直接和操作系统进行交互,与硬件不直接交互,而操作系统可以帮我们完成和硬件进行交互的工作。Java文件经过编译后变成 .class 字节码文件字节码文件通过类加载器被搬运到 JVM 虚拟机中。
2023-06-26 17:19:36
461
原创 线程启动的原理
我们都知道启动一个线程,必须调用一个Thread的start()方法。在面试时经常可能会被问到start()和run()方法的区别,为什么一定要用start()方法才是启动线程?Thread是多线程的根,每一个线程的开启都始于Thread的start()方法。那么线程是如何被开启,run方法是如何被执行的呢?看完start()方法,线程的启动逻辑已经比较清楚,要探究更底层的原理就需要探究native方法start0()了。对于源码中的注释并没有省略,都进行了翻译,可以更好的理解整个启动过程。
2023-04-19 09:34:50
99
原创 Spring Framework(三)依赖注入
Dependency Injection,依赖注入。对象之间依赖关系的管理交给 Spring 维护;是实现控制反转的方式之一;可以降低程序之间的耦合(依赖关系)。Spring 实现的 IoC 容器中,基本类型和对象都可以注入,按配置细节区分:Java 基本类型StringbeanSpring 自建 bean(未自己申明的 bean,可以通过 getBean 方法获取到)非 bean(无法通过 getBean 方法获取到)数组集合(List、Set、Map)pom<?x
2021-10-21 14:41:14
916
原创 Spring Framework(二)IOC和依赖查找
IOCIoC,Inversion of Control,控制反转,是面向对象编程中的一种设计原则,用来降低代码的耦合度。最通俗易懂的理解就是,本来由程序员写代码创建和组装类及依赖对象的控制权,反转交给容器去控制。IoC 并非 Spring Framework 特有,也有一些其他的 IoC 开源框架如 Apache Avalon、PicoContainer、Google Guice;只是 Spring 被大量使用,其 IoC 的功能也被熟知。IoC 的实现策略有很多,但最主要的两种方式就是依赖查找和依赖
2021-10-21 14:32:00
280
原创 Spring Framework(一)功能模块
Boot、Cloud 都是建立的 Framework 之上,Spring Framework 就是核心。1、核心技术点(Core technologies)IoC 容器(IoC Container)| 依赖注入(dependency injection)事件(Events)资源管理(Resources)国际化(i18n)校验(Validation)数据绑定(Data Binding)类型装换(Type Conversion)表达式(Spring Express Language)面向切
2021-10-21 10:09:18
322
原创 HashMap底层实现整理
理解HashMap先要理解HashCodeHashCodeHashCode 为什么使用 31 作为乘数?HashCode源码// 获取 hashCode "abc".hashCode();public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i++) {
2021-10-10 00:03:53
100
原创 Java线程池
创建线程的四种方式实现Runnable接口,重写run()方法(避免多继承局限)继承Thread类,重写run()方法(本质:Thread类也是实现Runnable接口)实现Callable接口,重写call()方法,有返回值使用线程池(使用原因:不推荐手动创建线程,不方便管理,易造成较大开销或浪费)初识线程池在Java中,我们可以利用多线程来最大化地压榨CPU多核计算的能力。但是,线程本身是把双刃剑,我们需要知道它的利弊,才能在实际系统中游刃有余地运用。线程池,本质上是一种对象池,用于管
2021-10-09 14:34:06
184
原创 Java命名规范
好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。若编程语言足够有表达力,就不需要注释,尽量通过代码来阐述。举个例子:去掉下面复杂的注释,只需要创建一个与注释所言同一事物的函数即可// check to see if the employee is eligible for full benefitsif ((employee.flags & HOURLY_FLAG) && (employee.age > 65))应替换为if (emplo
2021-09-15 10:50:27
379
原创 JavaIO基础
File对象路径绝对路径C:\Windows\notepad.exe相对路径/usr/bin/javac方法获取路径getAbsolutePath()判断是否是文件/文件夹isFile()isDirectory()创建文件createNewFile()创建临时文件createTempFile()JVM退出时自动删除文件deleteOnExit()删除文件delete()遍历文件和目录
2021-09-15 10:42:38
90
原创 Spring Boot+Dubbo 入门
Dubbo 架构一:zookeeper 环境安装搭建1、搭建 zookeeper 之前要确保当前的机器已经有 JDK 环境。2、将 conf 目录下 zoo_sample.cfg 文件重命名为 zoo.cfg二 :实现服务接口 dubbo-interface主要分为下面几步:创建 Maven 项目;创建接口类将项目打成 jar 包供其他项目使用项目结构:dubbo-interface 后面被打成 jar 包,它的作用只是提供接口。1. dubbo-interface 项目创建
2021-08-26 17:58:00
407
原创 Go 代码记录(一)
1、hello world!// 同一个目录下面不能有个多 package mainpackage main// 导包import "fmt"// 程序入口func main() { fmt.Println("Hello world")}2、HTTP文件服务器// 标记当前文件为 main 包,main 包也是 Go 程序的入口包package main// 导入 net/http 包,这个包的作用是 HTTP 的基础封装和访问import ( "net/http")
2021-08-20 21:48:31
117
原创 Servlet 复习
Servlet 是什么?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以
2021-08-11 19:53:19
400
转载 架构学习整理(一)
基本概念分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。高可用系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性。集群一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如Zookeeper中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服
2021-08-02 22:14:15
403
原创 Spring Cloud(二)Eureka:服务注册与发现
Spring Cloud Eureka:服务注册与发现Spring Cloud Eureka是Spring Cloud Netflix 子项目的核心组件之一,主要用于微服务架构中的服务治理。本文将对搭建Eureka注册中心,搭建Eureka客户端,搭建Eureka集群及给Eureka注册中心添加登录认证进行介绍。Eureka简介在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。每个微服务都会定时从注册中心获取服务列
2021-07-28 13:54:54
151
原创 Spring Cloud (一)概述
SpringCloud整体架构概览什么是SpringCloud目标协调任何服务,简化分布式系统开发。简介构建分布式系统不应该是复杂的,SpringCloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。SpringCloud是在SpringBoot的基础上构建的,使开发者可以轻松入门并快速提高工作效率。SpringCloud为开发人员提供了快速构建分布式系统架构的工具,例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,
2021-07-28 10:21:01
125
原创 设计模式学习记录(二)代理模式
前言为什么要学设计模式??工作一年多了,也写了一年多的业务代码,if else 用的炉火纯青,一个 if else 不行就两个 else if 哈哈,然后就变成了一坨。。,这谁顶得住啊,不行,写代码一定要优雅~~,在合适的场景使用合适的设计模式,重用代码、让代码更容易被他人理解、保证代码可靠性。代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。1、创建一个接口packag
2021-07-11 23:10:58
88
转载 计算机网络学习整理
计算机网络学习的核心内容就是网络协议的学习。网络协议网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我们的普通话的作用。同样,放眼全球,我们与外国友人沟通的标准语言是英语,所以我们才要苦逼的学习英语。
2021-05-30 22:53:29
403
原创 136、只出现一次的数字
标签:位运算、哈希表题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?示例1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4解法方法一:位运算class Solution { public int singleNumber(int[] nums) { int single = 0;
2021-05-30 16:15:51
53
原创 数据结构基础知识
概述数据结构是为实现对计算机数据有效使用的各种数据组织形式,服务于各类计算机操作。不同的数据结构具有各自对应的适用场景,旨在降低各种算法计算的时间与空间复杂度,达到最佳的任务执行效率。分类线性数据结构(物理结构)数组(Array)、链表(Linked List)、栈(Stack)、队列(Queue)非线性数据结构(逻辑结构)树(Tree)、堆(Heap)、散列表(Hashing)、图(Graph)数组数组是将相同类型的元素存储于连续内存空间的数据结构,其长度不可变。如下图所示,构建此数组
2021-05-30 16:11:49
616
原创 容器技术-Docker入门
基础知识镜像imageDocker镜像文件(核心文件)容器containerimage生成运行的实例仓库repository公共仓库Docker Hub改为国内镜像(阿里云…)C/S架构基本命令验证安装docker versiondocker info启动docker服务service docker startsystemctl start docker搜索docker search [镜像名]image通过image文件才
2021-05-04 23:28:38
172
原创 Java多线程基础
基础进程一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。线程的生命周期新建状态一个新产生的线程从新状态开始了它的生命周期。它保持这个状态直到程序start这个线程。就绪状态当一个线程等待另外一个线程执行一个任务的时候,该线程就进入就绪状态。当另一个线程给就绪状态的线程发送信号时,该线程才重新切换到运行状态。运行状态当一个新状态的线程被start以
2021-05-04 12:06:09
133
原创 开发必备----Git
基础知识版本控制系统svn集中式,有一个中央服务器,需要先从上面拉取最新的代码才能干活,干完活再推送上去,必须联网才能工作,对网络要求大基本概念repository源代码仓库checkout提取代码commit提交代码update更新代码从远程仓库checkout代码 --> 修改 --> update代码(副本可能过期需要更新) --> 调试没问题 --> 提交 --> 大家都可以看见修改不同代码会合并,修改同一行代码会产生冲突,需
2021-05-04 09:34:55
70
原创 Java集合(复习整理)
概念围绕一组标准接口设计,是一个用来代表和操作集合的统一架构包含内容接口操纵独立的集合代表细节实现(类)实现接口,可重复使用算法多态,不同的集合相同的方法(插入,排序等)有着不同的实现图接口CollectionList继承Collection 和一个 List 实例存储一个有序集合的元素Set不包含重复元素的集合SortedSet继承Set,保存有序的集合QueueMap将唯一的键映射到值(键/值对)S
2021-05-03 23:55:00
270
2
原创 Java基础(复习整理)
基础知识和语法Java语言初识计算机语言发展机器语言、汇编、C、C++、JavaJava的诞生与发展1995JavaSEJavaMEAndroidJavaEE2006(大数据)HadoopSpark流式计算ScalaJDK开发工具包配置环境变量JAVA_HOMED:\JDK8_211path;%JAVA_HOME%\bin;%JAVA_HOME%\jre\binCLAS
2021-05-03 23:10:09
83
原创 技术专家
硬实力操作系统、网络编程、数据结构、算法软实力思考力探因果寻找一个或多个原因寻找根本原因想办法办法总比困难多学习力持续学习构建知识树,思维导图鞭策自己工作之余坚持学习碎片学习、碎片分享上厕所、坐车、吃饭几百字都行,只要记录分享突击学习问题需要解决,但知识不够,临时突击学习收获外化复盘工作思路总结工具使用技巧了解技术内部原理沟通力沟通分享...
2021-05-03 22:38:40
209
3
原创 Spring Boot整合WebSocket,使用内部Tomcat容器遇到的坑
报错socketJQ.js:101 Failed to load http://10.2.52.73:9090/checkUsernameAppType?appType=AT1505728361851: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access.ajax @ soc
2021-04-14 22:40:28
577
原创 2、两数相加
代码有详细注释和理解标签:递归、链表、数学题目给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。示例输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.代码package leetcode;/** * 2、两数相加 * 标签:递归、链表、数学 *
2021-03-26 10:28:47
162
原创 1、两数之和
题目给定一个整数数组nums和一个整数目标值 target,请你在该数组中找出和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9,返回 [0, 1]。代码package leetcode;import java.util.Arrays;im
2021-03-24 23:21:53
126
原创 链表----面试题02.03.删除中间节点
题目实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。示例输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f题解看了下大佬的解题思路,属实牛逼!由于只能访问这个被删除的节点,那么就让下个节点变成这个被删除的节点。(杀不掉我,我就变成你,然后再干掉你,就等于杀死了自己)代码class Solution { public v
2021-03-14 23:48:45
129
原创 数组----1480.一维数组的动态和
题目给你一个数组nums。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])。请返回 nums 的动态和。示例输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。代码class Solution { public int[] runningSum(int[] nums) { // 根据数组长度循环 for(int
2021-03-07 21:32:51
330
原创 软件工程师
1,Days always fill up. Only plan for 3-4 hours of real work per day.其实每天只有3-4个小时能专心编码,充分利用这些时间。2,Work more when you’re in the zone. Relax when you’re not.在状态的时候多干一些,不在状态时可以就去做个大保健。3,Stop multi-tasking. It merely kills your focus.同时干几件事只能分散你的注意力,程序员务必单
2021-03-07 21:31:09
90
原创 开发必备----Linux目录以及常用命令整理
文章目录Linux系统目录系统服务管理systemctl文件管理lspwdcddatepasswdsuclearmanwhofreeps端口进程topmkdirmorecattouchrmcpmv压缩与解压tar终端编辑器磁盘和网络管理dfduifconfignetstatwget文件上传下载软件的安装与管理rpmyumLinux系统目录/ -- 根目录├── bin -- 大部分系统命令├── sbin -- 超级用户才能执行的命令目录├── boot -- 系统启动相关目录├── dev
2021-01-28 10:04:25
195
1
原创 源码阅读(一):Object
源码版本:JDK8注释/* * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */package java.lang;这段就不用说
2021-01-27 15:00:17
124
4
原创 数据库建表规约整理
建库1、库名与应用名称尽量一致建表1、表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。说明:MySQL 在 Windows下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。正例:aliyun_admin,rdc_config,level3_name反例:AliyunAdmin,rdcConfig,level
2021-01-24 14:29:21
506
原创 设计模式学习记录(一)单例模式
单例模式要点某个类只能有一个实例必须自行创建实例必须自行向整个系统提供这个实例实现只提供私有的构造方法含有一个该类的静态私有对象提供一个静态的公有方法用于创建、获取静态私有对象代码实现方案饿汉式package designPatterns.SingletonMode;/** * 单例模式 * 饿汉式:创建对象实例时直接初始化 * 用空间换时间 * @author Fengx * @date 2020/12/27 */public class HungrySin
2020-12-27 21:57:17
107
2
Taxi-SSM项目.zip
2020-06-16
Taxi-H5App(附带apk包).zip
2020-06-16
Java Web课程设计-贫困认定管理系统.zip
2020-02-17
Spring Boot2 教程.pdf
2020-02-17
推荐系统准备数据集【后】的源码资料.rar
2020-02-17
Android课程设计-悟空小账本(附带设计文档)
2020-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人