it.sauronsoftware(pom.xml包)没导入解决


包在网盘里
链接:https://pan.baidu.com/s/1tI8rRI8tRcPfD9cNMgSVAw
提取码:wab4
复制这段内容后打开百度网盘手机App,操作更方便哦
mvn install:install-file -Dfile=E:\jave-1.0.2.jar -DgroupId=it.sauronsoftware -DartifactId=jave -Dversion=1.0.2 -Dpackaging=jar
E:\jave-1.0.2.jar是你本地放入包路径
刷新一下即可
如果一个类始终只能创建一个实例,则这个类成为单例类------单例模式
/**
* @author samxie
* @version 1.0
* @date 2022/5/26 11:01
**/
public class SingletonTest {
public static void main(String[] args) {
//如果一个类始终只能创建一个实例,则这个类成为单例类。。。。单例模式
//Spring容器所管理的Bean实例默认是到哪里,可以通过scope来修改其行为方式
//优势:减少系统开销,不用每次都创建新的实例
//方便系统跟踪单个实例的生命周期与实例状态
Singleton instance = Singleton.getInstance();
Singleton instance1 = Singleton.getInstance();
System.out.println(instance == instance1);
}
}
class Singleton {
//使用一个类变量缓存创建的实例
private static Singleton instance;
//构造器
private Singleton() {
}
//提供一个静态方法,用于返回Singleton实例
public static Singleton getInstance() {
if (null == instance) {
instance = new Singleton();
}
return instance;
}
}

单例模式:一个实例对象,指的是一个程序运行期间,某个类最多只可以创建一个对象—单例模式 1、构造方法私有化 2、定义私有、静态本类类型的成员属性 饿汉式:先创建对象 懒汉式:不先创建对象
单例模式:一个实例对象,指的是一个程序运行期间,某个类最多只可以创建一个对象—单例模式
1、构造方法私有化
2、定义私有、静态本类类型的成员属性
饿汉式:先创建对象
懒汉式:不先创建对象(至少是被动的)
3、饿汉式:由于已经创建对象,直接返回成员属性
懒汉式:要先判断成员属性是否为null,是创建对象,之后返回成员属性
import org.junit.Test;
import java.time.temporal.ValueRange;
/**
* @author: samxie
* @create: 2022/5/27
* @Description:
* @FileName: SingletonNewTest
* @History:
* @自定义内容:一个实例对象,指的是一个程序运行期间,
* 某个类最多只可以创建一个对象---单例模式
*/
public class SingletonNewTest {
@Test
public void test() {
//这种就是单例模式饿汉式的(那个人很饿,只要有东西可以就去吃),线程安全 先创建对象
Student student = Student.getInstance();
Student student1 = Student.getInstance();
System.out.println(student1 == student);
//true
}
//懒汉先不创建对象
@Test
public void test1() {
//这种就是单例模式懒汉的普通,线程不安全
Student1 student = Student1.getInstance();
Student1 student1 = Student1.getInstance();
System.out.println("===" + (student1 == student));
//true
}
//懒汉先不创建对象
@Test
public void test2() {
//这种就是单例模式懒汉的升级,线程不安全
LazyDoubleCheckSingleton student = LazyDoubleCheckSingleton.getInstance();
LazyDoubleCheckSingleton student1 = LazyDoubleCheckSingleton.getInstance();
System.out.println("===!!!!" + (student1 == student));
//true
}
}
class Student {
private Student() {
}
//先创建对象
private static Student stu = new Student();
public static Student getInstance() {
return stu;
}
}
class Student1 {
private Student1() {
}
//没有new对象
private static Student1 stu;
public static synchronized Student1 getInstance() {
if (stu == null) {
stu = new Student1();
}
return stu;
}
}
class LazyDoubleCheckSingleton {
private LazyDoubleCheckSingleton() {
}
private volatile static LazyDoubleCheckSingleton a;
//直接使用new就不能实现好的设计,这时候需要使用间接使用new, getInstance也是创建对象一种方法
//getInstance在主函数开始时调用,返回一个实例化对象,此对象是static
public static LazyDoubleCheckSingleton getInstance() {
if (null == a) {
synchronized (LazyDoubleCheckSingleton.class) {
if (null == a) {
a = new LazyDoubleCheckSingleton();
}
}
}
return a;
}
}
JavaScript中的undefined null
underfined是var 变量没有赋值的情况,可用null覆盖
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head>
<meta charset="UTF-8">
<title>Title</title>
<base th:href="${#servletContext.getContextPath+'/'}">
</head>
<body>
<script>
var username;
document.write(username+"<br>");
var username = null;
document.write(username+"<br>");
</script>
</body>
</html>
结果
undefined
null