Skip to content

HunterVillage/NOTE

Repository files navigation

1.mysql 8.0.11 新建数据库修改密码命令(标点符号为英文)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password1';


2.熟悉设计模式之单例实现与理解

普通单例:

public class SSS{

//创建SSS的一个对象
private static SSS instance=new SSS();
//让构造函数为private 这样就不会被实例化
private SSS() {};

//获取唯一可用对象
public static SSS getInstance() {
	return instance;	
}
public void message() {
	System.out.println("Hello world!");
}

}

public class SSSdemo {

public static void main(String[] args) {
//编译时错误:构造函数 SSS() 是不可见的
 //SSS object = new SSS();
	SSS s=SSS.getInstance();
	
	//显示消息
	s.message();		

}

}

①线程安全的懒汉式(因为加了synchronized关键字,即可多线程安全)

public class Singleton {  
    private static Singleton instance;  
    private Singleton (){}  
    public static synchronized Singleton getInstance() {  
    if (instance == null) {  
        instance = new Singleton();  
    }  
    return instance;  
    }  
} 

优点:第一次调用才初始化,避免内存浪费.

缺点:必须加锁才能保证线程安全的单例,但是加锁会影响效率.

lazy-loading:yes.

②饿汉式()

public class Singleton {  
    private static Singleton instance = new Singleton();  
    private Singleton (){}  
    public static Singleton getInstance() {  
    return instance;  
    }  
}  

优点:没有加锁,执行效率高

缺点:类加载时就初始化,浪费内存,容易产生垃圾对象,基于classloder机制避免了多线程同步问题.

③双检锁/双重校验锁(double-checked locking)

public class Singleton {  
    private volatile static Singleton singleton;  
    private Singleton (){}  
    public static Singleton getSingleton() {  
    if (singleton == null) {  
        synchronized (Singleton.class) {  
        if (singleton == null) {  
            singleton = new Singleton();  
        }  
        }  
    }  
    return singleton;  
    }  
}  

总结:lazy-loading:yes ,线程安全,多线程下可保证高性能.

④登记式/静态内部类

public class Singleton {  
    private static class SingletonHolder {  
    private static final Singleton INSTANCE = new Singleton();  
    }  
    private Singleton (){}  
    public static final Singleton getInstance() {  
    return SingletonHolder.INSTANCE;  
    }  
}   

总结:lazy-loading:yes .线程安全,达到和双检索一样的功效,但实现更简单,对静态域使用延迟处理化,

⑤枚举

public enum Singleton {  
    INSTANCE;  
    public void whateverMethod() {  
    }  
}  

总结:lazy-loding:NO,线程安全,它不仅能避免多线程同步问题,而且还自动支持序列化机制,防止反序列化重新创建新的对象,绝对防止多次实例化。不过,由于 JDK1.5 之后才加入 enum 特性,用这种方式写不免让人感觉生疏,在实际工作中,也很少用。 不能通过 reflection attack 来调用私有构造方法


3.今天hexo上传博客到github报错:

block mapping entry; a multiline key may not be an

implicit key at line 4, column 1

解决:tags后面要有一个空格!!!title和date也一样


4.我把git本地仓库的文件删了,想git pull一份,是不行的:

主要命令(整个目录):git checkout .

单个文件:git check 文件名称

其他命令:git status(查看工作区状态)


5.关于hexo d -g(生成及部署)


6.关于设计模式之工厂模式的简述

代码描述:首先建立一个Shape接口(形状),三个不同形状的实现类实现Shape接口,定义一个工厂类,其中定义Shape接口方法getShape()来获取形状类型的对象,public Shape getShape(String shapetype),最后用接口来接收一个工厂类返回的对象,例如Shape s1=sf.getShape("circle");

JDK体现:Calendar等。


7.Readme.md加图片格式

![image] 小括号内加:仓库地址/raw/master/图片目录


8.代理模式与工厂模式理解

①代理模式调用过程(代理类代替真正实现类):定义一个接口和两个实现类,一个真正的类,一个代理类,代理类中引入真正实现类并判断实现类是否为空,如果为空则新建真正实现类。

②工厂模式调用过程:定义一个父接口动作,实现父接口实现具体动作,比如接口画画,具体动作画圆 还是方等等,新建工厂类,新建类型为父接口的判断方法(参入判断到底想画什么),如果传入参数为圆,则return new Circle()圆的实现类,此处用接口来接收return的实现类(理解为多态).


9.对java中return this的理解

public class ThisT {

/*
return this:返回实例化对象
 */
 
boolean real;

public ThisT(){

}

public void setReal(boolean real){
    this.real=real;
}

public ThisT rel(boolean rel){
    this.setReal(rel);

    return this;
}

}

总结:以上实例 如果调用rel(boolean rel)传递参数过来, rel(boolean rel)中的return this相当于给real变量赋值,因为setReal()为void没有返回值与return this 为 返回实例化对象,而此实例化对象则唯一属性为real。


10.git commit提交问题

如果提交文件没有加注释则会报错
类似于:Unable to create 'E:/xxx/.git/index.lock': File exists
解决:rm -f .git/index.lock
提交文件:git commit -m "注释"


10.关于String args[]

public static void main(String args[])中String args[]表示一个字符串参数
应用:本地编译源文件javac xxx.java,运行java xxx. System.out.print(args[0],args[1])
注意:java xxx:xxx为包名.文件名 执行目录为此包的目录下


11.mybatis报ORA-00904 标示符无效(坑死爹了)

一般情况报这个错就是字段写错或者缺少标点符号,我昨天碰到的问题是 我oracle创建表的时候我把字段都建为了小写,导致插入的时候报这种错误。

解决方法:如果oracle数据表字段为小写时,mybatis xml sql中,insert字段是要加双引号。

About

about record of minor problems.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages