03 2022 档案

摘要:什么是 AJAX? 为什么要AJAX? 怎么AJAX? 下面就带着这三句话,来一起深入了解AJAX吧~ 🤓 👔🤳 👖 👞👞 1、AJAX 简介 AJAX全称为Asynchronous JavaScript And XML,就是异步的 JS 和 XML 通过AJAX可以在浏览器中向服务器发 阅读全文
posted @ 2022-03-27 20:15 随遇而安== 阅读(113) 评论(0) 推荐(0)
摘要:jQuery插件 插件机制 描述 jQuery.fn.extend() 扩展 jQuery 元素集来提供新的方法(通常用来制作插件) jQuery.extend() 扩展jQuery对象本身 1、自定义 jQuery 插件 my_jQuery-plugin.js // 1.给添加4个工具方法: // 阅读全文
posted @ 2022-03-27 20:09 随遇而安== 阅读(30) 评论(0) 推荐(0)
摘要:1、文档处理-增删改 文档处理方法 描述 内部插入 append() 向每个匹配的元素内部追加内容 appendTo() 把所有匹配的元素追加到另一个指定的元素元素集合中 prepend() 向每个匹配的元素内部前置内容 prependTo() 把所有匹配的元素前置到另一个、指定的元素元素集合中 外 阅读全文
posted @ 2022-03-27 20:06 随遇而安== 阅读(28) 评论(0) 推荐(0)
摘要:1、对象的过滤 过滤方法 描述 eq() 获取第N个元素 first() 获取第一个元素 last() 获取最后一个元素 hasClass() 检查当前的元素是否含有某个特定的类,如果有,则返回true filter() 筛选出与指定表达式匹配的元素集合 not() 删除与指定表达式匹配的元素 is 阅读全文
posted @ 2022-03-27 20:04 随遇而安== 阅读(41) 评论(0) 推荐(0)
摘要:1、jQuery工具方法 不过,我们常用的工具方法并不多 工具方法 描述 $.each(object,[callback]) 通用例遍方法,可用于例遍对象和数组 $.type(obj) 检测obj的数据类型 $.isArray(obj) 测试对象是否为数组 $.isFunction(obj) 测试对 阅读全文
posted @ 2022-03-27 20:01 随遇而安== 阅读(45) 评论(0) 推荐(0)
摘要:1、选择器 说明 选择器是jQuery学习的重中之重,也就是对jQuery核心函数的使用 选择器本身只是一个有特定语法规则的字符串,没有实质用处 它的基本语法规则使用的就是 CSS 的选择器语法,并对基进行了扩展 只有调用$(),并将选择器作为参数传入才能起作用 $(selector)作用:根据选择 阅读全文
posted @ 2022-03-27 19:59 随遇而安== 阅读(148) 评论(0) 推荐(0)
摘要:1、jQuery 初识 What? jQuery官网:http://jquery.com/ 一个优秀的 JS 函数库 使用了jQuery的网站超过 90% 中大型 WEB 项目开发首选 Write Less,Do More!!! Why? HTML 元素选取(选择器) HTML 元素操作 CSS 操 阅读全文
posted @ 2022-03-27 19:53 随遇而安== 阅读(104) 评论(0) 推荐(0)
摘要:JS 中的对象只有 JS 自己认识,其他的语言都不认识 JSON就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别,并且可以转换为任意语言中的对象,JSON在开发中主要用来数据的交互 JSON简介 JavaScript Object Notation,JS 对象表示法 JSON 和 JS 对 阅读全文
posted @ 2022-03-27 19:31 随遇而安== 阅读(37) 评论(0) 推荐(0)
摘要:1、定时调用 JS 的程序的执行速度是非常非常快的如果希望一段程序,可以每间隔一段时间执行一次,可以使用定时调用 setInterval() 定时调用,可以将一个函数,每隔一段时间执行一次 参数: 回调函数,该函数会每隔一段时间被调用一次 每次调用间隔的时间,单位是毫秒 返回值:返回一个Number 阅读全文
posted @ 2022-03-27 19:29 随遇而安== 阅读(79) 评论(0) 推荐(0)
摘要:1、BOM BOM:浏览器对象模型 BOM 可以使我们通过 JS 来操作浏览器 在 BOM 中为我们提供了一组对象,用来完成对浏览器的操作 BOM 对象 Window 代表的是整个 浏览器的窗口,同时 window 也是网页中的全局对象 Navigator 代表的当前 浏览器的信息,通过该对象可以来 阅读全文
posted @ 2022-03-27 19:26 随遇而安== 阅读(70) 评论(0) 推荐(0)
摘要:1、滚轮事件 onmousewheel、DOMMouseScroll onmousewheel:鼠标滚轮滚动的事件,会在滚轮滚动时触发,但是火狐不支持该属性 DOMMouseScroll:在火狐中使用DOMMouseScroll来绑定滚动事件,注意该事件需要通过addEventListener()函 阅读全文
posted @ 2022-03-27 19:23 随遇而安== 阅读(135) 评论(0) 推荐(0)
摘要:1、事件对象 <前情提要> 事件对象 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进响应函数 在事件对象中封装了当前事件相关的一切信息,比如:鼠标的坐标、键盘哪个按键被按下、鼠标滚轮滚动的方向。。。 事件属性 鼠标/键盘属性 <练习1:当鼠标在areaDiv中移动时,在show 阅读全文
posted @ 2022-03-27 19:22 随遇而安== 阅读(48) 评论(0) 推荐(0)
摘要:1、DOM简介 DOM,全称Document Object Model 文档对象模型。 JS中通过DOM来对HTML文档进行操作。只要理解了DOM就可以随心所欲的操作WEB页面。 文档 文档表示的就是整个的HTML网页文档 对象 对象表示将网页中的每一个部分都转换为了一个对象 模型 使用模型来表示对 阅读全文
posted @ 2022-03-27 19:18 随遇而安== 阅读(70) 评论(0) 推荐(0)
摘要:正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符合规则的内容提取出来 1、正则对象 语法:var 变量 = new RegExp("正则表达式", "匹配模式"); // 这个正则表达式可以来检查一个字符串中是否含有a var reg = 阅读全文
posted @ 2022-03-27 19:13 随遇而安== 阅读(53) 评论(0) 推荐(0)
摘要:1、三大包装类 基本数据类型:String、Number、Boolean、Null、Undefined 引用数据类型:Object 在JS中为我们提供了三大包装类,通过这三个包装类可以将基本数据类型的数据转换为对象 String()可以将基本数据类型字符串转换为String对象 Number()可以 阅读全文
posted @ 2022-03-27 19:08 随遇而安== 阅读(28) 评论(0) 推荐(0)
摘要:1、Date 在JS中使用Date对象来表示一个时间 创建一个时间对象 如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间 // 创建一个Date对象 // 如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间 var d = new Date(); conso 阅读全文
posted @ 2022-03-27 19:05 随遇而安== 阅读(65) 评论(0) 推荐(0)
摘要:call、apply和arguments call()和apply() 这两个方法都是函数对象的方法,需要通过函数对象来调用 当对函数调用 call()和apply()都会调用函数执行 var obj = { name: "obj" }; var obj2 = { name:"obj2" } fun 阅读全文
posted @ 2022-03-27 19:03 随遇而安== 阅读(42) 评论(0) 推荐(0)
摘要:1、数组简介 数组也是一个对象 它和我们普通对象功能类似,也是用来存储一些值的 不同的是普通对象是使用字符串作为属性名的,而数组时使用数字来作为索引操作元素 索引:从0开始的整数就是索引 数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据 // 创建数组对象 var arr=new 阅读全文
posted @ 2022-03-27 19:01 随遇而安== 阅读(59) 评论(0) 推荐(0)
摘要:1、使用工厂方法创建对象 function createPerson(name, age, gender){ // 创建一个新的对象 var obj=new Object(); //向对象中添加属性 obj.name = name; obj.age = age; obj.gender = gende 阅读全文
posted @ 2022-03-27 18:58 随遇而安== 阅读(52) 评论(0) 推荐(0)
摘要:作用域指一个变量的作用的范围 在JS中一共有两种作用域: 全局作用域 函数作用域 1、全局作用域 直接编写在script标签中的JS代码,都在全局作用域 全局作用域在页面打开时创建,在页面关闭时销毁 在全局作用域中有一个全局对象window,它代表的是一个浏览器的窗口,由浏览器创建,可以直接使用 在 阅读全文
posted @ 2022-03-27 18:55 随遇而安== 阅读(40) 评论(0) 推荐(0)
摘要:1、函数的简介 函数也是一个对象,可以封装一些功能(代码),在需要时可以执行这些功能(代码),可以保存一些代码在需要的时候调用 使用typeof检查一个函数对象时,会返回function // 创建一个函数对象 // 可以将要封装的代码以字符串的形式传递给构造函数 var fun = new Fun 阅读全文
posted @ 2022-03-27 18:51 随遇而安== 阅读(41) 评论(0) 推荐(0)
摘要:JS中数据类型 String 字符串 Number数值 Boolean 布尔值 Null空值 Undefined 未定义 以上这五种类型属于基本数据类型,以后我们看到的值只要不是上边的5种,全都是对象 1、Object 对象 基本数据类型都是单一的值"hello" 123 true,值和值之间没有任 阅读全文
posted @ 2022-03-27 18:49 随遇而安== 阅读(53) 评论(0) 推荐(0)
摘要:1、流程控制语句 JS中的程序是从上到下一行一行执行的 通过流程控制语句可以控制程序执行流程,使程序可以根据一定的条件来选择执行 语句的分类: 条件判断语句 条件分支语句 循环语句 2、条件判断语句 使用条件判断语句,可以在执行某个语句之前进行判断 如果条件成立才会执行语句,条件不成立则语句不执行。 阅读全文
posted @ 2022-03-27 18:46 随遇而安== 阅读(68) 评论(0) 推荐(0)
摘要:1、运算符 运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取运算结果 比如:typeof就是运算符,可以来获得一个值的类型 它会将该值的类型以字符串的形式返回 number string boolean undefined object 2、算数运算符 当对非Number类型的值进行运 阅读全文
posted @ 2022-03-27 18:42 随遇而安== 阅读(46) 评论(0) 推荐(0)
摘要:1、JS编写位置 可以将js代码编写到标签的onclick属性中当我们点击按钮时,js代码才会执行 <button onclick="alert(\"Fuck! Do not touch me!\")"></button> 可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码 阅读全文
posted @ 2022-03-27 18:40 随遇而安== 阅读(71) 评论(0) 推荐(0)
摘要:1、什么是语言 计算机就是一个由人来控制的机器,人让它干嘛,它就得干嘛。 我们要学习的语言就是人和计算机交流的工具,人类通过语言来控制、操作计算机。 编程语言和我们说的中文、英文本质上没有区别,只是语法比较特殊。 语言的发展: 纸带机:机器语言 汇编语言:符号语言 现代语言:高级语言 2、JS起源 阅读全文
posted @ 2022-03-27 18:36 随遇而安== 阅读(176) 评论(0) 推荐(0)
摘要:在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写。这种读写方式称为随机读写,也就是说从文件的任意位置开始读写。实现随机读写的关键是要按要求移动位置指针,这称为文件的定位。 文件定位函数rewind和fseek 移动文件内部位置指针的函数主要有两个,即 阅读全文
posted @ 2022-03-26 15:52 随遇而安== 阅读(260) 评论(0) 推荐(0)
摘要:fscanf() 和 fprintf() 函数与前面使用的 scanf() 和 printf() 功能相似,都是格式化读写函数,两者的区别在于 fscanf() 和 fprintf() 的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的原型为: int fscanf ( FILE *fp, ch 阅读全文
posted @ 2022-03-26 15:50 随遇而安== 阅读(153) 评论(0) 推荐(0)
摘要:fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets() 遇到换行符就结束读取。如果希望读取多行内容,需要使用 fread() 函数;相应地写入函数为 fwrite()。对于 Windows 系统,使用 fread() 和 fwrite() 时应该以二进制的形式打开文件fre 阅读全文
posted @ 2022-03-26 15:48 随遇而安== 阅读(256) 评论(0) 推荐(0)
摘要:变形就是指通过 css 来改变元素的形状或位置 变形不会影响到页面的布局 transform用来设置元素的变形效果 1、平移 translateX() 沿着由方向平移 translateY() 沿着 y 轴方向平移 translateZ() 沿着 z 轴方向平移平移元素 百分比是相对于自身计算的 几 阅读全文
posted @ 2022-03-26 01:26 随遇而安== 阅读(129) 评论(0) 推荐(0)
摘要:过渡与动画 1、过渡 过渡(transition) 通过过渡可以指定一个属性发生变化时的切换方式 通过过渡可以创建一些非常好的效果,提升用户的体验 属性值 transition-property:指定要执行过渡的属性 多个属性间使用,隔开; 如果所有属性都需要过渡,则使用all关键字; 大部分属性都 阅读全文
posted @ 2022-03-26 01:23 随遇而安== 阅读(80) 评论(0) 推荐(0)
摘要:1、表格 在现实生活中,我们经常需要使用表格来表示一些格式化数据: 课程表、人名单、成绩单... 同样在网页中我们也需要使用表格,我们通过table标签来创建一个表格 在table中使用tr表示表格中的一行,有几个tr就有几行 在tr中使用td表示一个单元格,有几个 td就有几个单元格 rowspa 阅读全文
posted @ 2022-03-26 01:20 随遇而安== 阅读(61) 评论(0) 推荐(0)
摘要:1. 雪碧图 解决图片闪烁的问题: 可以将多个小图片统一保存到一个大图片中,然后通过调整background-position来显示响应的图片 这样图片会同时加载到网页中就可以有效的避免出现闪烁的问题 这个技术在网页中应用十分广泛,被称为CSS-Sprite,这种图我们称为雪碧图 雪碧图的使用步骤: 阅读全文
posted @ 2022-03-26 01:17 随遇而安== 阅读(49) 评论(0) 推荐(0)
摘要:1. PS 的基本设置 工欲善其事,必先利其器 在介绍背景之前,首先需要做好准备工作:安装 PS 与基本设置 这里就不详细介绍 PS 的安装了,因为网上一抓一大把,主要介绍 PS 的基本设置 左侧工具栏 调成 2 列,更方便使用 右侧工具栏 不需要的视图统统关掉 修改单位为像素 由于一般默认的单位是 阅读全文
posted @ 2022-03-26 01:14 随遇而安== 阅读(89) 评论(0) 推荐(0)
摘要:1. 字体相关的样式 我们前面讲过字体的两个属性 color用来设置字体颜色 font-size字体的大小 em 相当于当前元素的一个font-size rem 相对于根元素的一个font-size 当然,字体的属性并不止这些 2. font-family font-family 字体族(字体的格式 阅读全文
posted @ 2022-03-26 01:12 随遇而安== 阅读(89) 评论(0) 推荐(0)
摘要:需求分析 按照我们之前所学知识,可以怎么实现呢? 应该来说不难,很容易实现 CSS .box2 { width: 200px; height: 200px; background-color: yellow; /* 左外边距、上外边距 */ margin-left: 200px; margin-to 阅读全文
posted @ 2022-03-26 01:07 随遇而安== 阅读(117) 评论(0) 推荐(0)
摘要:1. 高度塌陷 在浮动布局中,父元素的高度默认是被子元素撑开的 当子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离将会无法撑起父元素的高度,导致父元素的高度丢失 父元素高度丢失以后,其下的元素会自动上移,导致页面的布局混乱 所以高度塌陷是浮动布局中比较常见的一个问题,这个问题我们必须要进行处理 阅读全文
posted @ 2022-03-26 01:03 随遇而安== 阅读(58) 评论(0) 推荐(0)
摘要:1. 浮动的简介 通过浮动可以使一个元素向其父元素的左侧或右侧移动 使用float属性来设置于元素的浮动 none 默认值,元素不浮动 left 元素向左浮动 right 元素向右浮动 注意 元素设置浮动以后,水平布局的等式便不需要强制成立 元素设置浮动以后,会完全从文档流中脱离,不再占用文档流的位 阅读全文
posted @ 2022-03-26 00:11 随遇而安== 阅读(73) 评论(0) 推荐(0)
摘要:盒模型补充 1. 盒子大小 默认情况下,盒子可见框的大小由内容区、内边距和边框共同决定 box-sizing用来设置盒子尺寸的计算方式(设置 width 和 height 的作用) .box { width: 200px; height: 200px; background-color: yello 阅读全文
posted @ 2022-03-26 00:07 随遇而安== 阅读(40) 评论(0) 推荐(0)
摘要:1.上架三天需要秒杀的商品 @Override public void uploadSeckillSkuLatest3Days() { //1、扫描最近三天的商品需要参加秒杀的活动 R lates3DaySession = couponFeignService.getLates3DaySession 阅读全文
posted @ 2022-03-24 14:25 随遇而安== 阅读(43) 评论(0) 推荐(0)
摘要:在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。本节介绍以字符形式读写文件。以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符。主要使用两个函数,分别是 fgetc() 和 fputc()。 一、字符读取函数 fg 阅读全文
posted @ 2022-03-22 20:50 随遇而安== 阅读(250) 评论(0) 推荐(0)
摘要:操作文件之前必须先打开文件;所谓“打开文件”,就是让程序和文件建立连接的过程。打开文件之后,程序可以得到文件的相关信息,例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中,程序还可以记录当前读写到了哪个位置,下次可以在此基础上继续操作。 标准输入文件 stdin(表示键盘)、标准输出文 阅读全文
posted @ 2022-03-22 20:43 随遇而安== 阅读(279) 评论(0) 推荐(0)
摘要:在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为: int rand (void); void 表示不需要传递参数。 C语言中还有一个 random() 函数可以获取随机数,但是 random() 不是标准函数 rand() 会随机生成一个位于 阅读全文
posted @ 2022-03-22 20:33 随遇而安== 阅读(188) 评论(0) 推荐(0)
摘要:有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用const关键字对变量加以限定: const int MaxNum = 100; //班级的最大人数 这样 MaxNum 的值就不能被修改 阅读全文
posted @ 2022-03-22 20:29 随遇而安== 阅读(84) 评论(0) 推荐(0)
摘要:C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写: struct stu stu1; struct 看起来就是多余的,但不写又会报错。如果为 struct stu 阅读全文
posted @ 2022-03-22 20:26 随遇而安== 阅读(118) 评论(0) 推荐(0)
摘要:所谓位运算,就是对一个比特(Bit)位进行操作。比特(Bit)是一个电子元器件,8个比特构成一个字节(Byte),它已经是粒度最小的可操作单元了。C语言提供了六种位运算符: 运算符 & | ^ ~ << >> 说明 按位与 按位或 按位异或 取反 左移 右移 一、按位与运算(&) 一个比特(Bit) 阅读全文
posted @ 2022-03-22 20:24 随遇而安== 阅读(91) 评论(0) 推荐(0)
摘要:有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。请看下 阅读全文
posted @ 2022-03-22 20:12 随遇而安== 阅读(82) 评论(0) 推荐(0)
摘要:我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为: union 共用体名{ 成员列表}; 共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意。 结构体和共用 阅读全文
posted @ 2022-03-22 20:03 随遇而安== 阅读(169) 评论(0) 推荐(0)
摘要:在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。以每周七天为例,我们可以使用#define命令来给每天指定一个名字: #include <stdio.h> #defi 阅读全文
posted @ 2022-03-22 19:16 随遇而安== 阅读(75) 评论(0) 推荐(0)
摘要:当一个指针变量指向结构体时,我们就称它为结构体指针。C语言结构体指针的定义形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: //结构体 struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char gro 阅读全文
posted @ 2022-03-22 19:12 随遇而安== 阅读(333) 评论(0) 推荐(0)
摘要:所谓结构体数组,是指数组中的每个元素都是一个结构体在C语言中,定义结构体数组和定义结构体变量的方式类似,请看下面的例子: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; 阅读全文
posted @ 2022-03-22 19:08 随遇而安== 阅读(137) 评论(0) 推荐(0)
摘要:结构体的定义形式为: struct 结构体名{ 结构体所包含的变量或数组}; 结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个例子: struct stu{ char *name; //姓名 int 阅读全文
posted @ 2022-03-22 19:05 随遇而安== 阅读(136) 评论(0) 推荐(0)
摘要:个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是函数指针。函数指针的定义形式为: ret 阅读全文
posted @ 2022-03-21 21:36 随遇而安== 阅读(127) 评论(0) 推荐(0)
摘要:指针(Pointer)就是内存的地址,C语言允许用一个变量来存放指针,这种变量称为指针变量。指针变量可以存放基本类型数据的地址,也可以存放数组、函数以及其他指针变量的地址。程序在运行过程中需要的是数据和指令的地址,变量名、函数名、字符串名和数组名在本质上是一样的,它们都是地址的助记符:在编写代码的过 阅读全文
posted @ 2022-03-21 21:36 随遇而安== 阅读(46) 评论(0) 推荐(0)
摘要:二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例: int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; 从概念上理解,a 的分布像一个矩阵: 0 1 2 阅读全文
posted @ 2022-03-21 21:35 随遇而安== 阅读(282) 评论(0) 推荐(0)
摘要:如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为: dataType *arrayName[length]; [ ]的优先级高于*,该定义形式应该理解为: dataType *(arrayName[length]); 括号里面说明arrayName是一个数组 阅读全文
posted @ 2022-03-21 21:30 随遇而安== 阅读(135) 评论(0) 推荐(0)
摘要:指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p 阅读全文
posted @ 2022-03-21 21:29 随遇而安== 阅读(186) 评论(0) 推荐(0)
摘要:C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数。下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include <stdio.h> #include <string.h> char *strlong(char *str1, char *str 阅读全文
posted @ 2022-03-21 21:26 随遇而安== 阅读(129) 评论(0) 推荐(0)
摘要:在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传 阅读全文
posted @ 2022-03-21 21:24 随遇而安== 阅读(159) 评论(0) 推荐(0)
摘要:C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中 #include <stdio.h> #include <string.h> int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; 阅读全文
posted @ 2022-03-21 21:22 随遇而安== 阅读(217) 评论(0) 推荐(0)
摘要:数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数 阅读全文
posted @ 2022-03-21 21:19 随遇而安== 阅读(410) 评论(0) 推荐(0)
摘要:指针变量保存的是地址,而地址本质上是一个整数,所以指针变量可以进行部分运算,例如加法、减法、比较等,请看下面的代码: #include <stdio.h> int main(){ int a = 10, *pa = &a, *paa = &a; double b = 99.9, *pb = &b; 阅读全文
posted @ 2022-03-21 21:16 随遇而安== 阅读(78) 评论(0) 推荐(0)
摘要:据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另外的一个普通变量或指针变量。现在假设有一个 char 类型的变量 c,它存 阅读全文
posted @ 2022-03-21 21:15 随遇而安== 阅读(350) 评论(0) 推荐(0)
摘要:计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以 阅读全文
posted @ 2022-03-21 21:11 随遇而安== 阅读(112) 评论(0) 推荐(0)
摘要:预处理指令是以#号开头的代码行,# 号必须是该行除了任何空白字符外的第一个字符。# 后是指令关键字,在关键字和 # 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是本章涉及到的部分预处理指令: 指令 说明 # 空指令,无任何效果 阅读全文
posted @ 2022-03-21 21:09 随遇而安== 阅读(35) 评论(0) 推荐(0)
摘要:带参数的宏和函数很相似,但有本质上的区别:宏展开仅仅是字符串的替换,不会对表达式进行计算;宏在编译之前就被处理掉了,它没有机会参与编译,也不会占用内存。而函数是一段可以重复使用的代码,会被编译,会给它分配内存,每次调用函数,就是执行这块内存中的代码。【示例①】用函数计算平方值。 #include < 阅读全文
posted @ 2022-03-21 21:09 随遇而安== 阅读(98) 评论(0) 推荐(0)
摘要:语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。带参宏定义的一般形式为: #define 宏名(形参列表) 字符串 在字符串中可以含有各个形参。带参宏调用的一般形式为: 阅读全文
posted @ 2022-03-21 21:07 随遇而安== 阅读(445) 评论(0) 推荐(0)
摘要:#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。我们先通过一个例子来看一下 #define 的用法: #include <stdio.h> #define N 100 int 阅读全文
posted @ 2022-03-21 21:05 随遇而安== 阅读(498) 评论(0) 推荐(0)
摘要:使用库函数之前,应该用#include引入对应的头文件。这种以#号开头的命令称为预处理命令。C语言源文件要经过编译、链接才能生成可执行程序:1) 编译(Compile)会将源文件(.c文件)转换为目标文件。对于 VC/VS,目标文件后缀为.obj;对于GCC,目标文件后缀为.o。 编译是针对单个源文 阅读全文
posted @ 2022-03-21 21:03 随遇而安== 阅读(167) 评论(0) 推荐(0)
摘要:如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能 阅读全文
posted @ 2022-03-21 21:00 随遇而安== 阅读(405) 评论(0) 推荐(0)
摘要:C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并作为字符串处理。 scanf() 是最灵活、 阅读全文
posted @ 2022-03-21 20:49 随遇而安== 阅读(373) 评论(0) 推荐(0)
摘要:在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并作为字符串处理。 scanf() 是最灵活、最复杂 阅读全文
posted @ 2022-03-21 20:47 随遇而安== 阅读(333) 评论(0) 推荐(0)
摘要:在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是: puts():只能输出字符串,并且输出结束后会自动换行 putchar():只能输出单个字符 printf():可以输出各种类型的数据,在前面的很多章节中都进行了介绍。 printf() 是最灵活、最复杂、最常用的输出函数,完全可以替代 阅读全文
posted @ 2022-03-21 20:42 随遇而安== 阅读(207) 评论(0) 推荐(0)
摘要:1.自动类型转换 自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。1) 将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: float f = 100; 100 是 int 类型的数据,需要先转换为 float 类型才能赋值给 阅读全文
posted @ 2022-03-21 20:37 随遇而安== 阅读(198) 评论(0) 推荐(0)
摘要:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表 阅读全文
posted @ 2022-03-21 20:29 随遇而安== 阅读(36) 评论(0) 推荐(0)
摘要:小数分为整数部分和小数部分,它们由点号.分隔,例如 0.0、75.0、4.023、0.27、-937.198 -0.27 等都是合法的小数,这是最常见的小数形式,我们将它称为十进制形式。此外,小数也可以采用指数形式,例如 7.25×102、0.0368×105、100.22×10-2、-27.36× 阅读全文
posted @ 2022-03-21 20:25 随遇而安== 阅读(273) 评论(0) 推荐(0)
摘要:在数学中,数字有正负之分。在C语言中也是一样,short、int、long 都可以带上正负号,例如: //负数 short a1 = -10; short a2 = -0x2dc9; //十六进制 //正数 int b1 = +10; int b2 = +0174; //八进制 int b3 = 2 阅读全文
posted @ 2022-03-21 20:19 随遇而安== 阅读(216) 评论(0) 推荐(0)
摘要:1.二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。 1) 二进制 二进制由 0 和 阅读全文
posted @ 2022-03-21 20:08 随遇而安== 阅读(442) 评论(0) 推荐(0)
摘要:对于 32 位的 Windows、Linux 和 Mac OS,short 的长度为 2 个字节,int 为 4 个字节,long 也为 4 个字节。PC和服务器上的 32 位系统占有率也在慢慢下降,嵌入式系统使用 32 位越来越多。在 64 位环境下,不同的操作系统会有不同的结果,如下所示: 操作 阅读全文
posted @ 2022-03-21 20:03 随遇而安== 阅读(458) 评论(0) 推荐(0)
摘要:printf 是 print format 的缩写,意思是“格式化打印”。这里所谓的“打印”就是在屏幕上显示内容,与“输出”的含义相同,所以我们一般称 printf 是用来格式化输出的。先来看一个简单的例子: printf("C语言中文网"); 这个语句可以在屏幕上显示“C语言中文网”,与puts( 阅读全文
posted @ 2022-03-21 20:00 随遇而安== 阅读(232) 评论(0) 推荐(0)
摘要:说 明 字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型 无类型 数据类型 char short int long float double void 这些是最基本的数据类型,是C语言自带的,如果我们需要,还可以通过它们组成更加复杂的数据类型,后面我们会一一讲解。 1.连续定义多个变量 为了 阅读全文
posted @ 2022-03-21 19:56 随遇而安== 阅读(57) 评论(0) 推荐(0)
摘要:单位换算: 1Byte = 8 Bit 1KB = 1024Byte = 210Byte 1MB = 1024KB = 220Byte 1GB = 1024MB = 230Byte 1TB = 1024GB = 240Byte 1PB = 1024TB = 250Byte 1EB = 1024PB 阅读全文
posted @ 2022-03-21 19:50 随遇而安== 阅读(121) 评论(0) 推荐(0)
摘要:编程语言 主要用途 C/C++ C++ 是在C语言的基础上发展起来的,C++ 包含了C语言的所有内容,C语言是C++的一个部分,它们往往混合在一起使用,所以统称为 C/C++。C/C++主要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式系统。 Java Java 是一门通用型的语言,可以 阅读全文
posted @ 2022-03-21 19:49 随遇而安== 阅读(48) 评论(0) 推荐(0)
摘要:计算机是以二进制的形式来存储数据的,它只认识 0 和 1 两个数字,我们在屏幕上看到的文字,在存储之前都被转换成了二进制(0和1序列),在显示时也要根据二进制找到对应的字符。可想而知,特定的文字必然对应着固定的二进制,否则在转换时将发生混乱。那么,怎样将文字与二进制对应起来呢?这就需要有一套规范,计 阅读全文
posted @ 2022-03-21 19:47 随遇而安== 阅读(214) 评论(0) 推荐(0)
摘要:1.将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是 N 进制,那么: 对于整数部分,从右往左看,第 i 位的位权等于Ni-1 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。 更加通俗 阅读全文
posted @ 2022-03-21 19:44 随遇而安== 阅读(524) 评论(0) 推荐(0)
摘要:我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。因为逢十 阅读全文
posted @ 2022-03-21 19:37 随遇而安== 阅读(259) 评论(0) 推荐(0)
摘要:给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 /* 解法 双指针运行 先让两个数组排序,设置双指针分别从小到大遍历 每次判断指针小的 阅读全文
posted @ 2022-03-20 10:28 随遇而安== 阅读(55) 评论(0) 推荐(0)
摘要:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 /* 解题思路 排序后,双指针向右遍历 */ class Solution { public int[] intersection(int[] a, int[] 阅读全文
posted @ 2022-03-20 10:26 随遇而安== 阅读(36) 评论(0) 推荐(0)
摘要:给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 'a'、'e'、'i'、'o'、'u',且可能以大小写两种形式出现。 /* 双指针 一个朴素的做法是利用「双指针」进行前后扫描,当左右指针都是元音字母时,进行互换并移到下一位。 由于元音字母相对固定,因此我们可以使 阅读全文
posted @ 2022-03-20 10:25 随遇而安== 阅读(131) 评论(0) 推荐(0)
摘要:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 class Solution { public void reverseString(char[] s) { int 阅读全文
posted @ 2022-03-20 10:23 随遇而安== 阅读(40) 评论(0) 推荐(0)
摘要:给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x /* 基本分析 一个数 nn 如果是 44 的幂,等价于 nn 为质因数只有 22 的平方数。 因此我们可以将问题其转换: 阅读全文
posted @ 2022-03-20 10:22 随遇而安== 阅读(34) 评论(0) 推荐(0)
摘要:给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。 class Solution { public int[] countBits(int n) { int[] res = new int[n + 阅读全文
posted @ 2022-03-20 10:19 随遇而安== 阅读(32) 评论(0) 推荐(0)
摘要:给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x /* 解题思路 1,暴力做法是循环,每次乘以3 直到大于n,这样做法会超时。。 2,为了加快循环速度,可以用对当前数乘方, 阅读全文
posted @ 2022-03-20 10:17 随遇而安== 阅读(47) 评论(0) 推荐(0)
摘要:给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right实现 NumArray 类: NumArray(int[] nums) 使用数组 nums 初始化对象int s 阅读全文
posted @ 2022-03-20 10:15 随遇而安== 阅读(36) 评论(0) 推荐(0)
摘要:1. 文档流(normalflow) 网页是一个多层的结构,一层摁着一层 通过 CSS 可以分别为每一层来设置样式,作为用户来讲只能看到最顶上一层 这些层中,最底下的一层称为文档流 文档流是网页的基础我们所创建的元素默认都是在文档流中进行排列 对于我们来元素主要有两个状态 在文档流中 不在文档流中( 阅读全文
posted @ 2022-03-20 09:19 随遇而安== 阅读(71) 评论(0) 推荐(0)
摘要:1. 继承 样式的继承,我们为一个元素设置的样式,同时也会应用到它的后代元素上 继承是发生在祖先后后代之间的,继承的设计是为了方便我们的开发 利用继承,我们可以将一些通用的样式,统一设置到共同的祖先元素上。这样只需设置一次即可让所有的元素都具有该样式 注意,并不是所有的样式都会被继承: 比如背景相关 阅读全文
posted @ 2022-03-20 09:13 随遇而安== 阅读(47) 评论(0) 推荐(0)
摘要:1. CSS 简介 层叠样式表 网页实际上是一个多层的结构,通过 CSS 可以分别为网页的每一个层来设置样式,而最终我们能看到只是网页的最上边一层 总之一句话,CSS 用来设置网页中元素的样式 使用 CSS 来修改元素样式的方式大致可以分为 3 种 内联样式(行内样式) 在标签内部通过style属性 阅读全文
posted @ 2022-03-20 09:10 随遇而安== 阅读(57) 评论(0) 推荐(0)
摘要:1. 字符实体 有些时候,在 HTML 中不能直接书写一些特殊符号,如: 多个连续的空格(在网页中编写的多个空格默认情况会自动被浏览器解析为一个空格) 比如字母两侧的大于小于号(可能会被认为是标签并解析) 如果我们需要在网页中书写这些特殊的符号,则需要使用 html 中的实体(转义字符)实体的语法: 阅读全文
posted @ 2022-03-20 09:07 随遇而安== 阅读(161) 评论(0) 推荐(0)
摘要:1. 软件的分类 1.1. 系统软件 Windows Linux macOS 1.2. 应用软件 Office QQ 1.3. 游戏软件 绝地求生 王者荣耀 2. 客户端与服务器 通常情况下,现在的软件一般由两个部分组成: 客户端:用户通过客户端来使用软件。 服务器:服务器负责在远程处理业务逻辑。 阅读全文
posted @ 2022-03-20 09:01 随遇而安== 阅读(151) 评论(0) 推荐(0)
摘要:你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 tru 阅读全文
posted @ 2022-03-19 15:13 随遇而安== 阅读(69) 评论(0) 推荐(0)
摘要:给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 /* 解题思路 先将规律pattern和字符串s分割开来,字符串s可以直接调用String 阅读全文
posted @ 2022-03-19 15:10 随遇而安== 阅读(43) 评论(0) 推荐(0)
摘要:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 /* 两次遍历 我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍 阅读全文
posted @ 2022-03-19 15:08 随遇而安== 阅读(19) 评论(0) 推荐(0)
摘要:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool 阅读全文
posted @ 2022-03-19 15:05 随遇而安== 阅读(36) 评论(0) 推荐(0)
摘要:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 /*缺少的数就是[0,n]的数总和剪去数组里的数的总和*/ class Solution { public int missingNumber(int[] nums) { int n 阅读全文
posted @ 2022-03-19 15:03 随遇而安== 阅读(29) 评论(0) 推荐(0)
摘要:给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 丑数 就是只包含质因数 2、3 和/或 5 的正整数。 /* 朴素解法 输入范围是 -2^{31} <= n <= 2^{31} - 1−2 31 <=n<=2 31 −1,我们只需要对输入进行分 阅读全文
posted @ 2022-03-19 15:01 随遇而安== 阅读(38) 评论(0) 推荐(0)
摘要:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 /* 解题思路 时间复杂度为 O(1)O(1)的解法: 除个位外,每一位上的值都是通过 (9+1) 进位的过程得到的,想一下 拨算盘进位 把整数 n 看成 n 样物品,原本是以 10 个 1 份打包的,现在从这些 阅读全文
posted @ 2022-03-19 15:00 随遇而安== 阅读(38) 评论(0) 推荐(0)
摘要:给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 /*解题思路:回溯 1.递归参数:根节点 2.终止条件:节点无左右孩子*/ class Solution { List<String> res = new ArrayList<> 阅读全文
posted @ 2022-03-19 14:57 随遇而安== 阅读(22) 评论(0) 推荐(0)
摘要:1.订单确认页返回需要用的数据 @Override public OrderConfirmVo confirmOrder() throws ExecutionException, InterruptedException { //构建OrderConfirmVo OrderConfirmVo con 阅读全文
posted @ 2022-03-17 20:26 随遇而安== 阅读(268) 评论(0) 推荐(0)
摘要:1.添加购物车 @Override public CartItemVo addToCart(Long skuId, Integer num) throws ExecutionException, InterruptedException { //拿到要操作的购物车信息 BoundHashOperat 阅读全文
posted @ 2022-03-17 15:47 随遇而安== 阅读(86) 评论(0) 推荐(0)
摘要:同一个线程内共享数据 public static ThreadLocal<UserInfoTo> toThreadLocal = new ThreadLocal<>(); // 赋值 toThreadLocal.set(userInfoTo); // 取值 UserInfoTo userInfoTo 阅读全文
posted @ 2022-03-17 15:16 随遇而安== 阅读(27) 评论(0) 推荐(0)
摘要:Single Sign On 一处登陆、处处可用 参考:https://gitee.com/xuxueli0323/xxl-sso 单点登录流程 阅读全文
posted @ 2022-03-17 15:00 随遇而安== 阅读(34) 评论(0) 推荐(0)
摘要:SpringBoot 整合 SpringSession https://docs.spring.io/spring-session/docs/2.5.0/reference/html5/#samples auth 服务、product 服务、 search 服务 pom文件 <!-- 整合 spri 阅读全文
posted @ 2022-03-17 14:51 随遇而安== 阅读(88) 评论(0) 推荐(0)
摘要:一、Session 共享问题 1.1 Session 原理 1.2 分布式下 Session 共享问题 二、Session 共享问题解决 2.1 Session 复制 2.2 客户端存储 2.3 hash一致性 2.4 统一存储 阅读全文
posted @ 2022-03-17 14:47 随遇而安== 阅读(38) 评论(0) 推荐(0)
摘要:OAuth: : OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。 OAuth2.0 :对于用户相关的 OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数 阅读全文
posted @ 2022-03-17 14:31 随遇而安== 阅读(84) 评论(0) 推荐(0)
摘要:一、参数校验补充 通过注解可以给前端传递过来的值进行校验,例如: 但是这个注解必须配合 @Valid 使用,完成对参数的校验: 而校验的结果,也会自动封装到 BindingResult 类型中,通过这个参数可以很方便的对错误的参数进行处理。 hasErrors() 可以判断是否有参数校验错误,如果有 阅读全文
posted @ 2022-03-17 11:28 随遇而安== 阅读(139) 评论(0) 推荐(0)
摘要:一、阿里云短信服务 https://www.aliyun.com/product/sms?spm=5176.159202.J_8058803260.68.64ae6a56APLp1H 二、工具类 HttpUtils HttpUtils 请从 https://github.com/aliyun/api 阅读全文
posted @ 2022-03-17 11:24 随遇而安== 阅读(205) 评论(0) 推荐(0)
摘要:一、创建认证模块 1.1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc 阅读全文
posted @ 2022-03-17 11:21 随遇而安== 阅读(55) 评论(0) 推荐(0)
摘要:一、商品详情 1.1 域名跳转环境 修改本机 hosts 文件: # guli mall # 192.168.163.131 gulimall.com 192.168.163.131 search.gulimall.com 192.168.163.131 item.gulimall.com 1.2 阅读全文
posted @ 2022-03-17 11:09 随遇而安== 阅读(162) 评论(0) 推荐(0)
摘要:一、课件 07、异步&线程池.pdf 二、线程池 2.1 线程池的七大参数 /** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoolSize the 阅读全文
posted @ 2022-03-17 10:44 随遇而安== 阅读(83) 评论(0) 推荐(0)
摘要:8.检索服务一、添加模板页面 <!-- 模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 将 阅读全文
posted @ 2022-03-17 10:37 随遇而安== 阅读(84) 评论(0) 推荐(0)
摘要:7.缓存和分布式锁一、课件 05、缓存&分布式锁.pdf 二、缓存 - redis 这里操作环境为商品服务模块,虚拟机初始化时已安装 Redis。 2.1 添加 redis 依赖 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupI 阅读全文
posted @ 2022-03-17 10:15 随遇而安== 阅读(48) 评论(0) 推荐(0)
摘要:6.性能与压力测试课件 04、性能与压力测试.pdf 性能优化 - Nginx 动静分离 首先,把商品服务中静态文件夹 index 放到 nginx 下 /mydata/nginx/html/static目录; 给模板中所有静态资源的请求路径前都加上 /static; 修改 Nginx 配置文件 /mydata/ng 阅读全文
posted @ 2022-03-17 10:04 随遇而安== 阅读(54) 评论(0) 推荐(0)
摘要:5.Nginx-搭建域名访问环境一、修改 Windows hosts 文件 位置:C:\Windows\System32\drivers\etc 在后面追加以下内容: # guli mall # 192.168.163.131 gulimall.com 二、Nginx 配置文件 三、分析Nginx配置文件 cat /mydata/ 阅读全文
posted @ 2022-03-17 09:59 随遇而安== 阅读(435) 评论(0) 推荐(0)
摘要:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 /* 解题思路 因为出现次数要相同所以如果两个字符串长度不一样就直接返回 false ,然后先扫描 s 把 s 中每个char都记录 阅读全文
posted @ 2022-03-17 09:14 随遇而安== 阅读(41) 评论(0) 推荐(0)
摘要:请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 /* 方法、投机取巧 因为题目只给了要删除的节点,我们无法拿到其上一个节点,所以,我们要迂回一下想法。 我们可以 阅读全文
posted @ 2022-03-17 09:12 随遇而安== 阅读(40) 评论(0) 推荐(0)
摘要:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, 阅读全文
posted @ 2022-03-17 09:10 随遇而安== 阅读(30) 评论(0) 推荐(0)
摘要:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode n 阅读全文
posted @ 2022-03-17 09:08 随遇而安== 阅读(27) 评论(0) 推荐(0)
摘要:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolea 阅读全文
posted @ 2022-03-17 09:06 随遇而安== 阅读(54) 评论(0) 推荐(0)
摘要:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。 /* 解题思路: 若 n = 2^xn=2 x 且 xx 为自然数(即 nn 为 22 的幂),则一定满足以下条件 阅读全文
posted @ 2022-03-17 09:04 随遇而安== 阅读(31) 评论(0) 推荐(0)
摘要:给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按如下格式输出: "a->b" 阅读全文
posted @ 2022-03-17 09:01 随遇而安== 阅读(30) 评论(0) 推荐(0)
摘要:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 /*解题思路 交换左子树和右子树,同时维护一个 temp 指针指向被破坏的 root.left,随后 root.right = invertTree(temp) 即可。否则交换会发生错误。 */ /** * Definition 阅读全文
posted @ 2022-03-17 08:59 随遇而安== 阅读(37) 评论(0) 推荐(0)
摘要:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean 阅读全文
posted @ 2022-03-15 09:35 随遇而安== 阅读(39) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。 /* 解题方案 思路 标签:哈希 维护一个哈希表,里面始终最多包含 阅读全文
posted @ 2022-03-15 09:31 随遇而安== 阅读(33) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 /*题目描述 判断给定数组里是否有重复元素。 思路解析 方法一 排序 数组排序后,判断相邻元素是否相等。 */ class Solution { public boo 阅读全文
posted @ 2022-03-15 09:27 随遇而安== 阅读(63) 评论(0) 推荐(0)
摘要:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * Lis 阅读全文
posted @ 2022-03-15 09:13 随遇而安== 阅读(27) 评论(0) 推荐(0)
摘要:给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。 /* 分析: 只 阅读全文
posted @ 2022-03-15 09:09 随遇而安== 阅读(93) 评论(0) 推荐(0)
摘要:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 /*删除结点的步骤 找到该结点的前一个结点 进行删除操作 三种方法 删除头结点时另做考虑(由于头结点没有前一个结点) 添加一个虚拟头结点,删除头结点就不用另做 阅读全文
posted @ 2022-03-15 08:59 随遇而安== 阅读(35) 评论(0) 推荐(0)
摘要:编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是, 阅读全文
posted @ 2022-03-15 08:15 随遇而安== 阅读(31) 评论(0) 推荐(0)
摘要:表: Weather + + +| Column Name | Type |+ + +| id | int || recordDate | date || temperature | int |+ + +id 是这个表的主键该表包含特定日期的温度信息 编写一个 SQL 查询,来查找与之前(昨天的)日 阅读全文
posted @ 2022-03-15 08:07 随遇而安== 阅读(37) 评论(0) 推荐(0)
摘要:activeMQ源码一、hello word public class Pro_demo_1 { /** * 第一步:建立ConnectionFactory工厂对象,需要填入用户名、密码、以及要连接的地址,均使用默认即可,默认端口为"tcp://localhost:61616"。 * 第二步:通过ConnectionF 阅读全文
posted @ 2022-03-14 11:08 随遇而安== 阅读(235) 评论(0) 推荐(0)
摘要:表: Person + + +| Column Name | Type |+ + +| id | int || email | varchar |+ + +id是该表的主键列。该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。 编写一个SQL查询来 删除 所有重复的电子邮件,只保留一个id最小 阅读全文
posted @ 2022-03-14 08:56 随遇而安== 阅读(67) 评论(0) 推荐(0)
摘要:给定一个文本文件 file.txt,请只打印这个文件中的第十行。 tail -n +10 file.txt | head -1 阅读全文
posted @ 2022-03-14 08:55 随遇而安== 阅读(26) 评论(0) 推荐(0)
摘要:给定一个包含电话号码列表(一行一个电话号码)的文本文件 file.txt,写一个单行 bash 脚本输出所有有效的电话号码。 你可以假设一个有效的电话号码必须满足以下两种格式: (xxx) xxx-xxxx 或 xxx-xxx-xxxx。(x 表示一个数字) 你也可以假设每行前后没有多余的空格字符。 阅读全文
posted @ 2022-03-14 08:53 随遇而安== 阅读(148) 评论(0) 推荐(0)
摘要:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的 阅读全文
posted @ 2022-03-14 08:51 随遇而安== 阅读(41) 评论(0) 推荐(0)
摘要:颠倒给定的 32 位无符号整数的二进制位。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表 阅读全文
posted @ 2022-03-14 08:49 随遇而安== 阅读(58) 评论(0) 推荐(0)
摘要:某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。 select Name 'Customers' from customers where Id not in (select CustomerId from Orders) 阅读全文
posted @ 2022-03-14 08:47 随遇而安== 阅读(35) 评论(0) 推荐(0)
摘要:/*编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。*/ SELECT email AS Email FROM Person GROUP BY email HAVING COUNT(email) > 1; 阅读全文
posted @ 2022-03-14 08:46 随遇而安== 阅读(36) 评论(0) 推荐(0)
摘要:表:Employee + + +| Column Name | Type |+ + +| id | int || name | varchar || salary | int || managerId | int |+ + +Id是该表的主键。该表的每一行都表示雇员的ID、姓名、工资和经理的ID。 阅读全文
posted @ 2022-03-14 08:44 随遇而安== 阅读(42) 评论(0) 推荐(0)
摘要:Redis 6Redis 是典型的 NoSQL 数据库,支持多种数据结构类型。设计思想是:单线程+多路IO复用技术 上图的例子说明:内存中只有一个单线程,无需进行线程切换等操作,保证了redis在内存处理中的效率,同时使用多个socket链接复用,一旦需要哪个链接的数据准备就绪之后,就将这个线程与这个链接进行IO 阅读全文
posted @ 2022-03-13 16:58 随遇而安== 阅读(89) 评论(0) 推荐(0)
摘要:16.全文代码开始在创建 MyBatis 项目之前,首先创建 website 数据表,SQL 语句如下。 DROP TABLE IF EXISTS `website`; CREATE TABLE `website` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varc 阅读全文
posted @ 2022-03-13 14:07 随遇而安== 阅读(42) 评论(0) 推荐(0)
摘要:15.逆向工程Mybatis 提供了一个逆向工程工具,该工具可以根据数据表自动生成针对单表的 po 类、mapper 映射文件和 mapper 接口。大大缩减了开发时间,可以让开发人员将更多的精力放在繁杂的业务逻辑上。之所以强调单表两个字,是因为 MyBatis 逆向工程生成的 Mapper 中的操作都是针对单表 阅读全文
posted @ 2022-03-13 14:03 随遇而安== 阅读(54) 评论(0) 推荐(0)
摘要:14.缓存(一级缓存和二级缓存)缓存可以将数据保存在内存中,是互联网系统常常用到的。目前流行的缓存服务器有 MongoDB、Redis、Ehcache 等。缓存是在计算机内存上保存的数据,读取时无需再从磁盘读入,因此具备快速读取和使用的特点。和大多数持久化框架一样,MyBatis 提供了一级缓存和二级缓存的支持。默认情况下,MyB 阅读全文
posted @ 2022-03-13 14:00 随遇而安== 阅读(246) 评论(0) 推荐(0)
摘要:13.分页功能MyBatis 的分页功能是基于内存的分页,即先查询出所有记录,再按起始位置和页面容量取出结果。本节我们为查询网站记录增加分页功能,要求结果列表按照 id 升序排列。WebsiteMapper 中方法如下。 /** * * @param site * @param currentPageNo 起始位 阅读全文
posted @ 2022-03-13 13:59 随遇而安== 阅读(51) 评论(0) 推荐(0)
摘要:12.动态SQL动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态 SQL 恰好解决了这一问题,可以根据场景动 阅读全文
posted @ 2022-03-13 13:57 随遇而安== 阅读(82) 评论(0) 推荐(0)
摘要:11.关联(级联)查询一、MyBatis一对一关联查询 一对一级联关系在现实生活中是十分常见的,例如一个大学生只有一个学号,一个学号只属于一个学生。同样,人与身份证也是一对一的级联关系。在 MyBatis 中,通过 <resultMap> 元素的子元素 <association> 处理一对一级联关系。示例代码如下。 <a 阅读全文
posted @ 2022-03-13 13:44 随遇而安== 阅读(215) 评论(0) 推荐(0)
摘要:10.注解为了简化 XML 的配置,MyBatis 提供了注解。我们可以通过 MyBatis 的 jar 包查看注解,如下图所示。 以上注解主要分为三大类,即 SQL 语句映射、结果集映射和关系映射。下面分别进行讲解。 1. SQL 语句映射 1)@Insert:实现新增功能 @Insert("insert 阅读全文
posted @ 2022-03-13 13:33 随遇而安== 阅读(64) 评论(0) 推荐(0)
摘要:9.resultMap元素resultMap 是 MyBatis 中最复杂的元素,主要用于解决实体类属性名与数据库表中字段名不一致的情况,可以将查询结果映射成实体对象。下面我们先从最简单的功能开始介绍。 现有的 MyBatis 版本只支持 resultMap 查询,不支持更新或者保存,更不必说级联的更新、删除和修改。 1.r 阅读全文
posted @ 2022-03-13 13:30 随遇而安== 阅读(126) 评论(0) 推荐(0)
摘要:8.delete标签MyBatis delete 标签用于定义 delete 语句,执行删除操作。当 MyBatis 执行完一条更新语句后,会返回一个整数,表示受影响的数据库记录的行数。下面我们通过一个示例演示 delete 标签的用法。1. 在 WebsiteMapper.xml 中使用 delete 标签添加一条 阅读全文
posted @ 2022-03-13 13:27 随遇而安== 阅读(161) 评论(0) 推荐(0)
摘要:7. update标签MyBatis update 标签用于定义更新语句,执行更新操作。当 MyBatis 执行完一条更新语句后,会返回一个整数,表示受影响的数据库记录的行数。下面我们通过一个示例演示 update 标签的用法。1. 在 WebsiteMapper.xml 中添加以下更新语句,代码如下。 <!--upda 阅读全文
posted @ 2022-03-13 13:22 随遇而安== 阅读(347) 评论(0) 推荐(0)
摘要:19.容器交付介绍如何在k8s集群中部署Java项目 1.容器交付流程 开发代码阶段 编写代码 编写Dockerfile【打镜像做准备】 持续交付/集成 代码编译打包 制作镜像 上传镜像仓库 应用部署 环境准备 Pod Service Ingress 运维 监控 故障排查 应用升级 2.k8s部署Java项目流程 制 阅读全文
posted @ 2022-03-13 10:57 随遇而安== 阅读(126) 评论(0) 推荐(0)
摘要:18.搭建高可用集群1.前言 之前我们搭建的集群,只有一个master节点,当master节点宕机的时候,通过node将无法继续访问,而master主要是管理作用,所以整个集群将无法提供服务 2.高可用集群 下面我们就需要搭建一个多master节点的高可用集群,不会存在单点故障问题 但是在node 和 master节点 阅读全文
posted @ 2022-03-13 10:51 随遇而安== 阅读(230) 评论(0) 推荐(0)
摘要:17.集群资源监控1.概述 1.1 监控指标 一个好的系统,主要监控以下内容 集群监控 节点资源利用率 节点数 运行Pods Pod监控 容器指标 应用程序【程序占用多少CPU、内存】 1.2 监控平台 使用普罗米修斯【prometheus】 + Grafana 搭建监控平台 prometheus【定时搜索被监控服务 阅读全文
posted @ 2022-03-13 10:46 随遇而安== 阅读(110) 评论(0) 推荐(0)
摘要:16.持久化存储1.前言 之前我们有提到数据卷:emptydir ,是本地存储,pod重启,数据就不存在了,需要对数据持久化存储 对于数据持久化存储【pod重启,数据还存在】,有两种方式 nfs:网络存储【通过一台服务器来存储】 2.步骤 2.1 持久化服务器上操作 找一台新的服务器nfs服务端,安装nfs 设置挂 阅读全文
posted @ 2022-03-13 10:39 随遇而安== 阅读(217) 评论(0) 推荐(0)
摘要:15.HelmHelm就是一个包管理工具【类似于npm】 1.为什么引入Helm 首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很多个组件来部署,每个组件可能对应一个deployment.yaml,一个service.yaml,一个Ingress.yaml还可能存 阅读全文
posted @ 2022-03-13 10:34 随遇而安== 阅读(141) 评论(0) 推荐(0)
摘要:13.Kubernetes集群安全机制1.概述 当我们访问K8S集群时,需要经过三个步骤完成具体操作 认证 鉴权【授权】 准入控制 进行访问的时候,都需要经过 apiserver, apiserver做统一协调,比如门卫 访问过程中,需要证书、token、或者用户名和密码 如果访问pod需要serviceAccount 1.1 认证 对 阅读全文
posted @ 2022-03-13 10:13 随遇而安== 阅读(62) 评论(1) 推荐(0)
摘要:12.Kubernetes配置管理1.Secret Secret的主要作用就是加密数据,然后存在etcd里面,让Pod容器以挂载Volume方式进行访问 场景:用户名 和 密码进行加密 一般场景的是对某个字符串进行base64编码 进行加密 echo -n 'admin' | base64 变量形式挂载到Pod 创建secret加密 阅读全文
posted @ 2022-03-13 09:45 随遇而安== 阅读(50) 评论(0) 推荐(0)
摘要:11.Kubernetes如何部署有状态、无状态应用和定时任务1.删除svc 和 statefulset 使用下面命令,可以删除我们添加的svc 和 statefulset kubectl delete svc web kubectl delete statefulset --all 2.statefulset statefulset主要是用来部署有状态应用 阅读全文
posted @ 2022-03-13 09:37 随遇而安== 阅读(578) 评论(0) 推荐(0)
摘要:10.Controller详解1.Statefulset Statefulset主要是用来部署有状态应用 对于StatefulSet中的Pod,每个Pod挂载自己独立的存储,如果一个Pod出现故障,从其他节点启动一个同样名字的Pod,要挂载上原来Pod的存储继续以它的状态提供服务。 1.1 无状态应用 我们原来使用 deploy 阅读全文
posted @ 2022-03-13 09:30 随遇而安== 阅读(145) 评论(0) 推荐(0)
摘要:9.Service1.Service存在的意义 1.1 防止Pod失联【服务发现】 因为Pod每次创建都对应一个IP地址,而这个IP地址是短暂的,每次随着Pod的更新都会变化,假设当我们的前端页面有多个Pod时候,同时后端也多个Pod,这个时候,他们之间的相互访问,就需要通过注册中心,拿到Pod的IP地址,然后去访问 阅读全文
posted @ 2022-03-13 09:21 随遇而安== 阅读(37) 评论(0) 推荐(0)
摘要:8.Controller一、什么是Controller Controller是在集群上管理和运行容器的对象,Controller是实际存在的,Pod是虚拟机的 二、Pod和Controller的关系 Pod是通过Controller实现应用的运维,比如弹性伸缩,滚动升级等 Pod 和 Controller之间是通过labe 阅读全文
posted @ 2022-03-13 09:18 随遇而安== 阅读(93) 评论(0) 推荐(0)
摘要:表1: Person + + +| 列名 | 类型 |+ + +| PersonId | int || FirstName | varchar || LastName | varchar |+ + +PersonId 是上表主键表2: Address + + +| 列名 | 类型 |+ + +| A 阅读全文
posted @ 2022-03-13 09:03 随遇而安== 阅读(35) 评论(0) 推荐(0)
摘要:/*给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 解题思路 标签:字符串遍历,进制转换 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数值 num = 字母 - ‘ 阅读全文
posted @ 2022-03-13 09:01 随遇而安== 阅读(108) 评论(0) 推荐(0)
摘要:/*给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 摩尔投票法思路 候选人(cand_num)初始化为nums[0],票数count初始化为1。 当遇到与cand_num相同的数, 阅读全文
posted @ 2022-03-13 08:59 随遇而安== 阅读(39) 评论(0) 推荐(0)
摘要:/*给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 模拟 这是一道从 11 开始的的 2626 进制转换题。 对于一般性的进制转换题目,只需要不断地对 columnNumbercolumnNumber 进行 % 运算取得最后一位,然后对 columnNumber 阅读全文
posted @ 2022-03-13 08:57 随遇而安== 阅读(49) 评论(0) 推荐(0)
摘要:/*给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 一图胜千言,看图你就明白了 空间复杂度 O(1)O(1) 时间复杂度为 O(n)O(n) 这里使用图解的方式,解释比 阅读全文
posted @ 2022-03-13 08:55 随遇而安== 阅读(29) 评论(0) 推荐(0)
摘要:/*设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部 阅读全文
posted @ 2022-03-13 08:52 随遇而安== 阅读(64) 评论(0) 推荐(0)
摘要:/*给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 二叉树的遍历 前序: 根 -> 左 -> 右 中序: 左 -> 根 -> 右 后序: 左 -> 右 -> 根 /** * Definition for a binary tree node. * public class Tree 阅读全文
posted @ 2022-03-13 08:49 随遇而安== 阅读(32) 评论(0) 推荐(0)
摘要:10.垃圾回收相关概念System.gc() 的理解 在默认情况下,通过System.gc()者Runtime.getRuntime().gc() 的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用(不 阅读全文
posted @ 2022-03-12 20:02 随遇而安== 阅读(68) 评论(0) 推荐(0)
摘要:9.垃圾回收概述与相关算法垃圾回收概述 Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C++语言没有垃圾收集技术,需要程序员手动的收集。 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题: 哪些内存需要回收? 阅读全文
posted @ 2022-03-12 20:01 随遇而安== 阅读(78) 评论(0) 推荐(0)
摘要:13.异步回调CompletableFuture 在 Java 里面被用于异步编程,异步通常意味着非阻塞,可以使得我们的任务单独运行在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常等信息 CompletableFuture 实现了 Future, Completi 阅读全文
posted @ 2022-03-12 19:58 随遇而安== 阅读(91) 评论(0) 推荐(0)
摘要:12.Fork与Join分支将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果该算法相当于递归,且是二分查找思路 class Fibonacci extends RecursiveTask<Integer> { final int n; Fibonacci(int n) { this.n = n; 阅读全文
posted @ 2022-03-12 19:56 随遇而安== 阅读(64) 评论(0) 推荐(0)
摘要:11.线程池连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用 线程池(英语:thread pool)一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价 阅读全文
posted @ 2022-03-12 19:55 随遇而安== 阅读(298) 评论(0) 推荐(0)
摘要:10.阻塞队列阻塞队列是共享队列(多线程操作),一端输入,一端输出不能无限放队列,满了之后就会进入阻塞,取出也同理 当队列是空的,从队列中获取元素的操作将会被阻塞 当队列是满的,从队列中添加元素的操作将会被阻塞 试图从空的队列中获取元素的线程将会被阻塞,直到其他线程往空的队列插入新的元素 试图向已满的队列中添加新 阅读全文
posted @ 2022-03-12 19:45 随遇而安== 阅读(92) 评论(0) 推荐(0)
摘要:9.读写锁回顾悲观锁和乐观锁的概念悲观锁: 见字知意,他是干什么都很悲观,所以在操作的时候,每次都上锁,使用时解锁乐观锁:他很乐观,多线程,并不上锁,但是会发生 线程安全问题 表锁:整个表操作,不会发生死锁行锁:每个表中的单独一行进行加锁,会发生死锁读锁:共享锁(可以有多个人读),会发生死锁写锁:独占锁(只能 阅读全文
posted @ 2022-03-12 19:42 随遇而安== 阅读(158) 评论(0) 推荐(0)
摘要:8.JUC强大辅助类(减少计数CountDownLatch,循环栅栏CyclicBarrier,信号灯Semaphore)便于解决并发功能该辅助类主要讲述三个减少计数CountDownLatch 循环栅栏 CyclicBarrier 信号灯Semaphore 1 CountDownLatch 该类的构造方法为CountDownLatch(int count)构造一个用给定计数初始化的CountDownLatch在这里插入代码片 两个常 阅读全文
posted @ 2022-03-12 19:37 随遇而安== 阅读(52) 评论(0) 推荐(0)
摘要:7.Callable接口的实现import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /* * 一、创建执行线程的方式三:实现 Cal 阅读全文
posted @ 2022-03-12 19:27 随遇而安== 阅读(114) 评论(0) 推荐(0)
摘要:6.多线程锁 (公平锁和非公平锁,死锁,可重锁)某一个时刻内,只能有唯一 一个线程去访问这些synchronized 方法所有的静态同步方法用的也是同一把锁——类对象本身,这两把锁是两个不同的对象,所以静态同步方法与非静态同步方法之间是不会有竞态条件的但是一旦一个静态同步方法获取锁后,其他的静态同步方法都必须等待该方法释放锁后才能获取锁,而不管是 阅读全文
posted @ 2022-03-12 19:26 随遇而安== 阅读(64) 评论(0) 推荐(0)
摘要:ElasticSearch-进阶篇搭建工程 ES提供多种不同的客户端: 1、TransportClient ES提供的传统客户端,官方计划8.0版本删除此客户端。 2、RestClient RestClient是官方推荐使用的,它包括两种:Java Low Level REST Client和 Java High Level RES 阅读全文
posted @ 2022-03-12 16:11 随遇而安== 阅读(202) 评论(0) 推荐(0)
摘要:linux一、下载jdk8 wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" 阅读全文
posted @ 2022-03-12 10:08 随遇而安== 阅读(46) 评论(0) 推荐(0)
摘要:/*给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 二叉树的遍历 前序: 根 -> 左 -> 右 中序: 左 -> 根 -> 右 后序: 左 -> 右 -> 根 /** * Definition for a binary tree node. * public class TreeNo 阅读全文
posted @ 2022-03-12 08:53 随遇而安== 阅读(49) 评论(0) 推荐(0)
摘要:/*给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链 阅读全文
posted @ 2022-03-12 08:51 随遇而安== 阅读(28) 评论(0) 推荐(0)
摘要:/*给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 思路 标签:位运算 本题根据题意,线性时间复杂度 O(n)O(n),很容易想到使用 Hash 映射来进行计算,遍历一次后结束得到结果,但是在空间复杂度上会达到 O(n)O(n),需要使用较多的 阅读全文
posted @ 2022-03-12 08:50 随遇而安== 阅读(32) 评论(0) 推荐(0)
摘要:/*给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 思路 标签:位运算 本题根据题意,线性时间复杂度 O(n)O(n),很容易想到使用 Hash 映射来进行计算,遍历一次后结束得到结果,但是在空间复杂度上会达到 O(n)O(n),需要使用较多的 阅读全文
posted @ 2022-03-12 08:48 随遇而安== 阅读(36) 评论(0) 推荐(0)
摘要:/*给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 */ class Solution { public boolean isPalindrome(String s) { int n = s.length(); in 阅读全文
posted @ 2022-03-12 08:46 随遇而安== 阅读(32) 评论(0) 推荐(0)
摘要:/*给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 阅读全文
posted @ 2022-03-12 08:44 随遇而安== 阅读(40) 评论(0) 推荐(0)
摘要:/*给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 class Solution { public List<Integer> getRow(int rowIndex) { int[] dp = new int[ 阅读全文
posted @ 2022-03-12 08:42 随遇而安== 阅读(31) 评论(0) 推荐(0)
摘要:/*给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 思路: 把杨辉三角转化为一维数组就是: [1] [1,1] [1,2,1] [1,3,3,1] ....... 返回结果为全集,把状态方程设置成二维数组即可。 状态 阅读全文
posted @ 2022-03-12 08:41 随遇而安== 阅读(64) 评论(0) 推荐(0)
摘要:/*给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。 解题思路: 从根节点开始, 阅读全文
posted @ 2022-03-11 09:49 随遇而安== 阅读(40) 评论(0) 推荐(0)
摘要:/*给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 解题思路 标签:DFS 终止条件、返回值和递归过程: 当前节点 root 为空时,说明此处树的高度为 0,0 也是最小值 当前节点 root 的左子树和右子树都为空时 阅读全文
posted @ 2022-03-11 09:47 随遇而安== 阅读(46) 评论(0) 推荐(0)
摘要:/*给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 从底至顶(提前阻断) 此方法为本题的最优解法,但“从底至顶”的思路不易第一时间想到。 思路是对二叉树做先序遍历,从底至顶返回子树最大高度,若判定某 阅读全文
posted @ 2022-03-11 09:45 随遇而安== 阅读(85) 评论(0) 推荐(0)