自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】

Linux常用命令ulimit命令ulimit命令ulimit命令用于控制shell程序的资源。ulimit为shell内建指令,可用来控制shell执行程序的资源。ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目

2022-05-26 23:07:25 91

原创 死锁

1.什么是死锁?package com.ljh2.test;/** * @author liang_jiang_hao * @date 2021/3/30 */public class test2 { Object obj1=new Object(); Object obj2=new Object(); public static void main(String[] args) throws InterruptedException { test2 t

2021-03-30 23:07:01 178

原创 运行时数据区与

jvm运行时数据区域包括堆,本地方法栈,虚拟机栈,程序计数器,方法区,其中堆内存和方法区是线程共享的,虚拟机栈,本地方法栈,程序计数器是线程私有的。1.程序计数器:程序计数器是一块较小的内存空间,它的作用相当于是当前线程执行到字节码的行号指示器,确定下一条需要执行的字节码指令。Java的多线程是通过轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器只会处理一个线程所执行的指令。为了线程切换后能够回到上次执行的位置,每个线程需要一个独立的程序计数器,各个线程之间的计数器互不影响如果

2021-03-08 15:31:26 93

原创 内存屏障

什么是内存屏障(Memory Barrier)?内存屏障(memory barrier)是一个CPU指令。内存屏障有两个作用:阻止屏障两侧的指令重排序;强制把写缓冲区/高速缓存中的脏数据等写回主内存,让缓存中相应的数据失效。编译器和CPU可以在保证输出结果一样的情况下对指令重排序,使性能得到优化。插入一个内存屏障,相当于告诉CPU和编译器先于这个命令的必须先执行,后于这个命令的必须后执行。内存屏障另一个作用是强制更新一次不同CPU的缓存。例如,一个写屏障会把这个屏障前写入的数据刷新到缓存,

2021-02-28 17:23:18 981

原创 volatile关键字

java中volatile关键字的作用一.内存模型的相关概念大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就有了高速缓存。也就是,当程序在运行过程中,会将运算需要的数

2021-02-28 17:22:26 59

原创 Eureka

1 Eureka简介​ Eureka是Netflix的一个子模块,也是核心模块之一。 Eureka是一项基于REST(代表性状态转移)的服务。主要在AWS云中用于查找服务,以实现负载均衡和中间层服务器的故障转移。 SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现于注册,只需要使用服务的标识符, 就可以访问到服务,而不需要修改服务的配置文件了。功能类似于Dubbo的注册

2021-02-26 10:18:10 192

原创 Lombok

Lombok简介Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok。注解介绍下面只是介绍了几个常用的注解,更多的请参见https://projectlombok.org/features/index.html。@Data@Data注解在

2021-01-27 10:58:53 150

原创 Thread

/* 在某个线程中创建一个新线程,新线程的优先级和创建新线程的线程一致,如果创建线程是守护线程的话,则新线程 是守护线程。 当Java虚拟机启动时,通常有一个非守护线程(即main线程,调用指定类的main方法),Java虚拟机会继续执行这些线程 直到发生如下情形之一: · 调用了类Runtime的exit()方法,并且安全管理器允许发生退出操作。 · 所有非守护线程均已死亡,可以是通过执行完run方法后返回,也可以是执行run方法时抛出了异

2021-01-19 13:35:54 208

原创 ThreadLocal

ThreadLocal简介:​ 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般会在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。ThreadLocal是JDK包提供的,它提供线程本地变量,如果创建一个ThreadLocal

2021-01-19 13:31:08 154

原创 Reference 类

Reference 引用对象的抽象类直接子类: PhantomReference(虚引用) 、WeakReference(弱引用)、SoftReference(软引用)。package java.lang.ref;import sun.misc.Cleaner;import sun.misc.JavaLangRefAccess;import sun.misc.SharedSecrets;/** * 引用对象的抽象基类。该类定义了所有引用对象共同的操作。 由于引用对象与垃圾收集

2021-01-08 16:22:44 746 1

原创 Java对象生命周期

Java对象生命周期大致可以分为7个阶段:创建阶段(Created)应用阶段(In Use)不可见阶段(Invisible)不可到达阶段(Unreachable)可收集阶段(Collected)终结阶段(Finalized)释放阶段(De-allocated)1.创建阶段(Created) JVM 加载类的class文件 此时所有的static变量和static代码块将被执行 加载完成后,对局部变量进行赋值(先父后子的顺序) 再执行new方法 调用构造函

2021-01-06 14:48:21 486

原创 Redis数据结构链表

链表在Reids中的应用非常广泛,比如列表键的底层实现之一就是链表。 当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是 比较长的字符串时,Redis就会使用链表作为列表键的底层实现。​ 除了链表键之外,发布与订阅、慢查询、监视器等功能也用到了链表,Redis服务器本身还使用链表来保存多个客户端的状态消息,以及使用链表来构建客户端输出缓冲区(output buffer)。Redis中链表节点的实现:typedef struct listNode{ //前置节点 .

2021-01-04 19:55:14 127

原创 基本数据类型

名称封装类默认赋值占用字节位数范围booleanfalse11bittrue、falsechar0116bit0 ~ 2 ^ 16 - 1byte028bit-2 ^7~2 ^7-1short0216bit-2 ^15~2 ^15-1int0432bit-2 ^31~2 ^31-1long0864bit-2 ^63~2 ^63-1float0.0432bit大约:3.40E38~~1.4E-...

2020-12-28 15:09:40 204 2

原创 位移操作符

java的运算符,分为四类:算术运算符 + - * / % ++ –关系运算符 == != > >= < <=逻辑运算符 && || ! & | ^位运算符 & | ~ ^ >> << >>>逻辑运算符public static void main(String args[]) { int a = 1, b = 3; if (a =

2020-12-28 15:08:33 163

原创 简单动态字符串

简单动态字符串(simple dynamic string,sds)Redis没有直接使用C语言的字符串表示(以空字符结尾的字符数组),而是自己构建了一种简单动态字符串的抽象类型,并将SDS用作Redis的默认字符串表示。在Redis数据库里面,包含字符串的键值对在底层都是用SDS来实现的。除了用来保存数据库中的字符串值之外,SDS还被用作缓冲区(buffer):AOF模块中的AOF缓冲区,以及客户端状态中的输入缓冲区,都是由SDS实现的。比如:在客户端执行命令:redis> set msg

2020-12-11 23:14:27 1316

原创 Thread构造方法与启动

线程类一共有八种构造方法 public Thread() { init(null, null, "Thread-" + nextThreadNum(), 0); } public Thread(Runnable target) { init(null, target, "Thread-" + nextThreadNum(), 0); } public Thread(ThreadGroup group, Runnable targe

2020-12-03 18:21:03 201

原创 String类型长度限制问题

对于字符串可以承受的最大长度,要分为2个阶段,一个是编译时期(也就是你代码定义了一个String字符串,String s= “xiaofang”),一个是运行时期(指在程序运行过程中)编译期String字符串的限制我们都知道JVM里面是包含常量池的,(是一种对字符串的性能优化,不用反复创建新的字符串了)当我们使用字符串字面量直接定义String的时候,是会把字符串在常量池中存储一份的。常量池中的每一项常量都是一个表,都有自己对应的类型。Java中的UTF-8编码的Unicode字符串在常量池中以CONS

2020-12-03 18:19:37 4576

原创 LinkedList

LinkedList是一个以双向链表实现的List,它除了作为List使用,还可以作为队列或者堆栈使用。LinkedList继承关系LinkedList是一个继承于AbstractAequentialList的双向链表 。它也可以被当做堆栈、队列或双端队列进行使用 。LinkedList实现了List接口,能让他进行队列操作。LinkedList实现了Deque接口,能让它当作双端队列来使用。LinkedList实现了Cloneable接口,即覆盖了方法clone(),能被克隆。

2020-11-25 16:23:19 109

原创 1.Redis键,数据类型常用命令

Redis键(key)Redis用于管理redis的键的命令。keys pattern //查询所有符合给定模式的(pattern)的key 例如 keys * 查看所有的keydump key //序列化给定 key ,并返回被序列化的值。exists key的名字,//判断某个key是否存在expire key 秒钟://为给定的key设置过期时间ttl key //查看还有多少秒过期,-1表示永不过期,-2表示已过期type key //查看你的key是什么类型move

2020-11-05 14:47:06 86

原创 1.Redis基本概念

**Redis: REmote DIctionary Server(远程字典服务器)**c语言开发的,是一个高性能的(key-value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前热门的NoSQL数据库之一,也叫做数据结构服务器。一、与其他(key-value)缓存产品相比有以下三个特点:1.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset

2020-11-04 18:15:16 133

原创 java入门1

一、区分jre和jdk jre:Java runtime environment,Java运行时环境。 其中包含了运行一个Java程序所需要的基本类库,以及最重要的平台jvm(Java虚拟机) 无论在什么设备上面,只要需要运行Java程序,就必须要有jre jdk:Java Development Kit,Java开发工具包。 jdk中包含了一系列开发Java程序所需要的一系列工具,例如:java.exe,javac.exe, javap.exe(反编译工具) ,jar.

2020-10-22 08:51:18 110

原创 mybatis运行报错 syntax error, error in :‘name like ‘%‘ ? ‘%‘

mybatis运行报错 syntax error, error in :'name like ‘%’ ? '%'SELECT e.id,e.name,e.price,e.description,e.author,e.pub_date,e.publisher, c1.id as p_id,c1.`name` as p_name, c1.description as p_desc,c2.id as c_id, c2.`name` as c_name,c2.description as c_desc

2020-10-16 11:23:50 3337

原创 Java运算符

java的运算符,分为四类:算术运算符 + - * / % ++ –关系运算符 == != > >= < <=逻辑运算符 && || ! & | ^位运算符 & | ~ ^ >> << >>>逻辑运算符public static void main(String args[]) { int a = 1, b = 3; if (a =

2020-10-09 10:50:31 81

原创 1.Nginx基本命令与配置

Nginx 的常用的命令进入 nginx 目录中cd /usr/local/nginx/sbin1.查看Nginx版本号 ./nginx -v2.启动 Nginx ./nginx3.关闭 Nginx ./nginx -s stop4.重新加载Nginx ./nginx -s reloadNginx 的配置文件Nginx配置文件位置cd /usr/local/nginx/conf配置文件中的内容包含三部分内容

2020-10-08 10:35:11 82

原创 1.Nginx基本概念

1.Nginx基本概念​ (1)Nginx是什么,做什么Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。我们常用它来做:反向代理、负载均衡、动态与静态资源的分离的工作反向代理1.1正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需

2020-10-08 09:48:01 155

原创 XML 可扩展标记语言

XML 可扩展标记语言1.什么是XML?​ xml是一种很像HTML的标记语言,它的设计宗旨是传输数据,而不是显示数据,xml具有自我描述性。2.XML 和 HTML 之间的差异​ XML 不是 HTML 的替代。​ XML 和 HTML 为不同的目的而设计:​ XML 被设计用来传输和存储数据,其焦点是数据的内容。​ HTML 被设计用来显示数据,其焦点是数据的外观。​ HTML 旨在显示信息,而 XML 旨在传输信息。3.XML

2020-09-24 21:18:36 120

原创 maven打包

[ERROR] COMPILATION ERROR : [INFO] -------------------------------------------------------------[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?[INFO] 1 error[INFO] -------------------------------

2020-09-22 16:35:40 126

原创 Java TCP编程

Java TCP编程可能遇到的异常:1.java.net.BindException: Address already in use: JVM_Bind这个异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)或者是绑定端口操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。如果在绑定端口号时发现想要使用的端口号已经被其他进程占用了,有两种处理方式:①换其他的端口号使用(常用);②如果一定要用这个端口号,那么就必须把正在占

2020-08-28 21:28:34 176

空空如也

空空如也

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

TA关注的人

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