- 博客(84)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java并发(一)
概述:本文主要讲述Java并发中的常见问题,内容涵盖多线程的实现、线程安全、线程安全集合类、线程阀、线程池等内容。第一部分 分布式计算、并行计算、并发计算1.1 并行计算与分布式计算级别上。并行计算借助于并行算法与并行编程语言,实现进程级并行和线程级并行;分布式计算将任务分成小块分配到各个计算机上执行,属于计算机之间的并行。粒度上。并行计算中,处理器之间交互频繁,粒度细;分布式计算中,处理器之间
2017-04-22 22:38:30
581
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JVM总结
概述:本文主要根据《深入理解java虚拟机》一书,对JVM的主要特性进行了归纳总结,内容涵盖JVM运行时内存区域的划分、垃圾回收的基本原理与算法、内存分配与回收的基本策略、虚拟机类加载机制、程序编译与代码优化、Java内存模型与线程、线程安全与锁优化等。第一部分 JVM运行时内存划分 Java虚拟机在执行Java程序时将所管理的内存划分为若干个不同区域:虚拟机栈(VM Stack)、本地方法栈(N
2017-04-09 22:14:51
698
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 2016“编程之美“挑战赛 复赛整理
比赛概述初赛的网络平台为 Code Hunt平台,初赛时间为4月23日至4月24日,每天进行一场,时间为14:00-16:00。每场晋级1500人,共决出3000人晋级复赛。 复赛采用团队赛的形式,基于云计算平台在实际大数据的基础上展开人工智能等前沿课题的较量。时间安排赛题介绍Microsoft Academic Graph (MAG) 是一个巨大的异构图谱,图谱中包含多种实体:作者、论文、
2017-03-07 15:23:29
719
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 文本分类的研究与实现
主要任务对基本的文本分类算法进行研究,了解并掌握算法基本原理,设计程序实现分类算法,并用数据集进行测试。数据集的获取 本次研究以搜狗实验室的搜狗新闻数据为基本语料,地址1.格式转换 原始数据集是只读的XML格式文件(news_sohusite_xml.dat)。首先是编码问题,需要将文件转换为UTF-8编码;然后是标签问题,原始XML格式文件缺少根标签,需要自行添加。本次格式转换部分用ja
2017-03-07 14:43:14
2679
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 分布式爬虫的设计与实现
分布式爬虫的设计与实现基本环境linux操作系统、pycharm集成开发环境主要功能设计并实现一种基于“C/S”结构的爬虫,在并发爬取的情况下实现对大规模网页的爬取,并提取出网页的相关信息。关键技术python、mongodb、广度优先与深度控制系统结构实现方案Mongodb数据库中用于存放url对应的记录,每条记录格式为: { “_id”:url, “state”:OUTSTAN
2017-03-07 11:42:01
5027
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 hadoop平台搭建(4)--伪分布式的配置及运行
摘要:本文主要讲述Linux环境下搭建hadoop平台过程中,基于hadoop单机模式运行正确的基础上,配置hadoop的伪分布式模式,并在配置完毕的基础上运行hadoop的伪分布式实例。环境说明:文章延续hadoop平台搭建(3)中的步骤,因为只涉及hadoop自身配置文件的修改,所以操作步骤适用于所有版本的Linux系统
2016-04-17 00:39:09
2142
原创 球赛排名问题
问题描述大学生足协决定举办全国性的大学生足球赛,由每个学校派遣一支队伍代表该校参赛。比赛分区分为几个赛区进行,最终的总决赛中,将有不超过n支队伍参加。经过激烈的角逐,有机会参与总决赛的队伍已经决出。协会对比赛的规则进行了调整,以便使得比赛更具有观赏性。 1. 总决赛的参赛队伍为n支,n为偶数; 2. 进入前1/2的队伍才有资格进入淘汰赛; 3. 队伍按积分排名,具体规则为:胜一场积3分;平一场
2017-09-16 17:23:57
2120
原创 消息总线(MQ)知多少
1 什么时候用MQ?1.1 MQ的基本概念 消息总线(Message Queue,MQ),是一种跨进程的通信机制,用于在上下游之间传递消息。MQ是一种常见的上下游“逻辑解耦+物理解耦”的消息通信服务,消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务。1.2 MQ的使用场景场景一:数据驱动的任务依赖 有些任务之间有一定的依赖关系,比如:task3需要使用task2的输出作为输入,tas
2017-09-05 21:39:23
34971
7
原创 操作系统理论
1 什么是地址空间 现代操作系统采用虚拟地址空间,一般的32位操作系统,虚拟地址空间为4G(2的32次方)。为了保证内核的安全,操作系统将虚拟地址空间划分为两部分:一部分为内核空间,一部分为用户空间。 针对Linux系统而言,将最高的1G字节划分供内核使用,称为内核空间。将较低的3G字节,供各个进程使用,称为用户空间,每个进程可以通过系统调用进入内核。因此,linux内核供系统所有进程共享。
2017-09-03 23:55:03
602
原创 一道谷歌编程题引发的思考
写在前面 今天做了谷歌的一道在线测试题,在理解题意的基础上,总算把程序编写完整,在提交后发现很诡异的现象:小的数值运行正确,大的数值运行错误。但是我确定,数值范围没有溢出! 没有溢出! 最终排查很久,终于发现错误。不得不说,这种错误头一次遇到,真的很诡异。题意 将梯形看作是仅有一对边平行的凸四边形。如果两条不平行的边相等, 则称为等腰梯形。 有一些长度不等的木棍,你需要挑出四根来构成一个等
2017-08-27 18:47:21
751
原创 字典树的构建
摘要 该部分主要讲述基于Java语言构建字典树,包括字典树的剪枝与遍历操作。字典树原理不再赘述,代码实现部分如下实现部分工具类Tools.java,主要实现对大数据集的采样,以及对数据规模的统计package main;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStre
2017-08-15 23:46:27
1336
1
原创 java读写Excel表格
摘要 该部分主要讲述了怎样通过Java语言读写Excel表格。从.csv文件中读取数据,以及将数据保存为.xls文件读取过程package read;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter
2017-08-15 23:26:11
896
原创 java Logger类和Apache slf4j
1 相关jar包 下载地址2 定义log4j.properties文件### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4
2017-08-07 23:17:47
1192
原创 Redis实现分布式锁
锁的定义DistributedLockpackage pkg1;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.Transaction;import redis.clients.jedis.exceptions.JedisException;imp
2017-08-06 00:25:25
366
原创 java生成UUID
1 关于UUID的简介 UUID指通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。 UUID 的目的,是让分布式系统中的所有
2017-08-04 00:14:17
1237
原创 Redis的安装及java操作
1 安装1.1 Ubuntu环境安装命令sudo apt-get install redis-server打开client终端,测试是否安装成功 2 下载并配置JdisJdis是Java操作Redis的api接口,下载地址为:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip如果需要使用Redis连接池的话,还需commons-pool-1.5
2017-08-03 23:47:50
845
原创 ubuntu下安装teamviewer
基本环境Ubuntu64安装步骤(1)下载teamviewer安装包,地址(2)ubuntu系统是64位的,必须添加32位的架构sudo dpkg --add-architecture i386 (3)更新安装工具,并安装缺少的依赖包 “`sudo apt-get updatesudo at-get -f install“`(4)执行安装程序命令sudo dpkg -i teamvie
2017-06-07 11:18:33
1764
原创 Hadoop原理汇总(二)——MapReduce
5 MapReduce5.1 设计理念计算向数据靠拢,减小节点间的数据移动开销 前提条件 ● 待处理的数据集可以分解为许多小数据集 ● 每个小数据集都可以完全地并行处理 5.2 基础架构 MapReduce框架包含一个Master和若干个Slave。Master上运行JobTracker,负责作业和任务的调度,并监控它们的执行;Slave上运行TaskTracker,负
2017-05-26 11:42:33
1014
原创 Hadoop原理汇总(一)——HDFS
摘要:本文主要对hadoop的原理性知识进行汇总,包括核心组件、HDFS存储原理、HDFS shell命令、HDFS Java端API、MapReduce基本原理、shuffle基本原理、sort过程等。1 Hadoop核心组件生态系统图 HDFS文件系统 它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应
2017-05-25 16:33:47
5681
原创 git提交中target等目录忽略与取消忽略
在本地仓库的根路径下,找到ignore隐藏文件,编辑隐藏文件,在隐藏文件里添加或删除条目,即可在提交过程中忽略指定路径与取消忽略
2017-05-24 09:37:21
17012
5
原创 java反射机制
摘要:本文主要介绍Java的反射机制,内容涵盖反射的基本概念、主要作用、相关类、主要API,以及反射的应用示例。1 关于反射1.1 基本概念 反射机制是在运行状态中,对于任意一个类或对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。1.2 主要作用反射机制主要提供了以下功能: 1. 在运行时判断任意一个对象所属的类; 2. 在
2017-05-16 13:05:01
289
原创 Java并发(三)——同步计数器
1 CountDownLatch同步计数器1.1 类的概述 倒计数门闩。在完成一组正在其它线程中执行的操作之前,它允许一个或多个线程一直等待。在计数器到达0之前,await方法会一直阻塞;之后,会释放所有等待线程,await的所有后续调用都将返回。1.2 主要方法CountDownLatch(int count) 构造一个用给定计数初始化的同步计数器void await() 使当前线程在计
2017-05-15 08:56:12
8115
原创 Java并发(二)——线程相关类与线程池
第六部分 线程相关类6.1 继承关系Executor接口-<--ExecutorService接口<--AbstractExecutorService抽象类<--ThreadPoolExecutor类6.2 Executor接口6.2.1 接口声明public interface Executor6.2.2 接口概述Executor是一个顶层接口,在它里面只声明了一个方法execute(Runnab
2017-04-24 00:36:35
504
原创 Java异常类解析
1 层次结构 Java异常层次结构如下图所示,所有的异常类都是从Throwable继承而来,下一层则分为两个结构,Error和Exception。 2 error异常和exception异常Error类层次描述了Java运行时系统的内部错误和资源耗尽错误,在java的虚拟机中发生,用户无需在程序中捕捉或者抛出,属于unchecked exception。Exception类异常主要分为两
2017-04-22 22:12:52
662
原创 LeetCode
96. Unique Binary Search Trees-唯一二叉排序树的个数题目描述思路分析1) 当节点个数为0或1时,二叉树只有1种,表示为f(0)=1,f(1)=f(0)*f(0); 2) 当节点个数为2时,总的种类数=左子树为空f(0)右子树不为空f(1)+左子树不为空f(1)右子树为空f(0),即f(2) = f(0)*f(1)+f(1)*f(0)=2种; 3) 当节点个数为
2017-04-08 12:26:51
507
原创 《程序员面试金典》
4.1 检查二叉树是否平衡代码实现// 获取二叉树的树高度,判断二叉树是否平衡class TreeNode { public int val = 0; public TreeNode left = null; public TreeNode right = null;}public class Solution { // 获取树高度,用递归的方法:左、右子树的最
2017-04-08 12:05:58
604
原创 MySQL新用户无法登录问题
MySQL在创建新用户后,有时会出现新用户无法登录的情况,此时需要手动刷新用户权限即可。命令如下:FLUSH PRIVILEGES;类似的,当用GRANT命令、REVOKE命令更改用户权限时,同样需要手动刷新用户权限。
2017-04-07 15:05:06
750
原创 hashCode()与equals()
hashCode()和equals()方法用于判断两个对象是否相等,在HashSet的contains()方法add()方法、HashMap的contains()方法和put()方法等集合框架中广泛使用。 hashCode()和equals()方法在Object类中被定义,java中任何类都具有这两个方法。在新定义类时,若涉及到新定义类对象的比较,则需要重写这两个方法。如下命题成立命题1:两个
2017-04-06 21:58:03
245
原创 volatile关键字及其作用
概述:本文主要介绍Java语言中的volatile关键字,内容涵盖volatile的保证内存可见性、禁止指令重排等。
2017-03-24 16:37:42
24337
4
原创 设计模式
单例模式模式概述只能生成一个实例的类是实现了单例模式的类型。单例模式作用是保证在整个应用程序周期内,单例类的实例最多有一个。实现思想 1) 构造函数私有化,不让其他类调用构造函数 2) 在类中创建一个本类的对象,作为待返回的成员变量 3) 对外提供一个方法,返回该类对象。饿汉与懒汉模式 1) 懒汉模式:只有当调用getInstance的时候,才回去初始化这个单例。 2)
2017-03-24 11:36:12
265
原创 《剑指offer》
二维数组中的查找题设条件在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路分析矩阵是有序的,从左下角来看,向上数字递减,向右数字递增。因此从左下角开始查找,当要查找数字比左下角数字大时,右移;要查找数字比左下角数字小时,上移。同样也可以从右上角开始查找。代码实现//二维数组中
2017-03-18 12:19:30
637
原创 算法-排序算法总结
插入排序插入排序思想:每趟将一个元素,按关键字大小插入到它前面已经排序的子序列中,依次重复,知直到插入全部元素。 插入排序分为直接插入排序、希尔排序、二分插入排序直接插入排序在第i趟排序过程中,key = arr[i],arr[0]-arr[i-1]已经有序,从后往前依次将大于key的元素后移,直到遇到小于等于key的元素结束。代码实现 :/** * 直接插入排序,外层循环i代表待插入元素,内
2017-03-17 14:00:49
245
原创 N个数依次入栈,出栈顺序有多少种
题目N个数依次入栈,出栈顺序有多少种?直接公式令h(0)=1,h(1)=1,卡特兰数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2) 例如: h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2, h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=1*2+1*1+2*1
2017-03-14 15:55:15
8786
3
原创 网络基础问答
IP地址的分类A类地址,以0开头,第一个字节范围:0~127 网络地址范围:0.0.0.0.0~127.255.255.255 B类地址,以10开头,第一个字节范围:128~191 网络地址范围:128.0.0.0~191.255.255.255 C类地址,以110开头,第一个字节范围:192~223 网络地址范围:192.0.0.0~223.255.255.255 IP地址与子网掩码
2017-03-10 13:08:49
667
原创 java基础知识问答
线程与进程的区别归纳a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见 b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性 c.调度和切换:线程上下文切换比进程上下文切换要快得多创建线程有几种不同的方式?你喜欢哪一种?为什么?a.继承Thread类 b.实现Runn
2017-03-09 11:30:42
1145
原创 浅析C/S结构与B/S结构
概述C/S又称Client/Server或客户/服务器模式,服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,客户端需要安装专用的客户端软件;B/S是Brower/Server的缩写,客户机上安装一个浏览器,服务器安装数据库,浏览器通过Web Server同数据库进行数据交互。C/S结构特点 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器; 只
2017-03-07 13:09:28
850
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人