2020年 12月 07日 - 线程wait与notify的使用

    线程wait与notify的使用

    1. wait 释放当前锁,让出cpu资源,使当前线程等待.使用场景为先通过synchronized获取锁之后,在该同步代码块中使用wait()方法.
    2. notify与notifyAll 在一个同步代码段中唤醒一个或多个处于等待的线程,在同步代码结束或遇到wait()释放当前锁

      区别:

       notify: 唤醒一个等待的线程,若存在多个则取决于操作系统的多线程管理(会唤醒其中一个)
      	
       notifyAll: 唤醒所有的等待线程,优先级同样取决于操作系统
      
    3. 当线程被唤醒时,wait()方法之后的逻辑继续开始执行

    4. 若未加锁进行wait()notify()/notifyAll()的调用,会抛出IllegalMonitorStateException

    2020年 07月 24日 - mysql查看所有表名与字段名

    mysql查看所有表名与字段名

    @的为变量

    -- 查询数据库中所有表名
    select table_name from information_schema.tables where table_schema='@dbname' and table_type='base table';
    -- 查询指定数据库中指定表的所有字段名column_name
    select column_name from information_schema.columns where table_schema='@dbname' and table_name='@tableName'
    

    2020年 04月 24日 - SpringBoot打包jar与war的运行方式区别

    简述

    主要区别

    jar: 打包时会依赖tomcat,与直接运行main方法一样运行,运行过程:

    SpringApplication.run()
    	-> spring ioc
    		->(嵌入式) Servlet容器
    

    war: 上述的启动方法需要覆盖SpringBootServletInitializerconfigure方法,先调用该方法,最终调用SpringApplicationrun(),运行过程:

    Servlet容器
    	-> SpringBootServletInitializer
    		-> SpringApplication.run()
    			-> spring ioc
    

    注: SpringBootServletInitializer的作用是替代web.xml的配置

    2020年 04月 08日 - 部分JVM参数备忘

    内存溢出时导出堆内存快照

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=~/dump/dump.hprof
    

    堆大小

    -Xms1024M -Xmx2048M 
    

    方法区大小

    典型报错java.lang.OutOfMemoryError: PermGen space

    -XX:PermSize=128M -XX:MaxPermSize=256M 
    

    2020年 02月 03日 - mac上安装不在网上应用店中的谷歌浏览器插件

    安装不在网上应用店中的谷歌浏览器插件

    常见方式

    1. crx扩展文件更改后缀名为zip进行解压,然后通过开发模式下的加载已解压文件进行安装
    2. 开发模式下直接将crx文件拖入扩展插件页面

    其中第二种方式,在我更新到79.0.3945.130版本时,自动禁用掉了我都插件,提示

    该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的。

    解决方案,MacOS下通过添加描述文件允许安装指定扩展插件