自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql将utf8改为utf8mb4后中文出现乱码问题。

5.2.12.RELEASE->5.2.21.RELEASE->5.2.24.RELEASE->5.3.0->spring5.3.5(报错)将数据库驱动换成5.1.34,同时将数据库连接参数中:characterEncoding=utf8设置为utf8mb4。5.2.12.RELEASE->5.3.2->5.3.20->5.3.27->6.0.0(报错)由于数据库版本为5.7.32,使用的数据库驱动为5.1.10,版本过低。问题:mysql将utf8改为utf8mb4后中文出现乱码问题。

2023-07-04 18:06:14 843

原创 【Java】TreeMap与TreeSet

方法来保证唯一性,它的去重是依靠比较器来去重,每次插入都会遍历比较来寻找节点的插入位置,如果发现某个节点的值是一样的那就会直接覆盖。映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。HashSet不能保证元素的排列顺序,而TreeSet支持自然排序、定制排序两种排序的方式;HashSet是用HashMap来存储数据,而TreeSet是用红黑树来存储数据。HashSet中的元素可以是null,但TreeSet中的元素不能是null;

2023-06-19 22:16:10 389

原创 【java】排序相关

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,A1=A2,且A1在A2之前,而在排序后的序列中,A1仍在A2之前,则称这种排序算法是稳定的;每遇到这样一个降序组,++count,当count大于MAX_RUN_COUNT(67),被判断为这个数组不具备结构,也就是说这数据时而升时而降,波峰波谷太多,排列太过陡峭,说明不适合采用归并排序,还是使用快速排序为宜。9到6是降序,为一个组,然后把降序的一组排成升序:1,6,7,8,9,8。

2023-06-17 23:22:14 549

原创 【JAVA】CAS总结

CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,就是说CAS是靠硬件实现的,JVM只是封装了汇编调用。简单解释:CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较下在旧值有没有发生变化,如果没有发生变化,才交换成新值,发生了变化则不交换。CAS操作是原子性的,所以多线程并发使用CAS更新数据时,可以不使用锁。

2023-06-12 22:10:13 2890

原创 【线程】Java 中是如何实现线程同步的?

