自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 spring容器初始化源代码解析

spring容器初始化源代码解析Spring自带了多种类型的IOC容器(应用上下文)。下面罗列的几个是你最有可能遇到的。AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上...

2019-06-26 13:05:03 92

原创 java中的锁

typora-copy-images-to: …\img文章目录java中的锁1. java加锁的方式1.1 两者的区别2. 锁的使用方法:2.1 sychonized2.2 Lock3. 队列同步器3.1 AQS的接口与示例3.2使用AQS实现自定义组件独占锁4 .队列同步器的实现分析4.1 同步队列4.1.1 Node4.1.2队列结构4.2 独占式同步状态获取与释放4.2.1 获取4....

2019-05-06 16:46:16 129

原创 Spring Bean初始化流程源码剖析

Spring Bean初始化流程源码剖析一、首先我们来看ClassPathXmlApplicationContext类体系结构从该继承体系可以看出:BeanFactory 是一个 bean 工厂的最基本定义,里面包含了一个 bean 工厂的几个最基本的方 法,getBean(…) 、 containsBean(…) 等 ,是一个很纯粹的bean工厂,不关注资源、资源位置、事件等。 Ap...

2019-04-22 20:17:16 242

原创 Java并发编程基础之线程详解

文章目录Java并发编程之线程详解1.什么是线程?2.为什么要使用多线程3.线程的状态4.线程的生命周期4.1线程的创建4.2 线程的启动4.3 线程的中断4.4 线程的暂停、恢复和停止5.线程间的通信5.1 利用volitale和synchonized关键字5.2 等待通知机制5.3 等待/通知的经典范式5.4 管道输入输出流Java并发编程之线程详解1.什么是线程?  现代操作系统在运...

2019-04-22 15:08:18 271

原创 Java内存模型

typora-copy-images-to: …\imgJava内存模型在并发编程中,需要处理两个关键的问题:线程之间是如何通信的。线程之间是如何同步的。线程之间的通信是指线程之间通过何种机制来进行信息的传递,目前有两种方式通过进行线程间的通信共享内存的方式:通过写-读共享内存中的公共状态来进行隐式的通信。消息传递的方式:在基于消息传递的并发模型里,线程之间没有共...

2019-04-17 22:16:26 99

原创 volitile和synchronized的应用和实现原理

typora-copy-images-to: …\img文章目录Java并发机制的底层原理实现简要volatile的应用定义:我理解的volitile实现原理:详解synchronized的应用synchronized实现同步的基础:java对象头锁的状态轻量级锁轻量级锁的加锁过程轻量级锁解锁解锁过程偏向锁偏向锁获取过程:偏向锁的释放:重量级锁、轻量级锁和偏向锁之间转换Java并发机制的底...

2019-04-02 09:35:36 371

原创 java中锁的内存语义及其实现

锁的内存语义 众所周知,锁可以实现临界区的互斥执行。java中锁的内存语义和volatile的内存语义类似,其加锁的内存语义和volatile读内存语义相同,其解锁的内存语义和volatile写的内存语义相同,而java锁内存语义的实现又和volatile有着千丝万缕的联系,我们接下来就一起解开java锁的神秘面纱。锁的释放: 当线程释放锁时,JMM会...

2019-04-01 17:01:53 131

原创 Ubuntu 16.04 安装MongoDB远程连接不上的问题

Ubuntu 16.04 安装MongoDB远程连接不上的问题MongoDB远程安装不上一般就是两个问题配置文件bind_ip设置问题系统端口没打开设置bind_ip;打开mongodb.conf文件修改配置修改配置 如下将mongo绑定在任何ip地址上。重启mongodbpkill mongod #关闭mongo服务mongod -config /路径/mongo...

2019-01-07 15:46:34 594

原创 Ubuntu16.04系统下配置远程连接mongodb数据库

Ubuntu16.04系统下如何开启远程连接mongodb数据库1、这里假设你已经正常安装了MongoDB,如果还没有,请参考上一个博客安装教程2、创建(如果已经创建了直接打开就行)配置文件mongodb.conf(可以在任何文件目录下创建)3、sudo vi /mongodb.conf命令进入配置文件并编辑dbpath=/usr/local/mongodb/mongodb-3.6.5...

2019-01-07 15:44:17 1079

原创 Ubuntu 16.04安装MongoDB4.0.5教程及常见安装问题解决方案

