- 博客(7)
- 收藏
- 关注
原创 nginx: [emerg] unexpected “}“ in /etc/nginx/nginx.conf:47
看来很多别人的解决方法,概述就是两种方法,但是这两种本人都尝试了没有用,最好突发奇想到了一种方法,如下。1、检查下nginx.conf下提示区域符号是否有漏了}(附近也看看),我本人的很明显一点也不缺。2、检查下nginx.conf代码结尾是不是缺“;我的还是根本就没问题。最重要的来了,于是我就想是不是他这个提示路径不对呢,我使用的可能是别的路径nginx.conf。结果:去从头到尾一个一个看,
2025-04-02 00:28:47
160
原创 循环依赖-java: Annotation processing is not supported for module cycles. Please ensure that all modules
解决:删除其中模块依赖另一个模块的dependency。
2025-03-27 08:30:17
162
原创 Java基础
重载:发生在同一个类中(或者父类和之类之间),方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。成员变量属于类,可以被public、private、static等修饰符修饰,而局部变量不能被访问控制修饰符及static所修饰,但是,成员变量和局部变量都可以被final修饰。对于包装类型来说,==比较的是对象的内存地址。1、方法名、参数列表必须系统,子类方法返回值类型应比父类方法返回值类型更小或相等,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。
2025-03-26 08:54:07
295
原创 单例模式-双重检查锁定
由于可能存在多个线程同时进入第一层检查的情况,当第一个线程进入同步代码块并创建了单例对象后,其他线程可能还在等待进入同步代码块。这是因为不同类加载器加载的类被认为是不同的类,即使它们的类名相同。在单例对象创建之后,直接返回单例对象,避免了同步操作,提高了效率。方法时,只有一个线程可以进入同步代码块,其他线程必须等待当前线程执行完同步代码块后才能进入。方法时都进行同步操作,效率较低,尤其是当单例对象已经创建后,每次调用仍然需要同步。,说明单例对象尚未创建,此时创建单例对象并将其赋值给。
2025-03-10 23:45:00
403
原创 Java内存模型(JMM):
是Java虚拟机(JVM)定义的一种规范,用于描述多线程程序中变量(包括实例字段、静态字段和数组元素)如何在内存中存储和传递的规则。有序性:值线程执行操作的顺序。JMM允许某些指令重排序以提高性能,但会保证线程内的操作顺序不会被破坏,并通过happens-bfore关系保证跨线程的有序性。JMM核心目标是为了确保多线程环境下的可见性、有序性和原子性,从而避免由于硬件和编译器优化带来的不一致问题。抽象来看JMM会把内存分为本地内存和主存,每个线程都有自己的私有化的本地内存,然后还有个存储共享数据的主存。
2024-10-16 14:05:46
308
原创 编译时异常和运行时异常
2. 捕获和处理方式 编译时异常:使用try-catch语句捕获,或者使用throws语句抛出(必须在代码中显示处理) 运行时异常:使用try-catch语句捕获,或者使用throws语句抛出,也可以不处理(可以不显示处理)1. 发生时机 编译时异常:在编译阶段就会发生异常,编译器会提示,必须处理 运行时异常:在运行阶段发生异常,编译器不会提示,可以处理也可以不处理。3. 设计意图 编译时异常:通常外部因素引起,编写者无法预料 运行时异常:编写者编程错误。三大区别:发生时机、捕获和处理方式、设计意图。
2024-10-14 14:08:32
379
原创 Java为什么不可以多继承呢?
Java8之后接口可以定义默认方法,所以接口中定义的方法可以有具体实现,此时如果子类实现了多个接口,并且这些接口中定义了相同的方法,那么就会产生歧义。钻石继承:B、C类继承了A,实现了A的某些方法。D又继承B、C类,现在要调用D内定义在A的方法,此时就产生了歧义。Java8之前无法定义到具体方法实现,所以即使有多个接口必须子类自己实现,所以并不会产生歧义。所以Java强制规定,如果多个接口都有相同的默认方法,子类必须重写这个方法,不然,编译器就报错。问题来了既然多继承不可以,为什么多实现可以?
2024-10-14 14:06:14
320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人