直接使用thread.stop()来强行终止线程,线程会立即终止执行,可能会产生不可预料的结果。在调用thread.stop()后会导致该线程所持有的所有锁突然释放(不可控制),那么被保护数据就有可能呈现不一致性,其他线程在使用这些被破坏的数据时,有可能导致一些很奇怪的应用程序错误。通过使用volatile修饰的boolean类型的共享变量,在设置exit等于true时,该运行中的线程会退出while循环,执行完run方法结束。使用特殊域变量(volatile)实现线程同步(保证 可见性、有序性。

2023-05-29 22:09:54 104

原创 【线程】创建线程的几种方式

创建 Runnable实现类,即MyRunnable的实例,创建一个Thread对象,将此实例作为Thread的参数target传入,该Thread对象才是真正的线程对象。创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值。定义 Runnable接口的实现类MyRunnable,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。④. 通过线程池创建线程。

2023-05-27 22:54:39 59

原创 【线程】线程的生命周期和状态

BLOCKED , WAITING , TIMED_WAITING 都是 Java API 层面对OS【阻塞状态】的细分,后面会在状态转换一节 详述。【可运行状态】(就绪状态)指该线程已经被创建(与操作系统线程关联),随时可以由 CPU 调度执行。【终止状态】表示线程已经执行完毕,生命周期已经结束,不会再转换为其它状态。NEW 新建状态,线程对象刚被创建,但是还没有调用 start() 方法。【初始状态】仅是在语言层面创建了线程对象,还未与操作系统线程进行关联。(1)从OS层面,5状态模型。

2023-05-21 21:05:38 61

原创 使用nginx反向代理突然失灵

之前使用nginx反向代理还好好的,后来再启动项目时突然失灵,浏览器显示如下。然后开始排查错误,首先直接使用ip地址访问是正常的,然后使用hosts中映射的域名访问是无效的,这说明hosts中的配置没起作用。是因为hosts是一个本地的dns解析服务,所以在本地有一个专门的dns client服务在后台运行,而这个服务会有一个缓存机制,所以有时可能不能及时生效。这是可以通过刷新dns缓存或手动重启dns client服务来解决。刷新命令为:ipconfig /flushdns。然

2022-05-31 17:28:00 5135

原创 一台机器连接同一局域网下的另一台机器的虚拟机中的mysql

场景:因为项目开发,自己电脑的配置不够用,于是用实验室里的一台电脑A当做主机器,上边运行IDEA等,另一台电脑B充当服务器,运行虚拟机,虚拟机上运行mysql、redis等。一、首先,关闭电脑B的window防火墙控制面板->系统和安全->Windows Defender防火墙->启用或关闭Windows Defender防火墙->二、先保证电脑A能连接电脑B,需要再B上vmware开启端口映射功能三、虚拟机相关设置1.虚拟机中使用NAT模式,这...

2022-05-16 20:36:48 1218 2

原创 【java】Map接口

java Map接口

2022-04-26 21:31:23 379

原创 【java】Set接口-----TreeSet、HashSet-LinkedHashSet、EnumSet

Set接口

2022-04-26 21:13:12 403

原创 【java】 Collection接口

Collection接口

2022-03-31 10:12:21 1018

原创 springboot学习笔记

Spring Boot 2 学习笔记(2 / 2) ---01、基础入门-SpringBoot2课程介绍02、基础入门-Spring生态圈03、基础入门-SpringBoot的大时代背景04、基础入门-SpringBoot官方文档架构05、基础入门-SpringB...

2022-03-18 10:45:03 120

转载 【消息队列】

什么是消息队列?消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。消息队列,一般我们会简称它为MQ(Message Queue),嗯,就是很直白的简写。我们先不管消息(Message)这个词,来看看队列(Queue)。这一看,队列大家应该都熟悉吧。队列是一种先进先出的数据结构。先进先出在Java里边,已经实现了不少的队列了。那为什么还需要消息队列(MQ)这种中间件呢???其实这个问题,跟之前我学Redis的时候很像。R

2022-03-17 17:09:55 427

原创 【java springboot】HandlerInterceptor拦截器

1、类要实现Spring 的HandlerInterceptor 接口2、类继承实现了HandlerInterceptor 接口的类,例如已经提供的实现了HandlerInterceptor 接口的抽象类HandlerInterceptorAdapterpublic interface HandlerInterceptor { /** * 预处理回调方法,实现处理器的预处理(如检查登陆),第三个参数为响应的处理器,自定义Controller * 返回值:true表示继续.

2022-02-04 12:05:26 751

原创 【java springboot】 WebMvcConfigurer

WebMvcConfigurer配置类是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。public interface WebMvcConfigurer { void configurePathMatch(PathMatchConfigurer var1); void configureContent

2022-01-26 22:36:53 403

原创 DataTable

添加引用using System.Data;创建表//创建一个空表DataTable dt = new DataTable();//创建一个名为"Table_New"的空表DataTable dt = new DataTable("Table_New");创建列//1.创建空列DataColumn dc = new DataColumn();dt.Columns.Add(dc);//2.创建带列名和类型名的列(两种方式任选其一)dt.Columns.Add("co..

2021-11-26 16:05:23 380

转载 AspNetPager

AspNetPager 类应用于ASP.NET web form 应用程序中的分页控件。C# 语法:public class AspNetPager:WebControl, INamingContainer, IPostBackEventHandler, IPostBackDataHandler属性:名称 说明 AlwaysShow 获取或设置一个值,该值指定是否总是显示AspNetPager分页按件,即使要分页的数据只有一页。 AlwaysShowFirstLas

2021-11-26 15:30:05 148

转载 Spring

  1、IOC和DI IOC: 控制反转 即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序创建(spring) DI:  Dependency Injection  依赖注入 spring这个容器中,替你管理着一系列的类,前提是你需要...

2021-09-13 17:19:51 88

原创 【java】反射

public class ReflectionTest { //反射之前,对于Person的操作 @Test public void test1() { //1.创建Person类的对象 Person p1 = new Person("Tom", 12); //2.通过对象,调用其内部的属性、方法 p1.age = 10; System.out.println(p1.toString());...

2021-08-11 18:04:26 83

原创 ado.net

using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Ado.net{ class Program { static void Main(string[] args) { #r.

2021-07-20 22:28:45 95

原创 c# 反射

namespace _09Test07DllReflecte{ class Program { static void Main(string[] args) { //对Type类型的介绍 //1.怎么获取一个类型的Type(该类型的类型元数据) //MyClass m = new MyClass(); //Type type1 = m.GetType();//...

2021-07-19 17:16:12 81

原创 lambda表达式-委托

namespace _02匿名方法{ class Program { static void Main(string[] args) { //没有参数没有返回值的(lambda)表达式 //MyDelegate md = () => { Console.WriteLine("lambda表达式!!"); }; //md().

2021-07-15 23:06:42 270

原创 委托delegate

委托是一种数据类型,像类一样(可以声明委托类型变量)为什么用委托?namespace _委托{ class Program { static void Main(string[] args) { // MyClass mc = new MyClass(); //2.使用委托第二步:声明委托变量,并赋值。 //声明了一个委托变量md,并且new了一个委托对象,并且把方法M1c传

2021-07-15 15:54:07 92

原创 自定义泛型

namespace _03自定义泛型{ class Program { static void Main(string[] args) { //① MyClass<string> mc = new MyClass<string>(); MyClass<string, int, double, string, bool, int> mc = new MyClass<st.

2021-07-14 19:18:13 66

原创 Hashtable与Dictionary字典集合

Hashtable ht=new Hashtable (); //声明//利用foreach循环遍历Hashtable foreach (var item in ht.Key ){Console.WriteLine(“键是{0}=====值是{1}", item, ht[item]);}①Add( object key, object value ) //键必须唯一,值可以重复②ContainsKey( object key )//判断 Hashtable 是否包含...

2021-07-14 18:57:54 153

原创 【java】List接口-----ArrayList、LinkedList、Vector-Stack

【java】List接口-----ArrayList、LinkedList、Vector-Stack

2021-07-14 18:55:56 133

原创 字符串提供的各种方法

字符串提供的各种方法1)、Length:获得当前字符串中字符的个数2)、ToUpper():将字符转换成大写形式3)、ToLower():将字符串转换成小写形式4)、Equals(lessonTwo,StringComparison.OrdinalIgnoreCase):比较两个字符串能忽略大小写5)、Split():分割字符串,返回字符串类型的数组。string s = "a bdfd _+= ,,, fdf ";char[]chs = {...

2021-07-14 18:54:32 242

原创 多态 抽象类

实现多态的手段1)、虚方法步骤:将父类的方法标记为虚方法 ,使用关键字 virtual,这个函数可以被子类重新写一个遍。如 public virtualvoid Fly();重写的子类加override,如public override void Fly();2)、抽象类abstract当父类中的方法不知道如何去实现的时候,可以考虑将父类写成抽象类,将方法写成抽象方法。3)、接口:实现接口的类,将接口中的方法实现类型转换的另外一种方式Person p =new St.

2021-07-13 12:41:37 136

原创 静态成员,静态类,静态构造函数

namespace _01静态类和静态成员{ class Program { //不是所有的静态成员都必须写在静态类中。 static void Main(string[] args) { //实例成员是属于具体某个对象的。 Person hl = new Person(); hl.Name = "黄林"; hl.Age = 18; .

2021-07-12 21:21:31 183

原创 数组拷贝

(1)将Numbers数组的所有值拷贝到copyNumbers数组中去int[] copyNumbers=Array.copyOf(Numbers,Numbers.length());(2)可以这样写用来增加numbers数组大小int[] numbers=Array.copyOf(numbers,2*numbers.length());

2021-04-20 23:42:11 135

原创 String、StringBuilder、StringBuffer

String类1)s1.equals(s2)该函数用于比较两个字符串。 它返回布尔值'true'/'false'。 如果s1和s2完全相同,则返回“ true”,否则返回“ false”。2)s1.equalsIgnoreCase(s2)此函数还用于比较两个字符串,但忽略大小写,它返回布尔值'true'/'false'。 如果s1和s2相同(忽略大小写),则返回“ true”,否则返回“ false”。3)s1.length()此函数返回字符串s1的长度,即字符串的字符总数。...

2021-04-20 21:44:01 57

原创 题目:验证回文串

验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false法①class Solution {public: bool isPalindrome(string s) { string str; for (int i=0;i<s.size();i

2021-02-22 14:01:01 63

原创 题目:字符串中的第一个唯一字符

字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = "leetcode"返回 0s = "loveleetcode"返回 2法① 利用mapclass Solution {public: int firstUniqChar(string s) { map<char,int> map; for(auto c:s){ ++map[c];

2021-02-21 19:00:58 76

原创 hashmap

hashmapat():根据Key值查找容器内元素,并返回map元素的引用。begin():指向容器内的第一个元素的迭代器。迭代器访问元素时。end(): 注意end()的返回值超出了map的最后一个值,应搭配hash.end() --; 左闭右开size():hashmap的大小clear():重新置hashmap为空swap():交换两个hashmap之间的元素find(): 查找某个元素empty(): 判断是否为空count( element ): 统计has..

2021-02-20 10:58:09 351 1

转载 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:(1)暴力法,遍历每个元素x,并查找是否存在一个值与 target−x相等的目标元素。class So...

2021-02-19 23:29:10 1111

原创 题目:只出现一次的数字

只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4intsingleNumber(vector<int>&nums){intreduce=0;for(intnum:nums){reduce=reduc...

2021-02-18 18:54:30 68

原创 德才论

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤10​5​​),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于L...

2020-04-06 19:32:16 511

原创 1014 福尔摩斯的约会

大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四;第 2 对相同的字符是E,那是第 5 个英文字母,代...

2020-04-05 18:18:52 131

转载 c++ vector容器的用法

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>; using namespace std;一、vector 的初始化:可以有五种方式,举例说明如下:(1) vector<int> a(10); //定义了10个整型元素的向量(尖...

2020-03-30 17:59:53 147

空空如也

空空如也

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

TA关注的人

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