自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP协议

HTTP协议 超文本传输协议 由万维网制定(w3c)是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。

2022-10-06 09:05:18 209 1

原创 微服务常见的注册中心:nacos,Eureka,Zookeeper,Consul

相对于 Spring Cloud Eureka 来说,Nacos 更强大。nacos和eureka的范围不同,Nacos的阈值是针对某个具体Service的,而不是针对所有服务的;但Eureka的自我保护阈值是针对所有服务的。nacos支持CP和AP两种, eureka只支持AP。nacos使用netty,是长连接, eureka是短连接,定时发送。

2022-09-25 08:21:57 1927

原创 搭建商城的微服务架构-2

ApiModelProperty(value = "业务状态码", position = 1, example = "200, 400, 401, 403, 404, 409, 500")@ApiModelProperty(value = "商品编号", name="commodityCode",example = "PC100")@ApiModelProperty(value = "商品编号",name="commodityCode",example = "PC100")

2022-09-24 23:53:21 841

原创 搭建商城的微服务架构-1

- dependencyManagement不是添加依赖,而是确定子项目使用依赖时的版本,也称锁版本 -->-- 表示当前项目是一个父项目,以pom文件的形式,供子项目继承 -->-- 当前项目会以一个pom文件的形式被子项目继承 -->-- Spring Boot Web:WEB应用 -->-- 定义父项目需要的版本号参数 -->-- 当前父项目包含的所有模块 -->--在线api文档-->在父项目的pom文件中,编写子项目的存在。父项目的pom文件添加如下内容。

2022-09-24 22:27:36 388

原创 Java经典算法题-冒泡排序