Ubuntu 16.04安装MongoDB4.0.5教程MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。1 .下载地址:https://www.mongodb.com/download-center#community下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。2.默认下载路径是到用户目录下的Downloads目...

2019-01-07 15:32:42 1647

原创 第二章节:装配Bean

装配Bean装备Bean声明bean构造器注入和Setter方法注入装配bean控制bean的创建和销毁背景  通常创建应用对象之间关联关系的传统方法(通过构造器或者查找)通常会导致结构复杂的代码。这些代码很难被复用或者单元测试。而在Spring中,对象无需自己查找或创建与其所关联的其他对象。相反,容器负责将所需要相互协作的对象引用赋予各个对象。创建应用对象之间协作关系的行为通常...

2018-12-27 15:01:28 143

原创 第一章:Spring的核心

typora-copy-images-to: …\imgSpring的核心纵览全书,读者会发现Spring 可以做非常多的事情。但归根结底,支 撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring 最根本的使命上:简化Java开发。为了降低Java开发的复杂性,Spring采取了以下4种关键策略:基于POJO的轻量级和最小侵入性编程;通过依赖注入和面向接口实现松...

2018-12-27 14:52:15 79

原创 最清晰的AOP基本原理介绍

AOP基本原理介绍AOP:Aspect-oriented Programming 面向切面编程。在一个服务的流程中插入与业务无关的系统服务逻辑(Logging,Security)这样的逻辑称为 Cross-cutting concerns(横切关注点)。将 cross-cutting concerns独立设计成为一个对象,这样的特殊对象就称为Aspect。从代理机制入门AOP:1. ...

2018-12-26 15:57:22 148

原创 java对象创建流程

对象创建流程推荐博客创建触发关于对象的创建一般是从new指令(我说的是JVM的层面)开始的。虚拟机遇到一条new指令时,会先去检查这个指令的参数能否在方法区中的常量池中检索到一个类的符号应用,并且检查这个符号引用代表的类是否已被加载、解析、初始化。如果没有,则必须先执行相应的类加载过程。(下次会介绍类的加载过程)。分配内存类加载检查通过后,接下来JVM开始为对象在堆中分配内存。对象...

2018-11-03 20:27:48 303

原创 详解java初始化顺序

初始化构造器初始化自动初始化会在构造器调用之前发生如:public class Counter{ int i; Counter(){ i=7; }}那么,i会被先初始化为0,然后在构造函数中赋值为7。对于所有的基本类型和对象引用,包括在定义时已经指定初值的变量,这种情况的成立的;因此,编译器不会强制你一定要在构造器的某个地方或在使用他们之前对元素进行...

2018-11-03 13:14:33 75

原创 怎么解决EXCEL 共享变成灰色的“取消共享工作簿”

如果所示: 解决步骤: 给大家共享下: 由于版本更新以前的共享工作簿功能变成(共享工作簿旧并隐藏了)大家可以依次打开单击“文件”>“选项”>“快速访问工具栏”。打开“从下列位置选择命令”下的列表,选择“所有命令”。向下滚动该列表,直至看到“共享工作簿(旧版)”。选择该项,然后单击“添加”。然后滚动列表,直至看到“修订(旧版)”。选择该项,然后单击“添加”。滚动列...

2018-09-12 12:22:13 21541 2

转载 线程、进程,多线程、多进程,并发、并行的区别

线程、进程,多线程、多进程,并发、并行的区别进程和线程的概念:进程:资源分配的基本单位,一个进程包括多个线程线程:程序执行流的最小单位,是系统独立调度和分配的最小单位进程和线程的区别:线程与资源分配无关,它属于某一个进程,并于进程内的其他线程一起共享进程的资源。每一个进程都有自己一套独立的资源(共享内存),供其所用的线程共享。不论是大小,开销线程要更加轻量级。...

2018-08-12 17:47:17 265

原创 ubuntu使用源码git 安装

这里介绍的方法是用源码安装,首先下载最新的tar包下载地址git安装包Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:$ yum install curl-devel expa...

2018-07-29 22:53:43 998

转载 tar 指令

在Linux中,压缩与解压用得最多的tar.tar命令确实很厉害。tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件以上五个是独立的命令参数,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的  gz-j:有bz2属性的   bz2-...

2018-07-29 10:03:08 90

转载 Git 操作笔记

1、简单概括先用一张图来理一下git fetch和git pull的概念:可以简单的概括为:git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。下面我们来详细了解一下...

