- 博客(23)
- 收藏
- 关注
原创 MySql—索引
1.索引概述索引是一种高效获取数据的数据结构。优势 提高数据检索的效率,降低数据库的IO成本 通过索引列对数据进行排序,降低数据排序的成本 缺点索引会占据磁盘空间 会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。2.索引的底层结构选择MySql索引的底层结构是B+树。2.1哈希Hash 又称散列,是一种广义的算法,即一种思想。比如对一系列数字 对10取模 即得到其存储的索引。哈希碰撞:对不同的关键字可能得到同一散列地址.
2021-08-07 18:02:28
188
原创 内存泄漏的八大情况
内存泄漏:对象已经不被程序使用 但是无法被GC回收。内存泄漏会导致内存溢出。1.静态集合类static HashMap hashMap = new HashMap();这类对象的生命周期与JVM周期一致,不会被回收 导致他们包含的元素也一直不会被回收。2.单例模式与静态集合类原因相似 由于单例模式中对象为静态 ,当他持有外部对象的引用时,外部对象也无法被回收。3.内部类持有外部类4.各种数据库连接 IO 文件流等不关闭close5.变量的作用域不合理msg只在rece..
2021-07-31 16:00:23
597
原创 Jvm-9—垃圾回收及垃圾回收器
1.System.gc() System.gc会显示地触发Full GC,同时对老年代和新生代进行回收。但是System.gc()无法保证对垃圾收集器的调用。 程序执行时并非任何时刻都能停下来开始GC,只有特定的位置才能停顿下来进行GC.能停止的位置成为安全点。 2.几种引用关系——强、软、弱、虚,引用强度逐渐减弱 强引用:最常见的,只要引用关系没有断开,永远不会被回收。 软引用:内存不足即回收。高速缓...
2021-07-20 16:21:20
234
原创 Jvm-8—垃圾回收概述及相关算法
8.1 概述 什么是垃圾? 指运行过程中没有指针指向的对象。 垃圾回收的主要范围是堆和方法区,最主要的是堆,有的Jvm并不涉及方法区的垃圾回收。分为标记(标识哪些是垃圾)和清除阶段。 8.2 垃圾标记阶段的算法——引用计数算法 对每个对象保存一个整型的引用计算器属性,用于记录对象被引用的次数情况。当有对象引用A时,A的引用计数器加1;当引用失效时,引用计数器减1.当引用计数器的值为0时 即表示对象A不可...
2021-07-15 21:27:40
279
原创 Java基础—枚举、注解、泛型、反射
一 、注解(Annotation) 注解就是代码里的特殊标记,可以在编译、类加载、运行时读取,并执行相应的处理。注解可以像修饰符一样使用,用于修饰包、类、构造器、方法、成员变量、参数等。一定程度上:框架 = 注解 + 反射+设计模式1.1 jdk内置的三个注解@Override 重写父类方法@Deprecated 标注已经过时的方法@SuppressWarnings 抑制编译器警告 @SuppressWarnings("unuserd")1.2 自定义注解...
2021-07-14 11:27:06
134
原创 Jvm-6—执行引擎
虚拟机的执行引擎由软件实现,因此可以不受物理条件的制约 执行哪些不被硬件支持的指令集格式。执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令。解释器:对字节码采用逐行解释的方式,将字节码指令翻译为本地机器指令的指令。JIT(后端运行编译器): 寻找字节码文件中的热点代码 编译为本地机器指令缓存到CodeCache中。...
2021-07-11 16:56:25
101
原创 Java基础-集合
分为两大类 Collection 和 Map.一、List1.ArrayList 底层是数组,查询快 增删慢 线程不安全2.LinkedList 底层是链表 查询慢 增删快线程不安全3. Vector 底层是数组 但是加了锁 线程安全1.1 ArrayList使用Object[] elementData数组来真正的存储数据,当使用无参构造器时,初始化大小为0.每次扩容时 扩为之前的1.5倍。public class ArrayList<E> exte...
2021-07-11 15:18:10
184
原创 Jvm-7—String
1.幸存者偏差2.数据预处理part A途径:(1)填写缺失值(2)光滑噪声数据(3)删除离群点(4)解决属性不一致具体:(1)处理缺失值 ignore;数据补齐;不处理 (2)离群点 (outlier):是一个数据对象,它显著不同于其他数据对象。如信用卡欺诈 离群点类型:全局离群点给定数据集中,如果它显著偏离数据集中的其余对象,则成为全局离群点。情景离群点在给定数据集中,如果关于对象的特定情境,它显著...
2021-07-10 18:19:14
104
原创 Jvm-4—方法区
Person p = new Person();方法区可以看作是一个独立于堆的内存空间,非堆。方法区和堆一样,是线程共享的,方法区的大小决定了可以存放多少类。如果类加载过多,同样会内存溢出。jdk1.7以前 成为永久代;1.8后,成为元空间。有本质上的区别,永久代使用的虚拟机内存,而元空间(即方法区)使用的是本地内存。4.1 方法区大小设置-XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=100m默认...
2021-06-28 13:44:39
124
原创 Jvm-5—对象
5.1 对象的实例化 1.创建对象的方式 (1)new 包括直接调用new方法;单例模式;工厂模式 (2)Class的newInstance() 不建议使用 使用反射 只能调用无参的构造方法 (3)Constructor的newInstance方法 可以调用有参、无参的构造方法 (4)使用clone 实现cloneable接口,重写clone方法 (5)使用反序列化 ...
2021-06-27 12:52:58
112
原创 JVM-2——PC寄存器、虚拟机栈
1.PC寄存器PC寄存器用来存储下一条指令的地址,(存储当前线程正在执行的Java方法的JVM指令地址)由执行引擎读取执行。是一块很小的内存空间。作用:因为CPU需要不停的切换各个线程,等切换回来后需要知道从哪开始继续执行。 2.虚拟机栈栈解决的是程序的运行问题,堆解决的是数据存储问题。 2.1栈可能存在的异常 如果采用固定大小的虚拟机栈,当线程请求分配的栈容量超过Java虚拟机栈允许的最大容量时,...
2021-06-25 11:05:52
217
原创 JVM-1一类加载子系统
学习素材:尚硅谷宋红康老师视频+周志明老师Jvm书籍 一、Jvm基础 1.简述Jvm是二进制字节码的运行环境,负责装载字节码到其内部,解释、编译为对应的机器指令执行。java虚拟机具有语言无关性,并非与Java"终身绑定",只关心字节码文件是否符合Jvm规范。 2. java代码执行流程 java文件===》前端编译器(词法分析、语法分析、语义分析、字节码生成器)===》生成字节码class文件===》类加载器(加载、链接...
2021-06-23 23:02:21
122
原创 数据挖掘初学Day03
1.幸存者偏差2.数据预处理part A途径:(1)填写缺失值(2)光滑噪声数据(3)删除离群点(4)解决属性不一致具体:(1)处理缺失值 ignore;数据补齐;不处理 (2)离群点 (outlier):是一个数据对象,它显著不同于其他数据对象。如信用卡欺诈 离群点类型:全局离群点给定数据集中,如...
2021-06-23 21:25:53
142
原创 吴恩达机器学习视频总结Day04之正则化
1.过拟合问题解释:图一:欠拟合,如果线性回归为一条直线,即随着Size增大,price会直线上涨,很不符合。因为如图,当size达到一定程度时,price增长很慢。图二:刚刚好图三:过拟合,一条蜿蜒的曲线,严格经过每一个样本。但当我们有太多的特征加入到预测模型时,可能会无法泛化新的样本。用专门的软件识别欠拟合和过拟合问题:解决过拟合:(1)选择适量的特征---》模型选...
2019-01-15 15:31:07
201
原创 吴恩达机器学习视频总结Day03之Logistic回归
1.Logistic(逻辑)线性回归 是一种分类算法,常用于解决二分类问题,即结果为 是/否 或 正/负等。解释:Logistic线性回归是将最终的输出值定义在【0,1】之间。 一般线性回归的预测函数为 Logistic线性回归为g(θ^t *X)g(z)=1/(1+e^-z)sigmoid函数 或者 logistic函数 ,一样的意思...
2019-01-14 15:54:05
291
原创 吴恩达机器学习视频总结Day02之多变量线性回归
1.多变量线性回归h(x)=θ0x0+θ1x1+θ2x2+...+θnxnh(x)=θt(t为矩阵的转正)*x多元梯度下降2.特征缩放 目的:提高梯度下降的收敛速度特征缩放的标准:一般将特征近似地缩放到-1到1,不用严格为-1和1,但是太大或太小时就需要处理。(1)除以最大值左图是原始情况下,梯度下降的收敛;右图将变量除以最大值后,梯度下降的收敛。(...
2019-01-13 20:51:53
226
原创 吴恩达机器学习视频总结Day01
监督学习:分析训练数据,并产生一个推断的功能,其可以用于映射出新的实例。对应每个数据,事先给出了“正确的答案或标签”。当我们输入数据时,该算法会给显示一个相应的结果。如回归问题,根据之前的数据预测一个准确的输出值,根据房价走势预测房价;分类问题,预测离散的输出值,输入肿瘤大小、病人年龄等预测肿瘤是良性还是恶性。m表示训练集样本数;x表示输入量,也称特征变量;y表示输出变量或目标变量监督...
2019-01-11 17:13:07
296
原创 数据挖掘初学Day02
1.将数据集分为 测试集和训练集。训练集用来产生模型,测试集用来检验模型。2.混淆矩阵 Confusion Matrix一共四种情况。红色是预测对的,紫色是预测错误的。3.ROC曲线阈值太大或者太小都不好,比如常见的阈值就是0.5,大于0.5的认为是正样本,小于0.5的认为是负样本。如果增大这个阈值,预测错误(针对正样本而言,即指预测是正样本但是预测错误,下同)的概率...
2019-01-02 16:47:45
294
原创 数据挖掘初学Day01学习资源汇总
网站视频链接https://www.bilibili.com/video/av23933161/?p=5推荐书籍推荐订阅的杂志期刊多关注“大牛”动态,防止闭门造车推荐的学习工具
2019-01-02 15:42:29
192
原创 C++基础之探讨多态
先看一段代码#include <iostream>using namespace std;class A{public: A() { cout << 1; dosomething(); } virtual void dosomething() { cout << "I am A"; }};class B :public A{public: B(int x)...
2018-05-18 22:00:31
124
原创 C++基础之内存四驱
将整个数据区分为四部分:栈区、堆区、常量区、全局及静态存储区1.栈区:存储函数参数 以及局部变量,数据空间由编译器负责分配和回收。栈默认只有几M的空间,且生长方式向下,向着内存地址减小的方向消耗空间2.堆区:存储动态分配的内存块,由程序员进行分配和回收,如果程序始终没有主动释放动态分配的内存,在程序运行结束时,操作系统会回收这部分空间。堆有几G的空间大小,生长方式向上,向着内存地址增大的方向消耗存...
2018-05-18 10:27:36
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