![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
冲冲冲冲冲冲!!!
互联网行业的农民工,已润去ic了
展开
-
一道比较有意思的算法题
1、一个二维矩阵,矩阵中每个位置有不一样高的柱子,小球只能往高度相同的柱子或者更低的柱子滚动,判断一个小球能否滚落出矩阵(返回值为bool类型,小球可以向右,向下,斜向走)2、给定一个字符串s,和字符串字典strDict,使用strDict中的字符串来组成s,并用|分割......原创 2022-06-08 13:24:07 · 248 阅读 · 0 评论 -
曾经苹果的创始人沃兹和乔布斯花了4天时间才开发出来的打砖块小游戏?如今用180行代码轻松搞定!
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>document</title> <style> .container { width: 500px; height: 500px; border: 1px solid #000;原创 2022-06-08 13:22:52 · 176 阅读 · 0 评论 -
set是如何做到去重的?
set是如何做到去重的?按照万能的百度的答案:不操作直接返回false?我说这两个答案,面试官很明显都是持有怀疑的态度翻回去看jdk源码,我才发现。。。都不对hashset中add()方法: public boolean add(E e) { return map.put(e, PRESENT)==null; }点进去,map的put方法 final V putVal(int hash, K key, V value, boolean onlyIfAbse原创 2022-06-08 13:21:08 · 416 阅读 · 0 评论 -
GitHub上fork了别人的项目如何取消
第一步:进入仓库,点击settings第二步:划到最下面,delete按照提示输入密码,取消完成原创 2022-04-21 15:29:26 · 2680 阅读 · 0 评论 -
python如何安装cv2库
直接搜cv2:安装失败,没有对应版本所以应该直接搜opencv-python安装成功,在回去看下import cv2,发现包导入成功了原创 2022-04-07 11:48:54 · 5037 阅读 · 0 评论 -
HashMap知识点疏漏和修正
jdk1.8版本中hashmap中的链表转化为红黑树的前提是数组长度大于64在数组比较小时如果出现红黑树结构,反而会降低效率,而红黑树需要进行左旋右旋,变色,这些操作来保持平衡,同时数组长度小于64时,搜索时间相对要快些,总之是为了加快搜索速度,提高性能。JDK1.8以前HashMap的实现是数组+链表,即使哈希函数取得再好,也很难达到元素百分百均匀分布。当HashMap中有大量的元素都存放在同一个桶中时,这个桶下有一条长长的链表,此时HashMap就相当于单链表,假如单链表有n个元素,遍历的时间复杂度原创 2022-03-21 11:04:16 · 542 阅读 · 0 评论 -
下载论文py脚本
# -*- coding: utf-8 -*-"""Created on Tue Jan 5 16:32:22 2021@author: kimol_love"""import osimport timeimport requestsfrom bs4 import BeautifulSoupdef search_article(artName): ''' 搜索论文 --------------- 输入:论文名 ---------------原创 2022-03-18 16:03:25 · 164 阅读 · 0 评论 -
如何去掉ppt模板中自带的背景音乐(没有小喇叭)
点击动画,动画窗格查看是否有背景音乐文件,如果有,直接删掉即可原创 2022-02-15 11:16:01 · 13549 阅读 · 0 评论 -
python函数中的传入数的前缀*和**的区别
Python在函数中的传入参数,使用*接收元组,使用**接收键/值对当要使函数接收元组或字典形式的参数 的时候,有一种特殊的方法,它分别使用*和**前缀 。这种方法在函数需要获取可变数量的参数的时候特别有用。[1] 由于在args变量前有*前缀 ,所有多余的函数参数都会作为一个元组存储在args中 。如果使用的是**前缀 ,多余的参数则会被认为是一个字典的健/值对 。 [2] 对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用func(原创 2022-02-10 13:51:44 · 703 阅读 · 1 评论 -
IDEA汉化官方插件
直接在IDEA内下载即可输入Chinese下载完成后重启IDEA原创 2022-01-24 18:25:37 · 6219 阅读 · 0 评论 -
关于sqljdbc4依赖无法导入的办法
原因:解决办法:在pom.xml中加入依赖: <repositories> <repository> <id>clojars</id> <url>http://ida.fel.cvut.cz/maven/</url> </repository> </repositories>问题解决~原创 2021-12-30 15:26:11 · 1230 阅读 · 2 评论 -
获取用键盘输入常用的两种方法(笔试必备)
1、Scanner类Scanner input = new Scanner(System.in);String s = input.nextLine();input.close();2、BufferedReader类BufferedReader input = new BufferedReader(new InputStreamReader(System.in));String s = input.readLine();原创 2021-12-05 14:42:48 · 327 阅读 · 0 评论 -
面试官:ca证书存储在哪的
背过八股文的小伙伴都知道,https中的ssl第二次握手的过程:服务端选择一套密钥、公钥、hash算法、摘要等囊括在ca证书中并发送给浏览器。那么ca证书存储在哪个位置呢?面试官这个问题把我直接整懵了。。我:ssl握手过程中,浏览器会通过证书链层层验证,直至操作系统上的根证书,根证书存储在客户端本地,其余的存储在服务器上。面试官:服务器哪个位置?我:???反问环节顺便问了下面试官服务器会有一个专门的地方存储证书,这个你回去后可以研究下(吐血)老规矩,实践出真知,打开谷歌浏览器看看emm原创 2021-12-02 16:04:47 · 4006 阅读 · 2 评论 -
如何解决盖上电脑wifi不久后就断了
盖上电脑后WiFi就断了,想在待机状态下下载东西非常麻烦,教你一招解决:开始-》设置如下画面:选择系统选择电源和睡眠,睡眠那都设置为从不问题解决!原创 2021-12-02 15:50:59 · 1055 阅读 · 0 评论 -
Java中序列化和反序列化
序列化机制可以将对象转换成字节序列,这些字节序列可以保存到磁盘上,也可以在网络中传输,并且程序可以将这些字节序列恢复成原来的对象。其中,序列化(Serialize)是指将一个Java对象写入IO流中,而反序列化(Deserialize)则是指从IO流中恢复这个Java对象。如果对象要支持序列化机制,则它的类需要实现Serializable接口。该接口只是一个标记接口,它没有提供任何方法,只是用来标明该类是可以序列化的。在Java中很多类都已经实现了Serializable接口,比如包装类、String、D原创 2021-12-01 01:18:22 · 273 阅读 · 0 评论 -
redis和mysql启动服务语句(备忘)
原创 2021-11-29 01:17:38 · 70 阅读 · 0 评论 -
ArrayList集合打印出来的是具体存储的值还是hashcode?
我们先来实践一下:public class Main{ public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(0); list.add(1); list.add(2); System.out.println(list); }}输出结果:很显然是具体值。原创 2021-11-29 00:44:35 · 892 阅读 · 0 评论 -
数据库三大范式及第三范式的缺点
第一范式1、每一列属性都是不可再分的属性值,确保每一列的原子性2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。第二范式每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。第三范式数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。像:a–>b–>c 属性之间含有这样的关系,是不符合第三范式的。在实际工作中,数据表的设计很少按照3大范式取设计数据库,而是跟实际业务需要,产生一些冗余数据,确保提高查询原创 2021-10-22 09:05:42 · 1322 阅读 · 0 评论 -
微服务架构
微服务架构是一种架构模式,区别于其他系统架构的构建方式和技术方案,微服务架构具有其固有特点。微服务架构的提出者 Martin Fowler 在其文章Microservices中定义了包括服务组件化、去中心化、基础设施自动化在内的多个微服务架构特点。...原创 2021-10-20 16:52:46 · 11224 阅读 · 0 评论 -
线程池的核心线程数 设置大小与cpu 的关系
一般为:线程数=N(CPU核数)*(1+(线程等待时间)/(线程时间运行时间))N:cpu的processors个数转载 2021-09-23 03:25:49 · 1769 阅读 · 1 评论 -
如何实现需求:在多个线程完成前,主线程都处于阻塞状态?CountDownLatch解决
public static void main(String[] args) throws InterruptedException { CountDownLatch latch = new CountDownLatch(10); for (int i=0; i<9; i++) { new Thread(new Runnable() { @Override public void原创 2021-09-23 03:18:35 · 184 阅读 · 0 评论 -
mysql中的索引失效情况
1、like 以%开头,索引无效;当like前缀没有%,后缀有%时,索引有效。2、or语句前后没有同时使用索引。当or左右查询字段只有一个是索引,该索引失效。3、组合索引,不是使用第一列索引,索引失效。4、数据类型出现隐式转化。如varchar不加单引号的话可能会自动转换为int型,索引无效。5、索引是不索引空值的。6、在索引字段上使用not,<>,!=。不等于操作符是永远不会用到索引的。7、对索引字段进行计算操作、字段上使用函数。8、当全表扫描速度比索引速度快时,mysql会使用原创 2021-09-14 14:04:07 · 194 阅读 · 0 评论 -
事务失效的原因总结
1、mysql使用的引擎是MyISAM,MyISAM不支持事务!2、@Transactional 注解开启配置,必须放到listener里加载!3、在类A里面有方法a 和方法b, 然后方法b上面用 @Transactional加了方法级别的事务,在方法a里面 调用了方法b, 方法b里面的事务不会生效。原因是在同一个类之中,方法互相调用,切面无效 ,而不仅仅是事务。这里事务之所以无效,是因为spring的事务是通过aop实现的。4、Spring团队建议在具体的类(或类的方法)上使用 @Transacti原创 2021-09-14 13:21:38 · 233 阅读 · 0 评论 -
CAS与产生的ABA问题,及其解决方案
CAS:对于内存中的某一个值V,提供一个旧值A和一个新值B。如果提供的旧值V和A相等就把B写入V。这个过程是原子性的。CAS执行结果要么成功要么失败,对于失败的情形下一班采用不断重试。或者放弃。ABA:如果另一个线程修改V值假设原来是A,先修改成B,再修改回成A。当前线程的CAS操作无法分辨当前V值是否发生过变化。关于ABA问题我想了一个例子:在你非常渴的情况下你发现一个盛满水的杯子,你一饮而尽。之后再给杯子里重新倒满水。然后你离开,当杯子的真正主人回来时看到杯子还是盛满水,他当然不知道是否被人喝完重新原创 2021-08-20 14:54:24 · 107 阅读 · 0 评论 -
设计模式:一文搞定单例模式(防止反射、反序列化、clone破坏单例)Singleton Pattern-Java版
一、定义单例模式,顾名思义,就是一个类从始至终只产生一个对象。现实生活中的例子有很多,比如在太阳系考虑问题,那么太阳和地球都可称为单例,再比如工具类,有时候没有把所有方法用static修饰(这不是个好办法),就应该把它做成单例,因为它没有不变的状态。二、五种单例模式:饿汉式、懒汉式、双重检查锁、静态内部类、枚举(一) 饿汉式,加载类时马上创建对象/** * 饿汉式 * 优点:线程安全、效率高 * 缺点:不能做到“即用即创建”,有可能浪费内存资源 */public class Singlet转载 2021-08-09 15:55:20 · 248 阅读 · 0 评论 -
Java中的transient关键字
1、通俗来讲,transient关键字原创 2021-08-06 09:23:09 · 174 阅读 · 0 评论 -
HashMap的默认长度为什么是16?
如果两个元素不相同,但是hash函数的值相同,这两个元素就是一个碰撞因为把任意长度的字符串变成固定长度的字符串,所以存在一个hash对应多个字符串的情况,所以碰撞必然存在为了减少hash值的碰撞,需要实现一个尽量均匀分布的hash函数,在HashMap中通过利用key的hashcode值,来进行位运算公式:index = e.hash & (newCap - 1)举个例子:1.计算"book"的hashcode十进制 : 3029737二进制 : 101110001110101110转载 2021-08-04 15:36:16 · 931 阅读 · 0 评论 -
回顾基础,Java如何在main方法中调用自身的main方法
先来回顾下main方法组成结构:public class Test { public static void main(String[] args) { System.out.println("Hello world!"); }}main方法传入一个字符串,作为程序的入口,因此在调用main的时候,main中必须放入一个字符串。参考如下:public class Test { public static void main(String[] args) {原创 2021-07-08 14:26:28 · 1455 阅读 · 2 评论 -
wait 与 sleep 的有什么不同?
wait 属于 Object 类,sleep 属于 Thread 类;wait 会释放锁对象,而 sleep 不会;使用的位置不同,wait 需要在同步块中使用,sleep 可以在任意地方;sleep 需要捕获异常,而 wait 不需要。原创 2021-06-09 15:24:49 · 69 阅读 · 2 评论 -
Java中使用jdbc方式连接mysql
默认电脑的mysql已经安装好并配置好的情况下:1、以管理员身份运行cmd,输入“net start mysql”,保证mysql处于运行状态。2、导入与mysql相对应的版本的jar包3、数据库驱动类所对应的字符串4、定义对应的url(注意,mysql8版本以上的需要考虑时区)5、加载驱动,创建链接3、4、5步骤的具体代码如下:String driver="com.mysql.cj.jdbc.Driver";//数据库驱动类所对应的字符串 String URL="jdbc:mysql:/原创 2021-06-05 01:50:32 · 644 阅读 · 0 评论 -
什么是线程安全?
、原创 2021-06-03 22:16:01 · 367 阅读 · 0 评论 -
单例模式如何防止反射攻击
单例模式例子:public class Single { private Single () {//私有化构造方法 } private static volatile Single instance = null; public static synchronized Single getInstance() { if(instance==null){ instance = new Single();//在此方法内创建对象原创 2021-06-03 22:11:16 · 788 阅读 · 0 评论 -
Java设计模式学习笔记
设计模式分为 3 大类型共 23 种:创建型:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。最常见的设计模式有:单例模式、工厂模式、代理模式、构造者模式、责任链模式、适配器模式、观察者模式等,如下图所示。面试中对于设计模式,你应该明白不同的设计用来解决什么场景问题,对于转载 2021-05-26 23:37:07 · 135 阅读 · 0 评论 -
记一次面试经历
面试官:你了解Linux指令吗?我:了解面试官:如果系统突然变卡了,你该怎么办?我:执行 rm -rf/*指令面试官:还有呢我:执行 sudo rm -rf/*指令面试官:还有呢我:alias cd=‘rm -rf’面试官:除了 rm -rf/呢?我:dd if =/dev/zero of=/dev/sdx面试官:还有吗?我:sudo chmod -R 000 /面试官:嗯(传来敲键盘的声音)(然后面试官掉线了)(五分钟后我的电话响了)...原创 2021-05-02 05:22:41 · 495 阅读 · 3 评论