自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 Java基础

多线程Dateequals和"=="String字符串String变量存的是对String对象的引用,String对象里存的才是字符串的值。Sting变量、String对象和字符串值是不同的String方法charAt(index) 返回指定位置字符trim() 返回一个新字符串,去掉了两边的空白字符concat() 连接字符串length() 长度substring(x,y) 返回字符串的子串indexOf / lastIndexOf 返回第一个或..

2020-06-30 17:41:37 307

原创 Java虚拟机

jvm相关知识

2022-08-30 22:59:39 279 1

原创 restTemplate上传文件

关键点:要设置contentType将File转换格式public Response<FilePushResponse> pushFile(FilePushRequest filePushRequest, MultipartFile multipartFile) { String fileName = "app_push_" + new Date().getTime(); String originName = multipartFile.getOrig

2021-09-06 19:20:24 221

原创 分布式+Dubbo+Zookeeper

分布式+Dubbo+Zookeeper架构发展[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uVJBvnEF-1620458493178)(https://dubbo.apache.org/imgs/user/dubbo-architecture-roadmap.jpg)]单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机

2021-05-08 15:21:59 239 5

原创 HashMap & HashTable & ConcurrentHashMap

文章目录1、HashMap简介数据结构面试题:如果两个键的hashcode相同,如何存储?HashMap成员变量常见问题为什么hashmap容量一定是2的n次幂?初始化大小10会怎么样?为什么Map桶结点大于8才转为红黑树构造方法成员方法增加方法转换红黑树扩容方法_resize()扩容机制1、什么时候需要扩容2、扩容是什么resize源码删除方法_remove()查找元素方法_get()遍历HashMap的几种方式1、分别遍历key、value2、迭代器 entrySet (推荐★★★)3、keySet4、

2021-04-20 20:50:29 88

原创 八大排序算法

文章目录Java实现八大排序算法1. 直接插入排序 (向前遍历插入合适位置)基本思想算法描述代码实现复杂度分析比较与总结2. 希尔排序基本思想算法描述代码实现复杂度分析总结与思考3. 简单选择排序 (选最小的放前面)基本思想算法描述代码实现复杂度分析总结与思考4. 堆排序基本思想算法描述代码实现复杂度分析总结与思考5. 冒泡排序 ★★★★基本思想算法描述代码实现复杂度分析总结与思考6. 快速排序★★★★基本思想代码实现复杂度分析7. 归并排序基本思想算法描述代码实现复杂度分析总结与思考8. 基数排序基本思

2021-04-19 23:40:30 104

原创 SpringBoot

文章目录1. 第一个springBoot程序2. 原理初探pom.xml启动器主程序1. 获取候选的配置2.这个类又调用了 SpringFactoriesLoader 类的静态方法3.我们继续点击查看 loadSpringFactories 方法4.发现一个多次出现的文件:spring.factories,找到它spring.factories结论:run方法流程3. properties配置文件4. yml属性注入实体类 Person.classapplication.yml5. 一些注解@Config

2021-04-19 22:23:02 93

原创 Redis

文章目录Redis1、Nosql概述为什么要用Nosql什么是NoSQL阿里巴巴演进分析NoSQL的四大分类2、Redis入门概述Windows安装启动测试性能基础的知识3、五大数据类型String(字符串)List (列表)Set (集合)Hash(哈希)Zset(有序集合)4、三种特殊数据类型geospatial地理位置HyperloglogBitmap5、事务1)正常执行事务2)放弃事务3)编译型异常 (代码有问题!命令有错)4)运行时异常(1/0)监控 WatchRedis的监视测试6、Jedis

2021-04-19 22:03:23 117

原创 maven

文章目录一、使用入门1. 编写pom2. 编写主代码3. 编写测试类4. 打包5. 执行jar包6. 总结 ★★★★二、坐标和依赖1. 坐标2. 坐标详解3. 依赖调解三、仓库1. 分类2. 私服仓库3. 远程仓库配置4. 快照版本★★★5. 镜像四、生命周期和插件1. 命令行插件配置五、聚合与继承1. 聚合2. 继承3. 可继承的POM元素4. 依赖管理★★★★5. 约定优于配置六、使用Nexus创建私服七、版本管理1. 版本管理一、使用入门1. 编写pompom.xml是核心<groupI