2018-07-14 13:21:15 128

原创 git文件没有绿色红色小图标

按Win+R键打开运行对话框,输入 regedit.exe ,准备修改注册表; 找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer; 新建一个键名称为 “Max Cached Icons” 数据设置为 “2000”; 重启一下电脑,图标就可以显示了。...

2018-07-12 21:33:39 876

原创 int(long,short)型指针和char型指针的相互转换

int* p = 0x1234;   //int型指针p,p为一个地址,*p取从地址p开始的连续的4字节的数据。(不知道对不对)char* pc; //char型指针pc,pc为一个地址,*pc取从地址pc开始的1个字节的数据。(不知道对不对) pc = (char*)p;  那么*pc的值是什么?答案:pc指针指向低字节的地址,也就是指向34的地址所以printf("%x\n",*pc);控制台...

2018-07-11 15:08:43 2821

原创 Struct和Union字节对齐的内存占用计算方法

1.基本概念有四个概念需要理解:A、数据类型自身的对齐值:   是指对该数据类型使用sizeof()操作符进行操作所得到的大小(单位,字节);比如,对于[unsigned] char类型的数据,其自身对齐值为1字节;对于[unsigned] short类型的数据,其自身对齐值是2字节;对于[unsigned] int、[unsigned] long、[unsigned] l、float、等数据类型...

2018-07-11 12:01:56 508

原创 项目前端技术总结

获取select ,radio表单选中的值$("input[type='radio']:checked").val() $("#s option:selected").text();  //获取选中的option的文本值获取select中option的被选中的value值:           $("#s").val();           $("#s option:selected").val...

2018-07-05 13:37:28 378

原创 Myeclipse破解步骤

微梦联科 myeclipse 2017 ci 2 破解文件 1.运行keygen目录的crack.bat a.输入Usercode: 任意字母或者数字 b.选择Blue c.点击SystemId(点两次才会生成) d.点击Active e.点击菜单栏->Tools->2.saveProperties 2. 用patch文件夹下的文件覆盖myeclipse201...

2018-06-06 10:31:14 799

原创 怎么在Myeclipse上面导入Maven项目

1.File->Import2.找到Maven目录,点击Existing Maven Projects->next3.选择项目所在目录,Finish4.导进来,POM文件会自动下载jar包,不要中断下载。5.项目可能会保存,正常现象,解决步骤:    1.右键项目名->Build Path->configuration Build Path   2.双击JRE System...

2018-06-02 17:24:17 1143

原创 Hadoop集群搭建教程(详细)

需要的安装包:    1.jdk压缩包    2.hadoop压缩包请前往我的github上下载相关安装包开始搭建hadoop集群一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称...

2018-05-24 00:12:41 127996 46

转载 VMware tools 安装

vmware tools是虚拟机VMware Workstation自带的一款工具,它的作用就是使用户可以从物理主机直接往虚拟机里面拖文件。如果不安装它,我们是无法进行虚拟机和物理机之间的文件传输的,同时还能改善鼠标移动、等性能。 主要步骤: 1.挂载光驱 2.将安装文件拷贝到桌面(其他文件夹都可以)并解压 3.打开终端(Ctrl+Alt+T) 4.切换到安装文件夹所在的目录 5.执行安装命令 需...

2018-05-21 20:37:40 153

原创 MapReduce的基本工作原理

MapReduce的基本模型和处理思想:三个层面上的基本构思 1.如果对付大数据处理:分而治之    对相互之间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略。  2.上升到抽象模型:Mapper与Reduce    MPI等并行计算方法缺少高层并行编程模型,程序员需要自行指定存储,计算,分发等任务,为了克服这一缺陷,MapReduce借鉴了Lisp函数式语言中的思想,用M...

2018-05-21 10:24:04 25956 1

转载 蚁群算法原理及其实现(python)

蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。之后,又系统研究了蚁群算法的基本原理和数学模型.蚁群算法的基本思想:# -*- coding: utf-8 -*-import randomimport copyimport timeimport sysimport mathimpor...

2018-05-20 11:08:23 40072 38

原创 详解BP神经网络

BackPropagation Neuron NetWok  BP神经网络学习算法可以说是目前最成功的神经网络学习算法。显示任务中使用神经网络时,大多数是使用BP算法进行训练.   在我看来BP神经网络就是一个”万能的模型+误差修正函数“,每次根据训练得到的结果与预想结果进行误差分析,进而修改权值和阈值,一步一步得到能输出和预想结果一致的模型。举一个例子:比如某厂商生产一种产品,投放到市场之...

