- 博客(28)
- 收藏
- 关注
原创 JAVA hashmap hashtable
Hashmap,hashtable:HashMap:数组+链表+红黑树,线程不安全。HashTable: 加了锁的hashmap。concurrentHashMap:对单个或多个链表加锁。
2020-03-22 14:27:01
120
原创 JAVA static关键字
Static静态变量跟局部变量相比:静态变量是类变量,局部变量是实例变量,类变量对所有该类的对象共享,静态变量存储在全局数据区。静态变量与全局变量相比:静态变量只在被声明的代码块可见。静态成员函数:与静态数据成员类似,没有this指针,无法访问属于类对象的非静态成员和函数,非静态成员函数可以任意地访问静态成员函数和静态数据成员。...
2020-03-22 14:25:29
101
原创 JAVA继承与多态
继承:继承就是子类继承父类的特征和行为。提高代码的复用性和可维护性。构造器(子类通过super关键字调用父类的构造函数)public class Penguin extends Animal { public Penguin(String myName, int myid) { super(myName, myid); }}...
2020-03-22 14:24:59
100
原创 JAVA抽象类与接口
抽象类(abstract)总结规定1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。4. 构造方法,类方法(用 static 修饰的方法)不能声明...
2020-03-22 14:24:10
134
原创 多任务之多进程与多线程
多进程,多线程进程:是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位。线程:一个进程内可以有多个线程,CPU调度和分派的基本单位,基本上不拥有系统资源。线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。对于操作系统来说,一个任务就是一个进程(Process)。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内...
2020-03-20 00:03:26
175
原创 线程安全
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。ThreadLocal:它是一个特别好的封闭方法,其实ThreadLocal内部维护了一个map,map的key是每个线程的名称,而map的value就是我们要封闭的对象。ThreadLocal提供了get、set、rem...
2020-03-20 00:02:09
85
1
原创 死锁发生的四个必要条件
死锁的发生必须具备以下四个必要条件:1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。3)不剥夺条件:指进程已获...
2020-03-20 00:01:17
336
原创 JAVA锁 synchronized ReentrantLock 公平锁 非公平锁
锁synchronized(锁) ReentrantLock(可重入锁)Synchronized :编译器去保证锁的加锁和释放。ReentrantLock:程序员手动进行加锁和释放。便灵性:synchronized 使用更便利。性能:reentrantlocak 更好,尝试在用户态解决加锁问题,避免进入内核的线程阻塞。相同:都是同步锁,但是,Synchro...
2020-03-20 00:00:23
424
原创 数据结构基础
线性表(数组):用地址连续的存储单元依次存储数据元素访问:O(1)插入删除:O(n)查找:O(n)单链表:访问:O(n)插入删除:根据index:O(n);根据Node:O(1)查找:O(n)循环链表:从任意一个元素开始,都可以访问整个链表。双向链表:优点:从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造...
2020-03-19 16:33:58
78
原创 二维数据排序(重写sort函数)
二维数据排序struct point{int x;int y;}C++::Bool cmp(point i,point j){return i.x<j.x;}sort(a,a+n,cmp);JAVA::Comparator<point> cmp=new Comparator<point>(){public int ...
2020-03-19 16:33:22
207
原创 Redis常用命令
启动redis服务:redis-server根据配置文件启动redis服务:(注意:$redis 为redis的安装位置)redis-server $redis/redis.conf启动redis客户端:redis-cli远程连接redis服务:redis-cli -h host -p port -a password插入数据set key valu...
2020-03-19 16:03:22
63
原创 数据库事务隔离级别
1.数据库脏数据:(数据库并发操作导致)脏读:A修改数据,B读,A撤销,B读脏数据。(select 没有规矩)不可重复读:A读一个数据,B修改,A再读读错。(update 没有规矩)幻读:A读数据,B插入,A再读读的数据变多。(insert delete没有规矩)修改覆盖:A修改一个数据,B修改,A的修改被覆盖。2.数据库事务隔离级别:读未提交:可能产生脏读,不可重复读,幻...
2020-03-18 23:31:32
72
原创 B树与B+树的比较
B树根节点至少包含两个孩子 树中每个节点最多含有m个孩子(m >= 2) 除根节点和叶节点外,其他每个节点至少有cell(m/2)个孩子 所有叶子节点都位于同一层插入:插入的时候,我们需要记住一个规则:判断当前结点key的个数是否小于等于m-1,如果满足,直接插入即可,如果不满足,按节点的中间的key将这个节点分为左右两部分,中间的节点放到父节点中即可。删除:...
2020-03-15 20:57:43
823
原创 mongodb 安全认证
一、无安全认证启动mongod,登录mongo创建超级用户1.启动mongodb服务(无安全认证)mongod -f mongo.conf2.启动mongo,创建超级用户db.createUser( { user: "admin", pwd: "admin123", roles: [ { role: "root",db:"admin" }] } )二、开启安全认证,重启mo...
2019-11-12 21:33:32
197
原创 求导公式总结
原函数导数y=Cy=Cy=Cy′=0y'=0y′=0y=axy=a^xy=axy′=axlnay'=a^x lnay′=axlnay=exy=e^xy=exy′=exy'=e^xy′=exy=xny=x^ny=xny′=nxn−1y'=nx^{n-1}y′=nxn−1y=lo...
2019-09-10 03:07:24
593
原创 【机器学习】损失函数比较
1.常用损失函数公式平方差损失L(y,f(x;θ))=(y−f(x;θ))2L(y,f(x;\theta))=(y-f(x; \theta))^2L(y,f(x;θ))=(y−f(x;θ))2绝对值损失L(y,f(x;θ))=∣∣y−f(x;θ)∣∣L(y,f(x;\theta))=||y-f(x; \theta)||L(y,f(x;θ))=∣∣y−f(x;θ)∣∣指数损失L(y,f(...
2019-09-02 20:18:22
219
原创 【排序】选择排序
选择排序:第 i 趟排序过程是在剩余的待排记录中选一个最小(大)的,放在第 i 个位置。时间复杂度O(n2)O(n^2)O(n2),耗费在比较记录上,比较次数始终为 n(n−1)/2n(n-1)/2n(n−1)/2,移动次数最小为 0,最大 3(n−1)3(n-1)3(n−1),即 n−1n-1n−1 次交换。注意:简单选择排序是不稳定的。反例: (101, 102, 9) → (9, 10...
2019-08-16 15:55:04
91
原创 【排序】快速排序
快速排序:一趟排序把记录分割成独立的两部分,一部分关键字均比另一部分小,然后再分别对两部分快排。分析:平均情况下,时间复杂度 O(nlogn)O(nlogn)O(nlogn)。 记录本来有序时为最坏情况,时间复杂度为 O(n2)O(n^2)O(n2)。空间复杂度(考虑递归调用的最大深度)在平均情况下为 O(logn)O(logn)O(logn),在最坏情况下为O(n)O(n)O(n)。快...
2019-08-16 15:41:18
68
原创 【排序】希尔排序
希尔排序:先将待排序列分割成若干个子序列,分别进行直接插入排序,基本有序后再对整个序列进行直接插入排序。(不稳定)时间复杂度O(n3/2)O(n^{3/2})O(n3/2)#include<iostream>using namespace std;void ShellSort ( int a[], int n ){ int dk = n/2; while ( dk>...
2019-08-16 15:30:50
98
原创 【排序】冒泡排序
冒泡排序:“依次比较相邻元素,‘逆序’则交换,重复n-1 次” (稳定)复杂度: O(n2)O(n^2)O(n2)#include<iostream>using namespace std;void BubbleSort ( int a[], int n ){ for ( int i=1; i<n; i++ ){ for ( int j=0; j<n-i; ...
2019-08-16 15:23:29
64
原创 【排序】插入排序
插入排序:将待排序记录插入已排好的记录中,不断扩大有序序列。(稳定的排序算法)折半插入排序:寻找插入位置时采用折半查找的方法。时间复杂度:O(n2)O(n^2)O(n2)#include<iostream>using namespace std;void BinInsertSort ( int a[], int n ){ for ( int i=1; i<n; i+...
2019-08-16 14:23:38
59
原创 【排序】归并排序
归并排序:两个或多个有序表合并成一个有序表。时间复杂度 O(nlogn)\ O(nlogn) O(nlogn)空间复杂度 O(n)\ O(n) O(n)//归并排序 void MergeSort (int a[], int low, int high ){ if ( low>=high ) return; else { int...
2019-08-16 14:01:15
65
原创 【机器学习】贝叶斯决策准则
贝叶斯决策准则先验概率p(y)已知,直接根据贝叶斯公式求后验概率,如最小损失准则,最小误判概率准则。先验概率p(y)未知,可以使用聂曼-皮尔逊决策(N-P决策)来计算决策面;最大最小损失规则主要就是使用解决最小损失规则时先验概率未知或难以计算的问题的。先验概率已知最小损失准则:先验概率未知我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我...
2019-08-14 23:39:12
858
原创 【机器学习】卷积神经网络
卷积神经网络所做的工作就是采用卷积、池化等操作从数据中提取特征,进行分类,回归等机器学习任务。1.卷积在原始的输入上进行特征的提取。out=(in-filter+pading)/stride+1图1:full卷积蓝色为原图像,白色为对应卷积所增加的padding,通常全部为0,绿色是卷积后图片。图6的卷积的滑动是从卷积核右下角与图片左上角重叠开始进行卷积,滑动步长为1,卷积核的中心元素对...
2019-08-06 16:46:38
228
原创 ubuntu Install TensorFlow with pip
step1: Check if your Python environment is already configured:python3 --versionpip3 --versionsudo apt updatesudo apt install python3-dev python3-pipstep2: Install the TensorFlow pip package...
2019-04-07 20:25:57
157
原创 windows10环境下python安装sklearn
step1: 将python,pip加入环境变量。step2: win+r,输入cmd,进入命令行 有可能需要更新pippython -m pip install -U pipstep3:安装sklearn依赖的包 python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nosestep4:安...
2018-03-19 23:47:32
5679
1
原创 windows8 安装教程
step1:下载windows8.1镜像 (也可以到官网免费下载windows10,但是目前还在测试阶段,不稳定) landiannews.com/msdn-windowsstep 2:下载 软碟通 ,打开下载的镜像,单击 “启动”-“写入硬盘镜像”,将镜像写入U盘。step 3:开机按“del”键进入BIOS,(不同机器不同)step 4:U盘启动。(可能会报一个错,
2016-07-12 01:07:33
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人