2021-04-19 22:02:48 69

原创 ArrayList扩容

ArrayLiist文章目录ArrayLiist扩容机制1. `add` 方法2. `ensureCapacityInternal`方法3. `ensureExplicitCapacity`方法4.` grow`方法结论扩容机制这里以无参构造函数创建的 ArrayList 为例分析1. add 方法/** * 将指定的元素追加到此列表的末尾。 */ public boolean add(E e) { //添加元素之前,先调用ensureCapacityIntern

2021-02-22 09:52:54 159

原创 多线程

线程与线程池文章目录线程与线程池为什么要使用线程线程线程的状态线程创建三种方式线程池创建线程池?Executor (接口) 跟 Execotors(类) 区别ThreadPoolExecutor创建线程池--核心参数线程池执行流程图ExecutorService接口继承树ScheduledThreadPoolExecutor四种常见线程池1、newFixedThreadPool2、newCachedThreadPool3、newScheduledThreadPool4、newSingleThreadExe

2020-12-25 14:22:24 104

原创 线程池&并发编程

目录线程状态线程的创建Thread类常用方法多线程的同步控制:线程之间的通信(只能在同步代码块里是实现)乐观锁和悲观锁悲观锁乐观锁:使用场景ThreadPoolExecutor五种常见线程池1、FixedThreadPool2、SingleThreadExecutor3、ScheduledThreadPool4、CachedThreadPool常见问题1、如果一个类,其方法都是有synchronized修饰的,那么该类就叫做线程安全的类2、为什么我们调用 start() 方法时会执行 run() 方法,为什

2020-12-14 15:12:09 71

原创 DDL与DML的区别

DML(Data Manipulate Language) 数据操控语言对数据进行增删改查,select/update/delete/insertDDL(Data Definition Language) 数据定义语言通常对数据库中的对象(database、table)的操作,如create/alter/drop

2020-12-04 09:36:34 128

原创 UML类图

111

2020-12-02 14:53:07 59

原创 索引背后的数据结构

常见查找算法顺序查找:遍历二分查找:前提是有序列表哈希查找:最高效,O(1),hash冲突,JDK1.8里HashMap:数组+链表+红黑树(处理hash冲突)二叉查找树/二叉排序树/二叉搜索树:二分查找的思想,时间复杂度就是树的深度为logn。缺点:可能会造成树一边倒,时间复杂度变O(n),查找变慢。故演变出平衡二叉树(AVL)平衡二叉树(AVL树)。红黑树:高效的查找算法结构B+树B-Tree…红黑树底层:特殊的二叉查找树...

2020-11-11 11:22:58 207 1

原创 String面试题

1、判断s1和s2是否相等 String s1 = "123"; String s2 = "123"; System.out.println(s1 == s2); // true System.out.println(s1.equals(s2)); // trueString字符串属于常量,常量需要进入内存中的方法区的常量池(进入常量池规则:如果常量池中没有这个常量,就创建一个,如果有就不再创建了),所以s2的引用也指向内存区中已经存在的“123”,所以地址一样,==对于引用类型比

2020-10-30 19:48:03 1953

原创 JVM

jvm内存模型分为五个部分new的对象放在堆常量池在方法区中

2020-10-30 19:04:46 102

原创 设计模式

单例单例模式最重要的是构造器私有化,别人无法new出对象。spring中的Bean默认都是单例的。饿汉式单例:先把所有资源加载出来,如很多数组(存在着资源浪费的问题)package single;// 饿汉式单例// 可能会浪费内存,于是出现了懒汉式单例public class Hungry { // 单例中最重要的思想:构造器私有,别人就无法new对象,所以只有一个单例 private Hungry(){ } private final static

2020-10-18 15:27:17 104

原创 计算机网络

通信协议(在传输层)TCP/IP协议簇:实际上是一种协议TCP:用户传输协议(打电话,电话通了才能聊)UDP:用户数据报协议(发短信、写邮件,发出去就不管了)TCP/UDP两者对比TCP:连接,稳定三次握手,四次挥手最少三次,保证稳定连接A:你愁啥?B:瞅你咋滴?A:干一场!客户端、服务端传输完成,释放连接,效率低UDP:不连接、不稳定客户端、服务端没有明确的界限不管有没有准备好,都可以发给你…在TCP层,有个FLAGS字段,这个字段有以下几个标识.

2020-10-17 20:53:22 99

原创 MySql

什么是MySQL?MySQL 是一种关系型数据库MySQL 当前默认的存储引擎是InnoDB,存储引擎中,只有 InnoDB 是事务性存储引擎,支持事务。MyISAM和InnoDB区别?MyISAM 强调的是性能,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持。InnoDB 提供事务支持,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction

2020-10-17 14:53:24 115

原创 Ajax

Ajax简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。例如百度搜索的提示jQuryjQury是一个库,js的大量函数(方法)$.post <script src="${pageContext.request.contextPath}/statics/js/jquery-3.5.1.js"></script>

2020-10-13 15:53:58 89

原创 springMVC

我们假设请求的url为 : http://localhost:8080/SpringMVC/hello原理用户发出请求,DispatcherServlet接收请求并拦截请求。dispatcherServlet找到配置文件中的处理器映射器返回映射器结果,处理器适配器找到ControllerController执行具体业务,执行后返回ModelAndViewDispatcherServlet调用视图解析器解析ModelAndView的视图名DispatcherServlet根据视图名,调用具体.

2020-10-10 16:59:31 101

原创 转发(forward)和重定向(redirect)的区别?

forward (转发)服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,因此从浏览器的地址栏中可以看到跳转后的链接地址,很明显redirect无法访问到服务器保护起来资源,但是可以从一个网站redirect到其他网站。Forward(转发)更加高效,所以在满足需要时尽量使用forward(通过调.

2020-10-10 10:30:59 284

原创 MyBatis

1、简介是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。获取Mybatismaven<!-- https://mvnrepository.com/artifact/org.mybatis/mybati

2020-10-03 21:41:48 188

原创 反射&注解

反射:(将类的各个组成部分封装成为其他对象)类的成员对象封装成field对象,构造方法封装成constructor对象,成员方法封装成为method对象,就是反射机制。获取class对象的方式1、Class.forName(“全类名”); 多用于配置文件2、类名.class; 通过类名的属性class获取。多用于参数的传递3、对象.getClass(); 该方法在object类中定义。多用于对象的获取字节码的方式Class对象功能// 可对私有变量进行访问xxx.setAccessibl

2020-09-24 16:34:13 90

原创 过滤器&拦截器&监听器

拦截器所有的请求都被过滤给了这个 Filter<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>

2020-09-23 15:40:17 87

原创 GET和POST的区别

GET和POST是HTTP协议中的两种发送请求的方法HTTP是基于TCP/IP的关于数据如何在万维网中通信的协议区别最直观区别:GET把参数包含在URL中,POST通过request body传递参数GET和POST的底层是TCP/IP,GET和POST能做的事情是一样的,如果给POST加上url参数,GET加上request body,技术上是完全行的通GET只支持url编码,POST支持多种编码GET请求在URL中传送的参数是有长度限制的,而POST没有POST比GET安全,因为GE.

2020-09-20 10:28:08 51

原创 Git

SSH公钥私钥生成puttygit远程与本地关联本地 Git 配置配置一下一些基本的信息$ git config--global user.name "Your Name"$ git config --global user.email "email@example.com" 首先得创建一个远程项目的仓库,用于存放项目,项目名可以和本地相同,暂无内容 进入本地项目,进行项目初始化,把本地的目录变成git本地仓库, git status 可以查看本地目录的状态信息  

2020-07-29 19:42:25 413

原创 Cocos相关

本地存一个字段,全局调用LocalStorageData setlengthTime(value) { cc.sys.localStorage.setItem("isAddLength", value); }, islengthTime() { let length = cc.sys.localStorage.getItem("isAddLength"); if (length === "1") { thi

2020-07-20 19:16:13 88

原创 TS

函数定义函数声明法function add(n1: number, n2: number): number { return n1 + n2;};console.log(add(1, 2)); //3函数表达式法 var add = function (n1: number, n2: number): number { return n1 + n2;};console.log(add(1, 2)); //3类class Greeter { greeting:

2020-07-07 20:29:52 127

原创 异常

异常 :在Java中,异常是一个类,产生异常就是创建异常对象并抛出了一个异常对象。异常并不是语法错误。error:指程序在执行过程中遇到或操作系统的错误,如内存溢出、虚拟机错等。不能处理(只能修改源代码才能运行),只能尽量避免Exception:编译期异常,进行编译java程序出现的问题。把异常处理掉,程序可以继续执行。异常产生过程:异常的处理throw关键字   可以使用throw关键字在指定的方法中抛出指定的异常。(本来是系统自己创建的异常.

2020-07-04 00:08:04 92

原创 泛型

泛型概念:一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型.泛型也可以看成是一个变量,用来接收数据类型.<E> 别的字母也行代表未知的类型ArrayListArrayList集合在定义的时候,不知道集合中都会存什么类型的数据,所以类型使用泛型.在创建集合对象的时候会确定泛型的数据类型不使用泛型好处:集合不使用泛型,默认的类型时Object类,可以存储任意类型的数据弊端:不安全,容易引发异常()使用泛型好处:避免了类型转换的麻烦,存

2020-07-02 23:03:00 84

原创 Java容器(Map、Set、List)

Java容器CollectionHashSet中的hashCode:哈希值,十进制整数,由系统随机给出(就是对象的地址,是一个逻辑地址,是模拟出来的地址,不是数据实际存储的物理地址),在Object类中有int hashCode()方法可以获取该对象的哈希码值。String类中的哈希值:重写了hashCode方法SetHashSetHashSet集合存储数据的结构(哈希表)jdk1.8之前:哈希表 = 数组+链表jdk1.8之后:哈希表 = 数组+红黑树(提高查询速度)哈希..

2020-07-01 00:25:49 2852

原创 跳跃游戏(贪心)

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。利用贪心的思

2020-06-04 18:55:06 134

原创 乘机最大子数组(动态规划)

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。class Solution {public: int maxProduct(vector<int>& nums) { //

2020-06-04 15:26:14 261

原创 K个一组翻转链表

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5/** * Definition for singly-linked l

2020-05-31 16:54:45 120

原创 打家劫舍(滚动数组)

滚动数组是DP中的一种编程思想。简单的理解就是让数组滚动起来,每次都使用固定的几个存储空间,来达到压缩,节省存储空间的作用。比如斐波那契额数列 d[0]=1; d[1]=1; for(i=2;i<80;i++) d[i]=d[i-1]+d[i-2];你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非

2020-05-29 11:47:04 181

原创 和为K的子数组(前缀和+哈希表优化)

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。输入:nums=[0,0,0],k=0输出:6 注意是连续的通常,涉及连续子数组问题的时候,我们使用前缀和来解决。map中前缀和pre为键,出现的次数为值,在找和为k时,map.find(pre-k)即可。如果存在,count加的是出现的次数,因为map中键是唯一的,而且如果存在两个pre相

2020-05-28 15:21:57 202

原创 字母异位词分组(map对数组的映射)

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。来自:leetcode49**示例:**>输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。建立map:string对vector的索引,map的key为排序后的单词class Soluti

2020-05-26 21:01:42 235

原创 环形链表

快慢指针,如果有环,则快慢指针终会碰上。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { if(hea.

2020-05-14 15:26:49 62

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除