- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 Java内存模型、先行发生原则
由于计算机的存储设备和处理器的运算速度有几个数量级的差距,所以计算机系统不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲。但这引入了新问题:缓存一致性为了使得处理器内部的运算单元能尽量被充分利用,处理器可能会对输入代码进行乱序执行优化,类似的java虚拟机的即时编译器中也有类似的指令重排序优化。java内存模型java内存模型可屏蔽掉各种硬件和操作...
2018-08-23 18:26:02
330
原创 单例模式的写法及破坏单例模式的方法
单例模式的五种写法1)懒汉式(线程安全) 2)DCL(双重校验锁) 3)饿汉式:多线程安全 4)登记式/静态内部类(按需加载)public class Singleton { private Singleton(){} /**懒汉式 * 缺点:每次通过属性instance得到Singleton的实例,都会试图加上一个同步锁,而加锁是一个非常耗时的操作,在没有...
2018-08-20 21:53:01
330
原创 类加载器
类加载器的种类类加载器用于实现类的加载动作,每一个类加载器都有一个独立的类名称空间。 绝大部分java程序都会使用一下三种系统提供的类加载器: 1)启动类加载器(Bootstrap ClassLoader) 负责将存放在< JAVA_HOME>\lib目录中的并且被虚拟机识别的类库加载到虚拟机内存中; 2)扩展类加载器(Extension ClassLoader) 负责加...
2018-08-20 15:53:29
168
原创 类变量和类初始化
类的初始化当遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类没有进行初始化,则需要初始化。 这四条指令什么时候生成呢? 1)使用new关键字实例化对象的时候; 2)读取或者设置一个类的静态字段的时候(被final修饰、已在编译期把结果放入常量池的静态字段除外); 3)调用一个类的静态方法的时候使用java.lang.reflec...
2018-08-18 17:44:42
1136
原创 Java锁机制
synchronized关键字synchronized是一种同步锁。它修饰的对象有以下几种:一个代码块,被修饰的代码块称为同步语句块,作用的对象是调用这个代码块的对象; 一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象; 一个类,其作用的范围是synchronize...
2018-06-12 17:40:47
545
1
原创 ReentrantLock的实现原理
了解ReentrantLock的实现原理之前先梳理一下它所关联的知识点:首先ReentrantLock是基于AbstractQueuedSynchronizer的,AbstractQueuedSynchronizer是此锁同步控制的基础,使用AQS的状态来表示持有该锁的数量。AbstractQueuedSynchronizer中的等待队列是CLS队列锁的变种CLS锁是一种基于链表的高性能...
2018-06-07 17:51:59
708
原创 MySQL锁机制
mysql的锁机制分为表级锁和行级锁。共享锁和排他锁为行级锁。共享锁又称读锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排它锁又称写锁,简称X锁,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和修改。 排他锁指的...
2018-04-24 09:26:28
1590
原创 Hashmap源码解析(jdk1.8)及面试问题
Hashmap源码分析import java.io.IOException;import java.io.InvalidObjectException;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.ut...
2018-04-19 12:21:40
1354
原创 队列——数组存储结构JAVA
/** * 基于数组的队列(循环队列) * 队空判断:front == rear * 队满判断:(rear+1) % maxsize == front * 队头指针进1:front = (front+1)%maxsize * 队尾指针进1:rear = (rear+1)%maxsize * 队列元素个数:(rear-front+maxsize)%maxsize*/public cl...
2018-04-11 09:57:24
302
原创 Mysql导出sql脚本的方式(亲测有效)
1:进入到数据库的Bin目录:D: cd MySQL\mysql-5.6.24-winx64\bin 2:运行下面这句话, mysql dump -h 127.0.0.1 -u root -p 数据库 名 > 命名.sql root是用户名。 如图: 3.去D:\MySQL\mysql-5.6.24-winx64\bin这个目录下就可以看到你的sql脚本了...
2018-04-11 09:32:07
8651
1
原创 KMP字符串匹配算法过程原理
KMP算法是无回溯的字符串匹配算法此算法的关键是求next(j); 若设在进行某一趟匹配比较时在模式P的第j位失配,如果j>0,那么在下一趟比较时模式串P的起始比较位置是next[j],目标串T的指针不回溯,仍指向上一趟失配的字符;如果j=0,则目标串指针T进一,模式串指针P回到p0p0p_0,继续进行下一趟匹配比较。知道了next数组怎么使用后,再介绍KMP算法的原理。...
2018-03-30 16:27:52
1905
原创 Java——String的equals和==的区别
先贴代码 String s1="abc"+"def"; String s2=new String(s1); String s3 = s1; System.out.println("s1: "+s1); System.out.println("s2: "+s2); System.out.printl...
2018-03-21 11:27:19
179
原创 逻辑回归——练习题
数据的前两列为成绩,第三列为是否录取的决定。首先加载数据,将数据打在散点图上data = np.loadtxt('ex2data1.txt', delimiter=',')neg = data[data[:, 2] == 0]pos = data[data[:, 2] == 1]fig, ax = plt.subplots()ax.scatter(pos[:, 0], pos[...
2018-03-20 10:49:40
4125
1
原创 逻辑回归
逻辑回归的概念线性回归是对多维空间中存在的样本点,用特征的线性组合去拟合空间中点的分布和轨迹,能对连续值结果进行预测。逻辑回归是一种分类问题。如果输出结果是(0,1)的概率值,那么在数学中找到sigmoid函数(逻辑函数)g(z)=11+e−zg(z)=11+e−zg(z) = \frac{1}{1+e^{-z}} g(z)可以将连续值映射到0到1之间。z=θTxz=θTx...
2018-03-18 11:33:23
293
原创 线性回归练习题之多特征值
多特征值得代价函数和梯度下降法和单特征值的差不多,唯一需要多做的一步是特征值缩放。 下面为特征缩放函数来标准化数据: x=x−μS(μ为特征值的均值,S为标准差=方差的算术平方根)x=x−μS(μ为特征值的均值,S为标准差=方差的算术平方根)x = \frac{x - \mu}{S} (\mu为特征值的均值,S为标准差=方差的算术平方根)def normalization(data):...
2018-03-18 09:38:32
1023
转载 解决大数据问题的思路
文章转载自:https://www.cnblogs.com/CheeseZH/p/5283390.html大数据问题一般采用分而治之的思想。 首先对数据量大小的单位做一个总结: 1GB=1024MB 1MB=1024KB 1KB=1024Bytes(字节) 1GB=10910910^9Bytes哈希存储 布隆过滤器 归并排序 快速排序 推排序 分布式架构 trie树(...
2018-03-17 20:28:11
1267
原创 MapReduce过程
MapReduce是分治算法的一种实现。处理过程为input->map->sort->combine->Partition->Reduce->Output input阶段:数据以一定的格式传递给Mapper; map阶段: 对输入的key,value进行处理,即map(k1,v1) -> list(k2,v2); sort阶段:对于Mapper...
2018-03-17 17:53:27
342
原创 java反射机制及其应用
Java反射机制是在运行状态中,对任意一个类都能够知道这个类的所有属性和方法;对于任意一个对象都能够调用它的任意一个方法。这种动态获取信息和动态调用对象方法的功能称为Java语言的反射机制。 类的反射机制中类有Class对应,方法有Method对应,属性由Field对应。反射机制的功能在运行中分析类的功能。在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时...
2018-03-16 17:44:54
305
原创 线性回归——练习题
一个特征值加载数据,将数据赋给x和y两个向量; 此处使用numpy模块对数组进行处理data = np.loadtxt(‘data1’,delimiter=’、’),此时data为包含两列数据的数组; 计算data的行数,将第一列赋给x,第二列赋给ym = np.size(data,0)x=data[:,0]#数据切片,取所有行的第一列,为一行数据y=data[:,1]#去...
2018-03-15 22:44:37
4456
原创 特征缩放
特征缩放如果有多个特征,为了让这多个特征都在一个相近的范围内,这样梯度下降法就能更快的收敛。均值归一化x−μsx−μs\frac{x-\mu}{s}其中μμ\mu为均值,s为特征值的范围,即max-min。学习率 αα\alpha梯度下降算法迭代过程中的代价函数J(θθ\theta)的值,如果梯度下降算法正常工作,那么每迭代一部后代价函数下降,当到达多次迭代后,代价...
2018-03-15 16:48:54
465
原创 多元线性回归
多元(多特征值的)线性回归变量记号:n:样本的数量:x的i的上标表示第i个训练样本的输入特征值(eg.x的上标2表示,第二个训练样本的特征向量)第i个训练样本的第j个特征量多元线性回归的假设为:代价函数为:梯度下降法更新规则: 小结:梯度下降法为什么会使代价函数最小化?在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。梯度向量就是函数变...
2018-03-14 22:32:56
331
原创 机器学习之代价函数、梯度理解
代价函数也叫损失函数,训练数据集的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度。防止过拟合时添加的正则化项也是添加在代价函数后面的。 过拟合和正则化的概念讲的好的文章:http://blog.csdn.net/cc18868876837/article/details/61414327平方误差代价函数(均方误差)可能是解决回归问题常用的手段。在线性回归中最常...
2018-03-14 11:12:00
1933
2
原创 Android之ListView嵌套,访空间动态展示页面
项目需求,需要做动态展示功能,我的想法是每条动态的评论都是Listview,然后动态也是Listview,效果图是这样的这个实现的难点主要是评论adapter和动态adapter的设计实现。评论adapter是子Listview动态adapter是父Listview
2017-12-05 20:06:29
222
mysql-connector-java-5.1.30.jar
2016-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人