- 博客(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
原创 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
原创 Java创建线程的三种方式
Java创建线程方式可分为3类,分为为继承Thread类、实现Runnable接口、实现Callable接口。下面介绍这3类的具体使用。
2022-12-05 22:05:11 204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人