2018-05-06 11:30:41 79468 13

转载 线性可分SVM

引言:       1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于人工神经网络,所以在这之后,人们将SVM应用于各个领域。大量使用SVM模型的论文不断涌现,包括国内和国外。       但是,直到现在,很少能见到一个能对SVM的原理准确,详细,通俗,严谨阐述的论文或者资料,所以决定...

2018-04-28 14:31:11 143

原创 详解支持向量机。

基础:平面方程在空间坐标系内,平面的方程均可用三元一次方程Ax+By+Cz+D=0来表示。一、截距式设平面方程为Ax+By+Cz+D=0,若D不等于0,取a=-D/A,b=-D/B,c=-D/C,则得平面的截距式方程:x/a+y/b+z/c=1 [1] 它与三坐标轴的交点分别为P(a,0,0),Q(0,b,0),R(0,0,c),其中,a,b,c依次称为该平面在x,y,z轴上的截距。二、点法式n为...

2018-04-27 15:03:11 135

原创 阻塞队列

在JDK7中,有7中阻塞队列 ArrayBlockingQueue 一个由数组组成的有界阻塞队列 LinkedBlockingQueue 一个由链表结构组成的队列 PriorityBlockingQueue 一个支持优先级排序的无界阻塞队列 DelayQueue 一个使用优先级队列实现的无界阻塞队列 S...

2018-04-23 11:41:56 66

原创 初学逻辑回归

1.总述    逻辑回归(Logistic Regression,LR)是一种广义上的线性回归分析模型,属于监督学习算法,就是说要对每一组数据进行打标分类。逻辑回归可以用在回归、二分类和多分类等问题上,但是最常用的还是二分类。   LR作为机器学习中明星算法,无论对大数据量的问题还是小数据量的问题都有很好的性能和计算结果,而且在参数设计上也比较利于调参,同时,逻辑回归还具备特征评估的作用。正因为逻...

2018-04-21 16:54:51 99

原创 初学线性回归

线性回归是机器学习中的一个非常重要的算法,一般用来进行数据的拟合或者预测,同时还可以用来特征重要性评估。线性回归一般分为一元线性回归(一个x,一个y)、多元线性回归(多个x,一个y):        例如    :y=a*x+b,这就是一元函数                      y=a*x1+b*x2+c ,这就是多元线性回归在这里我只讲述一元的线性回归,多元的类型,我会在后面提及首先,我...

2018-04-21 16:39:30 151

原创 java类成员访问控制修饰符作用域

public修饰的成员没有限制,任何包中的任何类都能访问。Protected只能被同一个包中的类访问,或者不同包中的子类访问。default 只能被同一个包中的类访问,包括同一个包中的子类。private只能被同一个类中的方法访问。注意protected和default修饰符的区别,如果不是子类,则他们的效果是一样的(只能被同一个包中的类访问),如果是子类,protected可以被在任何包中的子类...

2018-04-18 21:17:19 430

原创 如何在ubuntu中下载并配置Mysql,并使得Navicat能远程访问

1.更新系统apt-get update 【注意:要在root用户下】2、安装mysql-serverapt-get install mysql-serverapt-get isntall mysql-clientapt-get install libmysqlclient-dev3、使用如下命令查询是否安装成功:sudo netstat -tap | grep mysql重启mysql/...

2018-03-09 18:30:56 923

原创 如何再ubuntu上安装tomcat

1.首先下载tomcat.tar.gz压缩版本下载地址2.解压即可(tar-zxvf *****)3.开启tomcat指令 (./startup.sh)4.关闭tomcat指令(./shutdown.sh)5.注意,测试远程访问时要确定防火墙中的8080端口是打开的,否则访问不了。6.如果想修改端口号,在tomcat文件夹的conf/server.xml中修改...

2018-03-09 18:16:08 77

原创 如何在Ubuntu上配置JDK环境

1.的工作肯定是下载JDK的工具包,下载地址,下载的版本为tar.gz压缩包。2.解压压缩包 (解压命令tar -zxvfapache-tomcat-*.*.**.tar.gz)3.输入sudovim /etc/profile或者sudo vim ~/.bashrc,进去之后按i键开始编辑,在最后加上export JAVA_HOME=/home/j...

2018-03-09 13:41:04 153

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除