- 博客(51)
- 资源 (14)
- 收藏
- 关注
原创 【杂谈】聊聊我是如何从Java转入Web3的
后面因为当时元宇宙和Web3的概念特别火,也可能是不满足于传统Java的无意义加班与内卷,厌倦了每天都是curd的工作,就抱着试一试的心态去看一下web3领域相关的开发,打算转型,但是不像传统互联网一样,其实在当时区块链的系统性学习课程或资料并不好找,找到的都是些比较零散的,而且相关的行业的人脉资源也比较缺失,所以我觉得应该找到一个更系统的学习方式去学习,当时的第一个想法是花钱买时间,于是就是抱着赌一赌的心态,报名了一个比较小众的培训班(防止打广告,名字不透露,有意私我)。
2023-08-14 17:21:00 2117 1
原创 【区块链】【FISCO】WeIdentity
官方的说法:去中心化身份标识解决方案。其实说白了就是互联网上每个人都拥有自己数字身份,并且这个身份是唯一且不可篡改的。WeIdentity要解决的问题就是用来解决数字身份验证的问题。传统互联网身份验证的方式通常用账户或密码,这样的话难免信息泄露然后被黑客攻击,WeIdentity使用区块链技术,可以让用户拥有一个去中心化的数字身份,并且保证身份的真实性和唯一性。
2023-04-18 10:53:32 1654
原创 【SpringCloud】服务治理:Spring Cloud Eureka
Spring Cloud Eureka是Spring Cloud Netlix 微服务套件中的一部分, 它基于NetfixEureka做了二次封装,主要负责完成微服务架构中的服务治理功能。Spring Cloud 通过为Eureka增加了Spring Boot风格的自动化配置,我们只需通过简单引入依赖和注解配置就能让SpringBoot构建的微服务应用轻松地与Eureka服务治理体系进行整合。这里说到服务治理,我们先来看看什么是服务治理。服务治理服务治理可以...
2022-04-29 17:40:31 684
原创 【Java】迭代器之:Iterable & Iterator
在我们Java中的迭代器是一个接口,名为Iterator。他有两个抽象方法hasNext方法:用来判断还有没有数据访问。next方法 :用来访问集合的下一个数据。迭代器可以访问不同特性的集合数据,而无需关心他们的内部实现。注意:集合并不是直接去实现Iterator接口,而是实现Iterable接口,用这个Iterable接口定义的方法,去返回当前集合的迭代器。其中collection就继承了Iterable接口,所以collection体系的集合都得按照这种方法返回迭代器
2022-04-27 22:42:37 1226
原创 Java的静态绑定与动态绑定
我们可以对思考一个问题:JVM是如何知道调用的是哪个类的方法源代码? 这里面到底有什么内幕呢?这篇文章我们就将揭露JVM方法调用的静态(static binding) 和动态绑定机制(auto binding) 。理解这两个绑定之前,我们不妨先理解一下绑定一词。何为绑定?在Java中绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。在Java中的绑定有分为静态绑定和动态绑定;或者说叫前期绑定或者说后期绑定。静态绑定在程序执行前方法已经被绑定,针对Java简单的可以理
2022-04-27 16:22:18 2277
原创 XXL-JOB简介
首先我们得知道XXL-JOB是什么,他是一个分布式调度平台。背景首先介绍一下定时任务的概念,定时任务主要是包括某个时间点去执行某个具体的任务。在Java中实现定时任务的方式主要有几种:while(true)+Thread.sleep: 通过轮询+线程休眠的方式实现定时任务 java.util.Timer+java.util.TimerTask: Timer是jdk提供的一个定时器工具,它可以计划执行一个任务或反复执行一个任务;TimerTask是jdk的一个抽象类,它的子类代表一个可以被Tim
2022-04-26 11:33:16 1595
原创 【Java进阶】到底什么是抽象?
昨天和同事聊到Java抽象的这个概念,今天想深入理解以下什么是Java中的抽象。初识抽象理解抽象,首先我们得理解抽象这个词本身的概念,那么什么是抽象?抽象这个词本身就很抽象。在百度的解析是这么说的:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。具体地说,抽象就是人们在实践的基础上,对于丰富的感性材料通过去粗取精、去伪存真、由此及彼、由表及里的加工制作,形成概念、判断、推理等思维形式,以反映事物的本质和规律的方法。...
2022-04-22 08:05:47 4862 1
原创 【其他】main方法可以被其他方法调用吗?
大部分编程语言,必须得声明和指定一个程序入口,这个程序入口,往往就是main方法,或者说是main函数,比如C和Java就是如此。在C语言中,一个工程内只能声明一个main函数,如果声明多个则程序无法运行然后报错。Java则不同,Java在一个工程内可以声明多个main方法,当然尽管可以声明多个main方法,但在程序执行时,必须指定一个main方法,作为启动入口,既然Java可以声明多个main方法,那main方法可以被其他方法调用吗?答案是可以的,其实Java中的main方法除了可以当作程序入
2022-04-10 20:37:49 2646
原创 【Java】别再分不清重载和重写了
重载方法的重载英文为OverLoading,是指在一个类中定义相同名字,但参数不同的多个方法。调用时会根据不同的参数表达,来选择对应的方法,重载方法可以修改返回类型,也可以修改返回权限,但要注意不能只修改这两者,如果只是修改返回类型或访问权限那调用方法根本无法区分。实际调用的是哪个方法,简而言之,只要能够区分来方法,不会造成混淆 。重写方法的重写英文名为Overwrite或Override,是指子类覆盖父类的方法逻辑,子类的重写方法,必须和父类的被重写方法具有相同的方法名,参数列表和返回类型,并
2022-04-10 09:30:28 487
原创 【其他】逻辑运算符分短路和非短路?
短路逻辑运算符是什么玩意儿?逻辑值,用来表达结果的真假,他的值为true或者false,有些语言会用0或者非0来表达。逻辑运算符,就是将逻辑表达式或者逻辑值进行组合和运算,从而得到一个新的逻辑值,逻辑运算符由与运算(&&)或运算(||)和非运算(!),与运算(&&)和或运算(||)均为双目运算符,即必须携带两个逻辑值,进行运算,非运算符(!)为单目运算符,即计算单个值。这里要注意,在我们Java中我们说的与运算和或运算。一般就是指我们的短路与或者说短路或。在Java中
2022-04-10 09:13:36 1035
原创 【其他】goto,一个几乎被遗忘的循环标签
continue和break,可以改变循环的执行流程,但在多重循环中,这两条语句,无法直接从内层循环,跳转到外层循环,在一些语言中,比如C,可以通过goto语句,实现多重循环的跳转,但在非循环语句结构中,使用goto语句会使得程序结构紊乱,可读性变差。Java为了防止goto滥用,虽然保留了goto关键字,但这个关键字没有任何的作用。然后Java发明了一种带标签的continue和break语句,用来跳出多重循环。实际上它就是一种带限制的,专门用于循环的goto语句,通常情况下,我们使用的co.
2022-04-09 15:58:18 440
原创 【其他】不会还有人搞不清楚continue,break,return吧?
continue和break都作用与循环体,当我们想提前结束循环,就可以用到这两个关键字两者区别:continue只是结束当前循环,然后执行下一次循环。break是跳出整个循环,继续执行循环体后面的语句。假设正常的循环次数是100次,当执行了50次时执行了continue,那么当前循环会立刻终止,然后执行后50次循环。那如果循环到50次的时候执行的break,则直接结束整个循环体,后50次循环也不执行了。return则更多的是作用于整个方法体,return可以单独被调用,用于没有返回值的
2022-04-09 15:43:24 184
原创 【其他】编译型语言,解释型语言,傻傻分不清,JIT又是啥?
高级编程语言,按照程序的执行方式分为两种,一种是编译型语言,一种是解释型语言。编译型语言编译型语言会通过编译器,将源代码一次性翻译成机器码然后执行,一般编译型语言的执行速度比较快,常见的编译型语言有C,C++等。解释型语言解释型语言会通过解释器,一句一句的将源代码,解释为机器码并执行,一般解释型语言开发效率比较高,常见的解释型语言有Python,JavaScript等。可以发现无论是编译型语言,还是解释型语言,都是将源代码编译为机器码才能执行。其区别是在于一个是执行前先行编译
2022-04-05 20:29:45 183
原创 【Java】分不清JVM,JRE,JDK?
JVM 全称Java Virutal Machine即Java虚拟机,用来运行Java字节码文件,JVM是Java跨平台的关键,因为他屏蔽了不同操作系统之间的差异,可以让相同的Java程序在不同的操作系统上,运行出相同的结果。JRE 全称Java Runtime Environmet即Java运行时环境,它是运行Java已编译程序,所必须的软件环境,包含了JVM,Java标准类库,JRE提供只想运行Java程序的用户使用,不能用于创建新的程序,即不能将Java源代码编译成字节码文件JDK 全称Jav
2022-04-05 20:05:02 680
原创 【Java进阶】 深入理解Synchronized
在实际应用过程中使用多线程,可以给我们的程序带来性能上非常大的提升,但是同时,如果我们的线程使用不合理,也会带来非常多不可控的问题,最常见的问题就是线程安全问题了。也就是说当多个线程同时访问某个方法的时候,这个方法无法按照我们的预期行为来执行,那么这个方法就是认为是线程不安全的。其实导致我们线程不安全的原因主要有三个:原子性,有序性,可见性。当谈到Synchronized同步锁的时候无疑就是与原子性相关的了多线程环境的原子性问题什么是原子性呢?在数据库事务...
2022-03-29 12:18:16 873
原创 【Java进阶】深入理解ThreadLocal
初识ThreadLocal首先有一个问题,在多线程环境中,我们的多个线程需要同时访问某个共享变量,但我们只希望每个线程对共享变量的相关操作仅对当前线程可见,应该如何操作呢?其实ThreadLocal就是用来解决该问题的工具,它为我们的每个线程提供了一个独立的存储空间,这个空间用来存储共享变量的副本,此后每个线程只会对共享变量的副本进行操作,并且该操作对其他线程而言是不可见的。所以我们可以称ThreadLocal为线程本地变量,相当于说我们创建了一个ThreadLocal变量之...
2022-03-28 23:15:39 676
原创 【Java进阶】深入理解并发
前言:对于操作系统的多任务,我们可以简单理解为在同一时刻运行多个程序的能力。就比如生活中我们用电脑可以一边操作QQ一边听着音乐一样。这里首先我们要先理解并行与并发的概念,与并行不同的是,并发的执行并不受CPU的数量所制约。操作系统将CPU的时间片给每个进程,让人有种并行处理的感觉。那么所谓的多线程实质上就是进程版的多任务状态,一个程序同时执行多个任务。我们可以把线程看作“轻量级的进程”。有了“轻量级”这个概念,我们就可以想象到创建或说销毁一个线程的...
2022-03-21 15:02:51 1083
原创 【实现操作系统】Day0 简单实现一个HelloWorld
何为操作系统?操作系统本质上是一个软件。做成效果:能任意显示窗口,实现鼠标光标控制,同时可以运行几个应用程序等开发步骤?问题:如何实现OS中的断点关闭以及得电开启?类比与(.exe)后缀文件,OS并不是点开操作即可,需要存入CD-ROM,软盘或硬盘中开启。我们可以联想出对应步骤:开发准备:为了编写我们的二进制文件,我们可以下载对应的二进制编辑器Bz - c.mos第一个程序HelloWorld下载好上述的软件之后,我们可以按照下面的格式打出,再次之后一直输入0
2022-03-20 18:17:41 550
原创 【MySQL】MySQL调优技巧
为什么要进行SQL调优?首先我们要理解一下为什么需要SQL调优,其实企业要求SQL调优最关键的就是,帮公司省钱,为什么这么说呢?我们看看这个比较优化成本:硬件>系统配置>数据库表结构>SQL及索引 优化效果:硬件<系统配置<数据库表结构<SQL及索引所以我们可以看出如果SQL调的好,对整个系统的可用性是非大的提升。五个原则SQL优化我们一般进行五个原则:1.减少数据...
2022-03-03 21:40:45 953
原创 【MySQL】SELECT语句-语法顺序
1. SELECT 2. DISTINCT <select_list>3. FROM <left_table>4. <join_type> JOIN <right_table>5. ON <join_condition>6. WHERE <where_condition>7. GROUP BY <group_by_list>8. HAVING <having_condition>9. ORD...
2022-03-03 18:06:22 258
原创 【牛客算法题】BM22. [比较版本号] 解题思路
题目连接:比较版本号_牛客题霸_牛客网思路1:例子:输入“1.012.1”,“1.11.1”1.我们可以用两个字符串数组来分别保存点分割的字符数集String[] s1 = version1.split("\\.");String[] s2 = version2.split("\\.");此时s1 保存了三个数集分别是“1”,“012”,“1”,s2同理这里不在举例2.我们这个时候就要开始取得每个数集对应的一个字符,并且需要对每个取出的字符进行前缀0的消除。3.不过再次之前为
2022-03-02 20:48:07 193
原创 【Java进阶】Sleep和Wait方法的区别(多线程)
相同点:两者都可以让线程进入休眠的状态,并且两者都可以响应interrupt中断,也就是说线程在休眠的过程中如果收到中断的信号,都可以进行响应并中断,并且都可以抛出InterruptException异常不同点:1.两者的语法使用不同wait方法必须配合synchronized使用,为了验证,我实现了以下代码 public static void errorTest() throws InterruptedException { Object lock = new
2022-03-02 13:05:43 258
原创 QPS和TPS的区别
QPSQPS是每秒的查询率,站在服务器的角度就是服务器每秒能够处理的请求数量,代表着服务器的性能和吞吐能力。QPS=并发数/平均响应时间TPSTPS是每秒的事务数,一个事务是指客户机向服务器发送请求然后服务器做出反应的全部过程。如果对于一个接口进行一个(单场景的压测),且这个接口不会再去请求其他接口,那么TPS=QPS,否则TPS != QPS。...
2022-03-02 11:47:21 1047
原创 【算法思想】双指针算法
相关leetcode:26. 删除有序数组中的重复项思想:双指针顾名思义就是运用两个指针进行遍历,而这指针又分为快指针和慢指针。我们以Leetcode26 删除有序数组中的重复项为例。上题:该题目的意思,就是说白了就是去重,得出去重后的数组以及返回删除后数组的新长度要注意的是题目说明了只能使用O(1)的额外空间,以及只能在原数组上进行修改。这时候我们的双指针就派上用场了。那么双指针具体怎么操作呢?我们用一张图来演示一下,我们以输入数组[0,0,1,1,1,2,2,.
2022-02-28 23:00:42 145
原创 【Java进阶】关于String的一些思考(集合类)
StringString对象是不可变的,当我们要修改String的值的时候,实际上我们是新建了一个String的对象,而开始的对象则并没有发生改变.我们也可以简单的认为String只是具有可读性. public static String upCase(String s){ return s.toUpperCase();//将小写字母转化为大写 } public static void main(String[] args) throws Exceptio
2022-02-28 14:20:05 721
原创 【WindowXP】net use 系统错误64
net use \\ip\ipc$ password /user:usernamepassword:对方主机密码username:对方主机用户名建立远程连接的时候发生了 错误64:指定网络名不可在用.首先检查防火墙是否关闭(不过一般防火墙没有关闭的话ping不同) 检查计算机服务中Computer Browser是否开启 若服务中无Computer Browser检查添加删除windows功能里面,是否有勾选"SMB....文件共享支持",勾上后重启电脑即可 之后再重复第二步,将C...
2022-02-17 21:04:00 5548
原创 【Python基础】Python中的函数
函数# 如何定义一个函数def hello(): print('hello') print('python')# 位置参数:形参和实参必须保持一致# 按照位置传递参数def getinfo(name,age): print('name is',name,'age is',age)getinfo(name='westos',age=12)-------------------------------结果: name is westos age is 12
2021-09-01 09:26:24 721
原创 【Python基础】Python中的字典
字典# 字典:key-value 建值对s = { 'linux' : [100,99,88], 'python': [190,56,78]}print(s,type(s))#工厂函数d = dict()print(d,type(d))d = dict(a=1,b=2)print(d,type(d))#字典的嵌套student = { '123':{ 'name':'tom', 'age':18, 'scor
2021-09-01 09:25:03 181
原创 【Python基础】Python中的内置方法
Python中的内置方法sum()max()min()# 枚举:返回索引值和对应的valuefor i,v in enumerate('Hello'): print(i,v) #输出0 H1 e2 l3 l4 o# zips1 = "abc"s2 = "123"for i in zip(s1,s2): print(i) #输出('a', '1')('b', '2')('c', '3')# zips1 = "abc"s2 = "1
2021-09-01 09:23:11 76
原创 【Python基础】Python集合
集合什么是集合集合中的元素不可重复print(type(s))<class 'set'>#定义一个空集合s1 = set([])print(type(s1))#列表的去重li = [1,2,3,4,2,3,4,5,6,5]print(list(set(li)))集合支持的特性只有:成员操作符和循环集合是一个可变的数据类型打印顺序和集合中存储的我数据顺序不同可用方法#增加s.add(10)s.add(0)print(s)#更新s.update({1
2021-08-15 21:32:13 67
原创 【Python基础】Python元组
元组带了紧箍咒的列表 不可变是数据类型.没有增删改 可以储存任意数据类型#定义一个元组t = (1,1.2,True,"HHH",[1,3,2])print(t,type(t))#如果元组里面包含可变的数据类型,可以间接修改元组内容t[4].append(5)print(t)#输出(1, 1.2, True, 'HHH', [1, 3, 2]) <class 'tuple'>(1, 1.2, True, 'HHH', [1, 3, 2, 5])#元组如果只有一
2021-08-15 21:31:30 69
原创 【Python基础】Python列表
列表列表(打了激素的数组):可以存取任意数据类型列表中可以存取列表service = ["https","ftp","ssh"]#索引#正向索引print(service[0])#反向索引print(service[-1])#切片print(service[::-1])print(service[1:])print(service[:-1])#重复print(service * 3)#连接servicel = ["mysql"+"python"]print(serv
2021-08-08 23:24:52 75
原创 【Python基础】Python基本语法
Python基本语法块注释"""内容"""在内存中删除变量用del关键字输出(Print)# 可以输出数字print(520)# 可以输出字符串print("Hello")# 可以输出运算符的表达式print(1+2)# 数据输出到文件当中,注意点1.所指定的盘符需要存在, 2.使用file = fpfp = open('D:/Test/PythonTest/01/test.txt','a+')#a+ 如果文件不存在就创建,存在就在该文件操作print('hello',fi
2021-08-08 23:24:05 150
原创 【Python基础】Python概述
Python概述人生苦短,我用python-----Life is short,you need Python将其他语言翻译为机器语言的机器叫做解释器----编译型语言读取一行翻译一行----解释型语言解释型语言方便跨平台,迁移性好Python设计哲学(唯一一个提出设计哲学的语言)用一种方法来做一件事Python特点:python也是一个完全面向对象的语言拥有强大的标准库python社区提供了大量的第三方库,可扩展性强简单,易学,免费,开源...
2021-08-08 23:23:16 86
原创 【Java基础】Java异常
异常什么是异常Exception异常指程序中出现的不期而至的各种情况三种异常检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略.运行时异常:运行时异常时可能被程序员避免地异常.与检查性异常相反,运行时异常可以在编译时被忽略.错误ERROR:错误不是异常,而是脱离程序员控制的问题.错误在代码中通常被忽略.例如,当栈溢出时,一个错误就发生了,他们在编译也检查不到.异常的体系结构J
2021-08-04 10:04:25 78
原创 【Java基础】面向对象编程(OOP)
面向对象编程(OOP)初识面向对象面向过程思想:步骤简单,第一步做啥,第二步做啥面向对象思想:物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对分类进行单独思考.最后才对某个分类下的细节进行面向过程的思索.对于描述复杂的事物,为了宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统.但是,具体到微观操作,仍然需要面向过程的思路去处理.OOP(Pbject-Oriented Programming)面向对象编程本质: 以类的方式组织代码,以对象的组织
2021-08-04 10:03:46 181
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人