死锁: 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有"两个以上对象的锁"时,就可能会发生"死锁"的问题。 思路: 首先要有两个对象口红 Lipstick 类 和镜子 Mirror 类 然后需要 ...
分类:
编程语言 时间:
2020-02-04 20:27:16
阅读次数:
77
检测端口 当端口被其他服务占用时,如果我们还启动这个端口,则会报错,所以很有必要在使用这个端口时,先来检测一下这个端口有没有被其他服务使用。 端口检测需要用到socket模块来校验端口是否被占用 什么是socket? 网络上的两个程序通信,底层都是使用socket来实现的。socket的本质是编程接 ...
分类:
移动开发 时间:
2020-02-03 12:01:15
阅读次数:
97
一、mybatis环境搭建 1.创建maven工程配置环境 打开IDEA ,File New Project,右边选择Maven,左边不要勾选任何东西,点击next,输入项目名称即可。 在pom.xml文件中添加如下内容:packaging是打包方式,log4j是为了输出日志,junit是为了单元测 ...
分类:
其他好文 时间:
2020-02-03 11:49:27
阅读次数:
61
函数的定义、参数、返回值和作用域 函数的定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 函数的参数 实参和形参 形参: 只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后... ...
分类:
其他好文 时间:
2020-02-03 10:10:34
阅读次数:
66
成员变量和局部变量的区别: 1,成员变量定义在类中,整个类中都可以访问; 局部变量定义在函数、语句、局部代码块中,只在所属的区域有效; 2,成员变量存在于堆内存的对象中; 局部变量存在于栈内存的方法中; 3,成员变量随着对象的创建而存在,随着对象的消失而消失; 局部变量随着所属区域的执行而存在,执行 ...
分类:
编程语言 时间:
2020-02-02 15:57:39
阅读次数:
91
前言 Java 相比 C/C++ 最显著的特点便是引入了自动垃圾回收 (下文统一用 GC 指代自动垃圾回收),它解决了 C/C++ 最令人头疼的内存管理问题,让程序员专注于程序本身,不用关心内存回收这些恼人的问题,这也是 Java 能大行其道的重要原因之一,GC 真正让程序员的生产力得到了释放,但是 ...
分类:
编程语言 时间:
2020-02-02 12:13:14
阅读次数:
83
[TOC] 引言 一个哈希表多大合适? 数据量为$n?$,如果哈希表无限大( =$n?$),那么时间复杂度是$O(1)?$的,不过很显然,虽然节省了时间,但是浪费了空间. 实际上在我们不知道数据量的情况下,我们无法确定哈希表的大小,这时我们有个很美丽的数据结构 动态表 动态表的工作原理 + 建立一个 ...
分类:
编程语言 时间:
2020-02-02 11:48:54
阅读次数:
81
在for循环中每次调用ss.clear()是希望在每次使用完ss之后清理strStream占用的资源,但stringstream的clear方法并没有真正地释放ss占用的空间,这样ss所占用的空间一直在增长。当size较大时,ss消耗的内存迅速增长,可能出现严重问题。 正确方法如下: ...
分类:
编程语言 时间:
2020-02-02 10:22:42
阅读次数:
72
工作的时候遇到静态字段书写,优先考虑下面几个方面(意识): 1. 如果是多次使用,要注意对静态字段的重新初始化,防止之前的状态对新的过程的影响或保存之前状态用于之后过程; 2. 注意静态字段对内存的影响(静态字段所保存的数据会一直驻留在内存中,存在于整个程序的生命周期,如果不显示的释放 -- 设置为 ...
分布式锁一般有三种实现方式: 1、数据库锁 最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了 要锁住某个方法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录 2、基于Redis的分布式锁 基于缓存来实现、可以集群部署 使用jedis.setnx()和jedi ...
分类:
其他好文 时间:
2020-01-31 19:06:56
阅读次数:
71