1. 冒泡排序  冒泡排序(Bubble Sort)算法:它的实现思路是通过相邻数据的交换达到排序的目的1. 对数组中相邻的数据,依次进行比较;2. 按升序,如果前面的数据大于后面的数据,则把前面的数据交换到后面。经过一轮比较之后,就能把数组中最大的数据排到数组的最后面了;3. 再用同样的方法,把剩下的数据逐个进行比较排序,最后得到就是从小到大排序好的数据。public class Test { public static void main(String[] args) {

2022-09-24 20:54:46 223

原创 nacos 简介和使用

Nacos 是阿里巴巴,用于构建微服务应用的服务发现、配置管理和服务管理。在项目中不同模块之间服务调用时,实现服务注册与发现。

2022-09-24 20:24:35 574

原创 session token jwt

关于Session token jwtHTTP协议本身是无状态协议,所以,无法识别用户的身份!为了解决此问题,经编程时,引入了Session机制,用于保存用户的某些信息,可识别用户的身份!

2022-08-08 14:49:48 156

原创 集群 、分布式、 微服务的区别

微服务:将功能模块拆分成一个独立的服务通过接口来实现数据的交互。微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。分布式:一个业务分拆多个子业务,部署在不同的服务器上。集群:同一个业务,部署在多个服务器上。...

2022-08-08 14:42:21 107

原创 sql查询语句中各部分的执行顺序

sql查询语句中各部分的执行顺序

2022-07-23 12:13:31 208

原创 java NIO称为非阻塞IO。读写的过程中不会发生阻塞线程

** * JAVA NIO * NIO称为非阻塞IO。读写的过程中不会发生阻塞线程 * 我们之前所学习的流,称为BIO:阻塞是IO,就是在读写的过程中可能会发生阻塞现象。 */public class NIODemo1 { public static void main(String[] args) throws IOException { /* 非阻塞IO面向Channel("通道")的,不是面向Stream(流)的。 流

2022-04-18 11:37:37 454

原创 java反射机制

package reflect;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Scanner;/** * java反射机制 * * 反射是java的动态机制,可以允许我们在程序[运行期间]再确定实例化,调用某个方法,操作某个属性。 * 反射机制大大的提高了代码的灵活度,但是会有更高的系统开销和较慢的运行效率。 * 因此反射机制不能被过度的使用 * * */public cl

2022-04-18 11:35:06 206

原创 分享10个接私活的网站

1. 程序员客栈:程序员的经纪人https://www.proginn.com/2. 开源中国众包平台 oschina 众包https://zb.oschina.net/3. 码市:来码市,找人才/任务快人一步https://codemart.com/4. 我爱方案网:电子方案开发,供应链平台http://www.52solution.com/kb5. 人人开发:让管理软件开发更容易http://www.rrkf.com/6.

2022-04-15 11:50:05 20391 20

转载 Java 基础 - 知识点汇总3-String,StringBuilder,StringBuffer

String¶概览String 被声明为 final,因此它不可被继承。内部使用 char 数组存储数据,该数组被声明为 final,这意味着 value 数组初始化之后就不能再引用其它数组。并且 String 内部没有改变 value 数组的方法,因此可以保证 String 不可变。...

2022-04-14 11:52:57 105

转载 Java 基础 - 知识点汇总2-包装类

数据类型¶包装类型八个基本类型:boolean/1 byte/8 char/16 short/16 int/32 float/32 long/64 double/64基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。缓存池new Integer(123) 与 Integer.valueOf(123) 的区别在于:new Integer(123) 每次都会新建一个对象 Integer.valueOf(123) 会使用缓存池中.

2022-04-13 15:26:58 101

转载 Java 基础 - 面向对象1

三大特性¶ 封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。优点:减少耦合: 可以独立地开发、测试、优化、使用、理解和修改 减轻维护的负担: 可以更容易被程序员理解,并且在调试的时候可以不影响其他模块 有效地调节性能: 可以通过剖析确定哪些模块影响了系统的性能 提高软件的可重用性 降低

2022-04-13 15:17:03 80

原创 java基础一 :jdk介绍

java开发环境准备:下载和安装DK 8和IDEA社区版(免费的) JDK:一路下一步 IDEA:一路下一步,在create desktop shortcut处将64-bit launchar打 勾,以创建桌面快捷方式笔记:java开发环境:编译运行过程:编译期:.java源文件,经过编译,生成.class字节码文件运行期:JVM加载.class并运行.class(0和1)特点:跨平台、一次编程到处使用...

2022-04-09 17:00:22 167

原创 HTTP协议 超文本传输协议 由万维网制定

HTTP协议 超文本传输协议 由万维网制定(w3c)是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。HTTP协议对于客户端与服务端之间的交互规则有以下定义:要求浏览器与服务端之间必须遵循一问一答的规则,即:浏览器与服务端建立TCP连接后需要先发送一个请求(问)然后服务端接收到请求并予以处理后再发送响应(答)。注意,服务端永远不会主动给浏览器发送信息。HTTP要求浏览器与服务端的传输层协议必须是可靠的传输,因此是使用TCP协议作为传输层协议的

2022-04-04 11:35:34 144

原创 java 核心API day05 File类

块读写的文件复制操作int read(byte[] data) 一次性从文件中读取给定的字节数组总长度的字节量,并存入到该数组中。 返回值为实际读取到的字节量。若返回值为-1则表示读取到了文件末尾。

2022-03-27 13:20:10 95

原创 java 核心API day04 File类

java 核心API day04File类删除目录delete()方法可以删除一个目录,但是只能删除空目录。package file;import java.io.File;/** * 删除一个目录 */public class DeleteDirDemo { public static void main(String[] args) { //将当前目录下的demo目录删除 File dir = new File("demo");//

2022-03-27 13:03:52 91

转载 Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class data13{public static void main(String[] args){int a=129;in

2022-03-26 18:10:36 278

原创 java 使用File 创建文件和文件夹

概述:封装一个磁盘路径字符串,对这个路径可以执行一次操作可以封装文件路径、文件夹路径、不存在的路径创建对象File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新的File实例new File(“d:/abc/a.txt”);new File(“d:/abc”,”a.txt”);常用方法创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。mkdir() 在指定位置创建一个单级文件夹

2022-03-25 14:50:51 14871

原创 二进制原码, 反码, 补码的念和计算

原码, 反码, 补码的基础概念和计算方法.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.1. 原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001[-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]==>[-127 , 127]2. 反...

2022-03-24 17:19:31 1223

原创 java String面试题: String s = new String(“hello“); 创建了几个对象?

/* String s = new String("hello");创建了几个对象? 答:2个 第一个:字面量"hello" ---java会创建一个String对象表示字面量"hello",并将其存入常量池 第二个:new String() ---new String()时会再创建一个字符串对象,并引用hello字符串的内容 */String s = new String("hello");String s1 = "hello";System.o

2022-03-24 14:24:01 2201

原创 java 常用正则表达式

java 常用正则表达式正则表达式是描述字符串内容格式,使用它来匹配一个字符串的内容是否符合要求1. []:表示一个字符,该字符可以是[]中指定的内容 例如: [abc]:这个字符可以是a或b或c [a-z]:表示任意一个小写字母 [a-zA-Z]:表示任意一个字母 [a-zA-Z0-9_]:表示任意一个数字字母下划线 [^abc]:该字符只要不是a或b或c 预定义字符: .:表示任意一个字符,没有范围限制 \d:表示任意一个数字,等同于[0-9] \w:表示任意一

2022-03-24 10:47:23 2364

原创 秒杀系统架构实现图

2021-08-03 09:27:12 193

原创 链表数据结构

如何想保证添加和删除操作的性能,该怎么办?使用链表数据结构链表结构(火车和火车车箱)单向链表:从头遍历到尾或从尾遍历到头双向链表:可以从头遍历到尾,也可以从尾遍历到头单向链表双向链表...

2021-08-03 09:26:40 53

原创 java 线程通信

不同的线程执行不同的任务,如果这些任务之间有某种关系,就需要进行通信,协调完成任务,经典的生产者与消费者案例

2021-08-03 09:26:23 73

原创 Git 工作区、暂存区和版本库 介绍

基本概念我们先来理解下Git 工作区、暂存区和版本库概念工作区:就是你在电脑里能看到的目录。暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。下面这个图展示了工作区、版本库中的暂存区和版本...

2021-08-03 09:25:44 199

原创 java实现ftp文件上传,下载

1. 首先先配置ftp服务器可参考:https://www.cnblogs.com/popfisher/p/7992036.html2. 需要依赖:commons-net,版本3.6gradle添加依赖compile group: 'commons-net', name: 'commons-net', version: "3.6"3. 代码实现/** * 使用 FTP 实现...

2021-08-02 17:00:33 866

原创 linux java file.mkdirs() 创建目录失败解决

下面是创建文件夹的代码,可以说很简单的 File file = new File("/data0/logs");if (!file.exists()) { boolean mkdirs = file.mkdirs(); log.info("创建目录返回结果:"+mkdirs); }可是在linux下就是创建不了,从上班一直到下午,最后终于找到原因,...

2018-10-25 17:15:01 16845 2

转载 java 实现大文件分隔成多个小文件

public class FileTest { /**  * 文件分隔器:给定文件的路径和每一块要拆分的大小,就可以按要求拆分文件  * 如果指定的块给原文件都还要大,为了不动原文件,就生成另一个文件,以.bak为后缀,这样可以保证原文件  * 如果是程序自动拆分为多个文件,那么后缀分别为".part序号",这样就可以方便文件的合并了  * 原理...

2018-10-25 17:02:16 4009

原创 不同系统中的换行符,回车符 \r , \n

'\r'是回车,前者使光标到行首'\n'是换行,后者使光标下移一格unix下一般只有一个0x0A表示换行("\n"),windows下一般都是0x0D和0x0A两个字符("\r\n"),苹果机(MAC OS系统)则采用回车符CR表示下一行(\r)Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<回车><换行&g...

2018-10-24 10:04:39 2144

原创 java 同时创建多个文件夹和文件

public void demo1() { try { File dir = new File("d:\\abc\\bcd"); if (!dir.exists()) { dir.mkdirs(); } File file = new File(dir, "demo.txt"); if (!file.exists()) { file.crea...

2018-10-23 17:07:06 8069

原创 java break 跳出多层for循环

public static void main(String[] args){ tag2: for(int i=0;i<5;i++){ tag1: for(int k=0;k<5;k++){ System.out.println(k); ...

2018-10-23 15:27:43 9054

转载 整理的开发工具

技术站点Hacker News:非常棒的针对编程的链接聚合网站Programming reddit:同上MSDN:微软相关的官方技术集中地,主要是文档类infoq:企业级应用,关注软件开发领域OSChina:开源技术社区,开源方面做的不错哦cnblogs,51cto,csdn:常见的技术社区,各有专长stackoverflow:IT技术问答网站GitHub:全球最大...

2018-10-07 10:31:09 222

原创 hashCode的作用

hashCode方法是在Object中定义的Java中的集合(Collection)有两类,一类是List,再有一类是Set 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非...

2018-09-29 13:45:32 332

原创 Object 公用方法

1.clone方法实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这是就需要在类中复写clone方法。2.getClass方法final方法,获得运行时类型。3.toStrin...

2018-09-29 10:58:17 110

原创 jvm 运行时数据区、String 常量池

私有 - 程序计数器:记录当前线程所执行字节码的行号指示器 - 虚拟机栈:存放了当前线程调用方法的局部变量表、操作数栈、动态链接、方法返回值等信息(可以理解为线程的栈) - 本地方法栈:为虚拟机使用的Native方法提供服务共享 - Java堆:占据了虚拟机管理内存中最大的一块,唯一目的就是存放对象实例,也是垃圾回收器主要管理的地方,故又称GC堆- 方法区:存储加载的类信息...

2018-09-28 09:40:29 365

原创 java 基本数据类型和引用数据类型

基本数据类型:byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767,默认值0int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0long:长整型,在内存中占64位,即8个字节-...

2018-09-27 16:51:17 126

原创 git查看 修改用户名、邮箱

用户名和邮箱的作用:  用户名和邮箱地址相当于你的身份标识 每次commit都会用用户名和邮箱纪录查看用户名 邮箱 $ git config user.name  $ git config user.email修改全局用户名 邮箱 $ git config --global user.name "xxx"  $ git config --g...

2018-09-27 13:54:28 173

空空如也

空空如也

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

TA关注的人

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