自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式六大基本原则

1、概念:一个类对另一个类的依赖应该建立在最小的接口上,要为各个类建立它们需要的专用接口,不要建立一个庞大的接口,供其它类调用。3、与单一职责原则的区别:单一职责主要是约束类中程序实现的细节,接口隔离原则主要约束接口,针对抽象和程序整体框架的构建。2、作用:两个软件实体之间无须直接通信,那么就不应该发生直接的调用关系,可以通过第三方转发该调用,降低程序的耦合度。1、概念:不应有直接依赖关系的类之间,不要有依赖:有依赖的类之间尽量只依赖必要的接口。2、作用:为良好的继承定义一个规范,降低程序出错的可能性。

2024-01-23 22:38:28 483 1

原创 允许mysql被远程访问

连接云服务器上的mysql报错 [HY000][1130] null, message from server: "Host 'ip' is not allowed to connect to this MySQL server".3、输入语句update user set host = '%' where user = 'root';4、输入语句flush privileges;2、use mysql 进入mysql库。5、再次连接,即可连接成功。

2023-08-17 14:17:17 225 1

原创 linux查看端口使用

netstat -lntp | grep 8080

2023-08-17 11:28:33 131 1

原创 解决腾讯云启动tomcat不能远程访问

一、轻量级服务器添加防火墙规则。二、查看防火墙是否开启。

2023-08-17 08:42:29 280 1

原创 InnoDB常见索引简介

聚集索引/聚簇索引将表的主键构造为一颗B+树,并将表的行记录存放在B+树的叶子结点上,聚集索引是由mysql自己根据主键创建的索引,如果表中没有主键会根据rowid创建聚集索引。聚集索引B+图示辅助索引/二级索引叶子结点不包含行的全部数据,只存放了行的id。辅助索引图示联合索引以多个列共同创建索引,叶子结点中包含创建索引的列数据和主键id。联合索引的查询需要遵循最左前缀原则,否则索引失效。最左前缀原则:需要根据创建索引的顺序进行查询,即查询的列要以从左到右的顺序。

2023-07-29 14:02:15 376

原创 Spring入门-配置文件方式

1、导入Spring依赖2、写一个简单的实体类Person,包含name和age两个字段,并提供set/get方法和构造方法。3、 编写Spring的配置文件SpringConfig.xml。

2023-07-13 10:40:47 142 1

原创 jvm内存结构

1、栈是线程运行时需要的内存空间。2、每个栈由多个栈帧组成,对应着每次方法调用所占的内存。3、每个线程只有一个活动的栈帧,对应着正在执行的那个方法。

2023-03-11 16:03:01 193

原创 设计模式----单例模式

单例模式,属于创建类型的一种常用的。通过单例模式的方法创建的类在当前进程中只有一个。单例模式分为饿汉式和懒汉式两种,分别在类加载时创建和使用时创建。

2023-02-03 15:56:18 114

原创 ReentrantLock的基本使用&常用方法

下面是创建一个锁然后获取再释放的一个过程,可以看到需要调用unlock()方法释放锁,为了防止程序发生异常导致不能释放锁造成程序的死锁,一般要把释放锁的代码写在finally块中,确保锁的释放。

2022-12-10 23:14:49 6748

原创 sleep()、wait()、park()区别

sleep()、wait()、park()都可以使线程进入等待状态,但是3种方式在使用上和功能上都有些不同。 1、sleep()方法是Thread类的方法,可以在任何线程中使用,使用时需要传入时间参数,如Thread.sleep(1000),睡眠1秒。 2、如果sleep()方法写在同步代码块中,线程并不会释放锁,其它线程没法获取锁。 1、wait()是Object类中的方法,因为每个对象都拥有锁,所以让当前线程等待某个对象的锁,当然应该通过这个对象来操作。调用wa

2022-12-08 12:01:38 664

原创 Java synchronized偏向锁、轻量级锁、重量级锁

当创建对象时该对象的对象头状态会变成偏向锁状态(即使不加synchronized也是默认偏向锁状态),即Biased状态。thread指向偏向的线程,当有线程再次获取锁时,会判断是否为偏向的线程,如果是就可以直接执行同步代码块的内容。若不是,偏向锁升级为轻量级锁。 轻量级锁和偏向锁加锁方式一样,当偏向锁被其它线程获取时(未发生竞争),会自动升级为轻量级锁。 每个线程的栈帧都会包含一个锁记录,内部可以存储锁对象的Mar

2022-12-08 00:21:11 2386

原创 Java对象头&&Monitor概念及工作原理

普通对象头占用64 bits ,其中Mark word占32 bits ,Klass Words 占32bits。Klass Words 可以理解为指针,指向类对象。Mark Word下面会详解。 数组对象增加了4个字节的空间,用于存储数组长度。 对象在不同情况下的结构会有所不同, 参考以下表格:32位虚拟机Mark Word 1、Normal状态:此状态为

2022-12-07 15:52:36 1406

原创 synchronized关键字的使用

synchronized是Java的一个关键字,实际使用对象锁保证了临界区代码的原子性,是线程同步的一种方式。synchronized可以修饰方法或者代码块,当修饰方法时锁住的是整个方法(实际锁住的是当前对象,保证了整个方法的原子性),如果修饰的方法是静态方法会锁住整个类(锁的是类对象)。修饰代码块时只锁代码块。注意:不可以修饰静态代码块。 可见,当线程1进入方法时,在线程1执行结束前,线程2无法进入该方法中。如果去掉 synchronized 修饰可以看到两个线程均进入方法中。由

2022-12-06 22:56:20 173

原创 多线程中sleep与yield的区别

多线程中sleep与yield的区别

2022-12-05 22:39:19 294

原创 Java线程类中Run()方法和Start()方法的区别

Java线程类中Run()方法和Start()方法的区别

2022-12-05 22:18:07 152

原创 Java创建线程的三种方式

Java创建线程方式可分为3类,分为为继承Thread类、实现Runnable接口、实现Callable接口。下面介绍这3类的具体使用。

2022-12-05 22:05:11 204

空空如也

空空如也

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

TA关注的人

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