- 博客(37)
- 收藏
- 关注
原创 黑马头条Day01
随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客户端的需求也越来越高。黑马头条项目正是在这样背景下开发出来。黑马头条项目采用当下火热的微服务+大数据技术架构实现。本项目主要着手于获取最新最热新闻资讯,通过大数据分析用户喜好精确推送咨询新闻。
2024-04-19 18:02:14 978
原创 vim使用(纯键盘之路必备)
如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。(注意:视图模式是用来模拟像鼠标滚动以批量选择文本的,分为三种,可视模式,可视行模式,可视块模式。
2024-04-19 12:18:39 974
原创 命令行自定义环境变量(只要你的计算机还存在一刻,就可以在任何地方呼唤TA的身影(手动狗头
将zyk文件夹加入换将变量中的path中这里使用命令vim /etc/profile #编辑文件export PATH=$PATH:/root/zyk # 将zyk文件夹(其路径)加入到path将zyk文件夹加入到path。这里友情提供两个快捷键ctrl+g gg #跳转至文档顶部 ctrl+g G #跳转至文档底部。
2024-04-19 00:26:38 310 1
原创 只用键盘的技巧
f6、ctrl + l都有同样的效果。在edge浏览器中的一些快捷键,chrom里也是适用的。ctrl + 1到ctrl +8;回车键: 该人/群的以一个独立的窗口展示出来。空格键: 该人/群的则会平铺在微信主界面的右侧。打开最后的那个标签。快捷打开微信界面可以去设置里面查看。就可以快速将焦点移到好友列表。先打开微信, 然后一下快捷键。
2024-04-17 22:05:31 273
原创 谷粒商城part3——快速开发篇
这里是过来人的学习建议:1、如有条件电脑内存至少16G起步,条件进一步加个屏幕,条件更进一步租一台至少4G内存的X86架构云服务器,所有部署的东西全扔云服务器上2、P16,P17没法搭起来的建议照着rerenfast的github上的教程搭3、项目搭起来后,,不然后续排错会令人崩溃4、多记笔记,尤其是相关的知识,有利于面试5、IDEA的至少能提高一半的学习效率,必用6、7、Maven依赖版本号一定要一模一样(除非你知道高版本怎么配置)
2024-04-17 17:51:50 352
原创 谷粒商城part2——环境篇
这里是过来人的学习建议:1、如有条件电脑内存至少16G起步,条件进一步加个屏幕,条件更进一步租一台至少4G内存的X86架构云服务器,所有部署的东西全扔云服务器上2、P16,P17没法搭起来的建议照着rerenfast的github上的教程搭3、项目搭起来后,,不然后续排错会令人崩溃4、多记笔记,尤其是相关的知识,有利于面试5、IDEA的至少能提高一半的学习效率,必用6、7、Maven依赖版本号一定要一模一样(除非你知道高版本怎么配置)
2024-04-17 09:29:14 751
原创 注册表让我重回80年代(狗头保命
只不过每次打开win+R时,基本都是想输入cmd,但是这个并没有(至少我的这台电脑没有)保存下上一次的输入,导致每次都要重新输入cmd,很繁琐,于是我就查遍了资料,最终在这样一篇博客中找到了所谓的“解决方案”,附上链接——win10怎么设置win+r的默认程序为cmd。这时,我在等最后一个消息,朋友将他的注册表信息发了过来,结果一看,只是差了个分隔符""。现在是2024年4月16日23:09:07,今天之所以这么晚才睡,是因为遇到了一个很有意思的事情,以至于解决完之后,强挺困意,将其记录——
2024-04-17 00:28:31 636
原创 微服务项目——谷粒商城
详细解释——项目是前后端分离开发,分为内网部署和外网部署。外网是面向公众访问的,部署前端项目,可以由手机app和电脑web网站访问。内网是部署的整个后台的服务集群,公众通过客户端来完成相应功能,比如登录注册等都要通过客户端来给后台来发送请求。当然请求不是直接过来的,完整的请求流程是这样的——客户端请求首先来到nginx服务集群,nginx首先将请求转交给API网关。API网管使用springCloud Gateway。网关完成根据当前功能动态路由到指定服务。
2024-04-13 17:53:42 1008
原创 微服务架构
Ribbon是Netflix开发的一种客户端负载均衡工具,它与Eureka配合使用。Ribbon能够根据一些负载均衡算法从多个服务提供者中选择一个,确保客户端请求能够被均匀地分发到各个服务实例上。在Spring Cloud中,Ribbon通常与Eureka一起使用,通过Eureka获取可用的服务实例列表,然后使用Ribbon进行负载均衡。
2024-04-13 12:23:14 347 1
原创 Java面试篇9——并发编程
文档说明在文档中对所有的面试题都进行了难易程度和出现频率的等级说明星数越多代表权重越大,最多五颗星(☆☆☆☆☆) 最少一颗星(☆)CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作AbstractQueuedSynchronizer(AQS框架)AtomicXXX类例子:我们还是基于刚才学习过的JMM内存模型进行说明。
2024-04-13 08:36:31 1048
原创 Java项目——瑞吉外卖笔记
需要掌握:Java基础知识Java WebMySQLMaven学完后会掌握——了解企业项目开发的完整流程,增长开发经验了解需求分析的过程,提高分析和设计能力对所学技术进行灵活应用,提高编码能力解决各种异常情况,提高代码调试能力1.移动端与管理后台展示2.项目上线后3.管理后台登录4.管理后台详细页面两端应用过滤器的作用与必要性请求的顺序及层次细化分析效果——JS文件重新启动后,一切都可以了——加入category表,重点字段type。
2024-04-06 13:21:28 765
原创 Linux基础 超详细!!!
环境变量PATH这个项目里面记录了系统执行命令的搜索路径。这些搜索路径我们也可以自行添加到PATH中去。相当于添加了一个命令,在任意地方都能够执行测试:• 在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件mkhaha• 通过vim编辑器,在mkhaha文件内填入:echo 哈哈哈哈哈完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行• 修改PATH的值临时修改PATH:export PATH=PA。
2024-03-30 00:09:04 1121
原创 Git——分布式版本控制工具详解
bash是一个命令处理器, 运行在文本窗口中, 并能执行用户直接输入的命令.bash还能从文件中读取Linux命令, 称之为脚本.bash支持通配符, 管道, 命令替换, 条件判断等逻辑控制语句文件切莫导入,直接open即可。
2024-03-29 16:01:41 1447
原创 Java项目——黑马点评(附近商铺搜索)
GEO就是Geolocation的简写形式,代表。Redis在3.2版本中加入了对GEO的支持,允许,帮助我们根据经纬度来检索数据。常见的命令有:GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)GEODIST:计算指定的两个点之间的距离并返回GEOHASH:将指定member的坐标转为hash字符串形式并返回GEOPOS:返回指定member的坐标GEORADIUS:指定圆心、半径,,并按照与圆心之间的距离排序后返回。
2024-03-27 16:39:31 882
原创 Java项目——黑马点评(好友关注)
推拉模式是一个折中的方案,站在发件人这一段,如果是个普通的人,那么我们采用写扩散的方式,直接把数据写入到他的粉丝中去,因为普通的人他的粉丝关注量比较小,所以这样做没有压力,如果是大V,那么他是直接将数据先写入到一份到发件箱里边去,然后再直接写一份到活跃粉丝收件箱里边去,现在站在收件人这端来看,如果是活跃粉丝,那么大V和普通的人发的都会直接写入到自己收件箱里边来,而如果是普通的粉丝,由于他们上线不是很频繁,所以等他们上线时,再从发件箱里边去拉信息。本例中的个人页面,是基于关注的好友来做Feed流,因此采用。
2024-03-27 15:39:40 764
原创 计算机网络笔记
既然我们已经对因特网是什么有了一点印象,那么下面考虑计算机网络中另一个重要的时髦术语:协议(protocol)。什么是协议?协议是用来干什么的?协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。今天的因特网是一个网络的网络,其结构复杂,由十多个第一层ISP和数十万个较低层ISP组成。ISP覆盖的区域多种多样,有些跨越多个大洲和大洋,有些限于狭窄的地理区域。较低层的ISP与较高层的ISP相连,较高层ISP彼此互联。
2024-03-25 18:03:01 1084 3
原创 服务器详解
服务器就是一台简简单单的电脑,只不过没有像本地的电脑一样有鼠标,键盘,显示屏罢了。服务器为其他客户机**提供计算或应用服务。**如果我们的电脑能有一个公网ip,就可以作为一台服务器,让其他电脑访问。其实我们可以在本地访问URL,使用的是内网ip。
2024-03-25 15:02:00 168 1
原创 IDEA使用技巧
VO全称为Value Object,译为值对象。PO全称为Persistent Object,译为持久化对象。BO全称为Business Object,译为业务对象。DTO全称为Data Transfer Object,译为数据传输对象。DAO全称为Data Access Object,译为数据访问对象。POJO全称为Plain Old Java Object,译为普通的Java对象。
2024-03-24 22:41:22 200 1
原创 Java基础——注解
Java注解(也称为元数据)是附加在代码中的一些元信息用于编译和运行时进行解析和使用,起到说明、配置的功能。可以对包、类、接口、字段、方法参数、局部变量等进行注解,注解仅仅起到辅助性的作用。一般常用的注解可以分为三类:一类是Java自带的标准注解,包括@Override(标明重写某个方法)、@Deprecated(标明某个类或方法过时)和@SuppressWarnings(标明要忽略的警告),使用这些注解后编译器就会进行检查。
2024-03-24 12:36:03 775 1
原创 Java基础——反射
RTTI——(Run-Time Type Information)指的是,这让你可以在**程序运行时发现和使用类型信息。**Java中让我们在运行时识别对象和类的信息的方式(RTTI)主要有两种——
2024-03-24 12:12:54 920 1
原创 Java项目——黑马点评(优惠券秒杀6之优化秒杀)
之前由于使用了大量的分布式锁与数据库的大量交互,虽然保证了一致性,但也造成了性能上的一些缺失。接下来就讲解如何在性能上提升——重新梳理秒杀业务——
2024-03-23 19:51:54 622 1
原创 Java项目——黑马点评(优惠券秒杀7之Redis消息队列MQ实现异步秒杀)
由于在企业中使用rabbitMQ多,这里实现移步微服务中的rabbitMQ.
2024-03-23 19:48:21 758 1
原创 深入理解计算机系统笔记
前言——1、计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。2、编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列的阶段生成机器代码。3、GCC语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示给出程序中的每一条指令。然后GCC调用汇编器和链接器根据汇编代码生成可执行的机器代码。
2024-03-23 12:54:48 995 1
原创 Java项目——黑马点评(优惠券秒杀5之分布式锁)
因为上面的流程判断锁与释放锁不在同一时刻,在这中间由于JVM的垃圾回收策略等会导致代码执行阻塞,也许又会有执行时间大于EX时间的情况发生,就又出现了上面的多线程并发安全问题。在之前实现的锁已经能够满足大多数的场景,但是还有可以提升的空间。如下——有Redisson成熟框架下的支持——Redisson——在Redis基础下实现的分布式工具集合**(分布式锁是它的子集)**#主从节点总共讲了三种锁,层层递进——
2024-03-22 13:33:55 981 1
原创 Java基础
断言语句有两种形式。第一种形式比较简单:expression 是boolean类型的表达式。当系统运行该断言语句时将求出该表达式的值,如果是false 则说明程序处于不正确的状态,系统将抛出一个没有任何详细信息的 AssertionError类型的错误,并且退出。如果 expression的值是true,则程序继续执行。
2024-03-20 22:29:56 614 1
原创 Java基础——线程
程序:程序是一段静态的代码,是应用软件执行的蓝本。进程:是程序的一次静态执行过程,它对应了从代码加载、执行、结束的完整过程。这也是进程从开始到消失的过程。作为执行蓝本的同一段程序,可以多次加载到系统的不同内存区域执行,形成不同进程。线程:包含在进程里面,是进程里面的一个能独立执行自身指令的控制流(即一个子任务)。一个进程里可以有多个线程。进程与线程的物理组成:进程由代码、数据、内核状态和一组寄存器组成。线程由表示程序运行状态的寄存器(如程序计数器、栈指针)以及堆栈组成。
2024-03-18 18:03:55 224 1
原创 第十二章 类和动态内存分配
显式复制构造函数又被称为深度复制,也就是说,复制构造函数应当复制字符串并将副本的地址赋给str成员,而不仅仅是复制字符串的地址。(这样调用函数的对象就与参数的地址不同了)如果在构造函数中使用new来初始化指针成员,则应在析构函数中使用delete。应定义一个复制构造函数,通过深度复制将一个对象初始化为另一个对象。通常,这种构造函数与下面类似。具体地说,复制构造函数应分配足够的空间来存储复制的数据,并复制数据,而不仅仅是数据的地址。另外,还应该更新所有受影响的静态类成员。
2023-08-11 21:00:03 34 1
原创 矢量转化_随机漫步
将一个人领到街灯柱下。这个人开始走动,但每一步的方向都是随机的(与前一步不同)。这个问题的一种表述是,这个人走到离灯柱50英尺处需要多少步。从矢量的角度看,这相当于不断将方向随机的矢量相加,直到长度超过50英尺。
2023-08-04 18:45:14 45 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人