- 博客(28)
- 资源 (3)
- 收藏
- 关注
转载 使用python编写mapreduce程序
Hadoop Streaming 是 Hadoop 发行版附带的实用程序。它可用于执行大数据分析程序。Hadoop 流可以使用 Python、Java、PHP、Scala、Perl、UNIX 等语言执行。该实用程序允许我们使用任何可执行文件或脚本作为映射器和/或化简器来创建和运行 Map/Reduce 作业。
2023-03-30 15:40:41 188
转载 java细粒度锁的实现方式
原文链接:Java细粒度锁实现的3种方式 - _1900 - 博客园最近在工作上碰见了一些高并发的场景需要加锁来保证业务逻辑的正确性,并且要求加锁后性能不能受到太大的影响。初步的想法是通过数据的时间戳,id等关键字来加锁,从而保证不同类型数据处理的并发性。而java自身api提供的锁粒度太大,很难同时满足这些需求,于是自己动手写了几个简单的扩展... 1. 分段锁 借鉴concurrentHashMap的分段思想,先生成一定数量的锁,具体使用的时候再根据key来返回对应的lo...
2022-03-17 15:32:45 472
转载 Spring 中的bean 是线程安全的吗?
本文为转载文章,出处见文末。结论:不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型 1、singleton:单例,默认作用域。 2、prototype:原型,每次创建一个新对象。 3、request:请求,每次Http请求创建一个新对象,适用于WebApplic.
2021-10-27 20:01:19 401
转载 Java单例模式:饿汉&懒汉
本文为转载博客,原文出处见文末。引言在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制(或懒加载、延时加载),也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用。这个机制在单线程环境下的实现非常简单,然而在多线程环境下却存在隐患。1、单例模式的惰性加载通常当我们设计一个单例类的时候,会在类的内部构造这个类(通过构造函数,或者在定义处直接创建),并对外提供一个static getInstance() 方法提供获取该单例对象的途径
2021-10-27 19:51:08 135
原创 Java实现队列-顺序队列&链式队列
Java实现顺序队列SeqQueue.classpackage sequence;import java.util.Arrays;public class SeqQueue<T> { private int front; private int rear; private T[] elementData; //private int queueLength; priv...
2020-12-16 16:26:26 272
原创 Java实现栈-顺序栈&链式栈
Java实现顺序栈package sequence;//java实现顺序栈public class SeqStack<T> { private int top = 0; private int capacity; private T[] elementData; private static final int DEAFAULT_CAPACITY = 4; pub...
2020-12-16 16:24:25 357
转载 Java-通配符作为方法参数
使用类似<? extends Number>通配符作为方法参数时表示: 方法内部可以调用获取Number引用的方法,例如:Number n = obj.getFirst();; 方法内部无法调用传入Number引用的方法(null除外),例如:obj.setFirst(Number n); 即一句话总结:使用extends通配符表示可以读,不能写。使用类似<? super Integer>通配符作为方法参数时表示: 方法内部可以调用传入Intege.
2020-10-15 11:18:01 947 1
转载 eclipse-debug调试
一、Debug视图调试中最常用的窗口是:窗口 说明 Debug窗口 主要显示当前线程方法调用栈, 以及代码行数(有调试信息的代码) 断点Breakpoints窗口 => 断点列表窗口,可以方便增加断点,设置断点条件,删除断点等 变量Variables窗口 => 显示当前方法的本地变量,非static方法,包含this应用,可以修改变量值 代码编辑窗口 => 这个不用多说了 输出Console窗口 => ...
2020-10-13 10:29:50 243
原创 java-多态参数与泛型
在使用泛型的集合在参数传递过程中使用多态可能会出现问题,与数组传递过程比较如下:public void go(){Animal[] animals={new Dog(),new Cat()};Dog[] dogs = new { new Dog(),new Dog(),new Dog()};operateMethod(animals);operateMethod(dogs);}...
2020-10-13 10:18:58 562
转载 Java-动态代理
代理模式代理模式的作用可简单理解为功能增强,即为被代理对象委托一个代理对象,代理对象可进行消息的预处理,消息传递,消息后置处理等功能。代理对象本省不提供服务,一般通过持有被代理对象的引用,调用被代理对象的方法提供服务。动态代理与静态代理的根本区别是:通过反射进行服务调用,并提供消息处理功能,这样就可为不同的代理类提供功能增强,如果要加入新的代理功能,只需实现新的InvocationHandler。静态代理了解动态代理前,首先来看静态代理如果实现代理模式~比如我们有一个字体提供类,有多种实
2020-10-12 23:09:30 110
原创 cpu升高问题排查
简述测试环境压测发现cpu飙升,cpu升高通常情况表示代码中有大量计算逻辑/死循环,内存泄漏引起的频繁GC也可导致。因此,这类问题可以从以上几个方面排查。dump基本概念在问题定位和性能分析过程中,dump文件有很大帮助。dump文件记录了jvm运行期间内存状态,线程执行执行情况,常用的有thread dump,heap dump。简单来说,thread dump是记录线程执行信息,heap dump是记录jvm内存信息。thread dump :主要记录JVM在某一时刻各个线程执行的情况.
2020-10-11 11:32:40 1058 1
原创 Git-撤销更改(版本回退)
代码修改完后,我们通过git add . (添加所有文件到暂存区), git commit -m "提交信息"(提交更改到本地版本库)。依据上面两种操作,修改文件后撤销更改分为三个阶段:1. 未执行git add,在工作区更改git checkout --file ; //丢弃工作区的修改,文件回到最近一次commit/add状态2. 执行git add,未执行git commit(修改文件放入暂存区,未提交到版本库)git reset HEAD <file>
2020-05-27 10:20:32 436
原创 window下安装python2 & python3
分别下载两个版本的安装包,安装在不同目录(假设分别安装在E:\Python\Pyhon27 & E:\Python\Python36),分别更改安装目录下python.exe为python2.ext & python3.exe,并将添加至环境变量(当前目录下./Scripts也添加至Path变量)。进入命令行,使用python2 & python3区分不同版本。使用...
2019-11-18 14:44:17 127
原创 lambda表达式
为何要引入Lambda表达式 对于一个Java变量,我们可以对其赋值,但如果我们想对一个代码块赋值应该怎么做?[外链图片转存失败(img-Sw2zWyFt-1564908853441)(https://note.youdao.com/yws/api/personal/file/656E07932E904A09B51695534936AED1?method=download&sha...
2019-11-18 14:41:19 2033
原创 git 远程分支不显示问题
问题:在执行git branch -r命令时发现只有本地分支的上游分支显示,执行git fetch命令后仍不显示其他远程分支。方法:可执行git config -l 命令,查看git fetch 的配置,上述问题可能是没有进行git fetch的配置(或者只配置了上游分支),可执行付下命令进行配置:git config remote.origin.fetch +refs/h...
2019-10-21 20:08:46 5539 2
原创 Git 解决冲突
1. 冲突的发生假设现在有两个分支A,B(对应于同一远程分支),目前两个分支内容都与远程分支一致。此时,在A分支test进行更改并提交push远程分支,B分支上也对test文件进行更改(注意,更改前没有从远程分支pull),更改完毕后,执行git pull操作就会发生冲突。2. 解决冲突依据B分支的更改是否commit提交至本地仓库,有下面两种方法解决冲突。2.1 更改未提交至本地...
2019-09-01 18:27:24 251
原创 Git fetch pll push 远程操作
当我们将本地仓库与远程主机进行关联后,就可以与远程主机共享代码或文件,下面对git远程操作常用的命令进行总结:git fetchgit fetch命令用于将远程主机的更新取回本地。git fetch <远程主机名>上面命令将某个远程主机的全部更新取回本地,默认情况下git fetch命令取回所有分支的更新,如git fetch origin命令,将从远程主机origin(默认...
2019-08-04 18:20:53 490
原创 git本地分支 远程分支简单操作(后续更新)
首先注意git命令首先是目标,后接基于的来源(缺省基于当前分支)。常用的git分支操作进行总结如下:ref:https://my.oschina.net/iak1001/blog/2878914查看分支:git branch (-r/-a) 查看本地分支,当前分支用 * 标识,-r表示查看远程分支,-a查看所有分支新建分支(本地):git checkout -...
2019-07-30 09:58:05 531
翻译 hadoop2.x推荐配置(译文)
看到一篇写hadoop2.x版本配置的讲解文章,感觉很不错,在此翻译一下。原文连接:https://hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0/作为Hadoop2.x的一部分,Yarn拥有MapReduce(hadoop1.x)中的资源管理功能并对齐进行打包,以便新引擎可以使用它们。这也简化了MapReduce,...
2019-04-16 10:10:22 382
原创 “\t”在hdfs中不能识别问题
在测试mapreduce计算平均成绩时,本地三个txt文件(每行为姓名\t成绩),使用vim下Tab键输入制表符上传到hdfs后进行mapreduce计算结果出错,原因可能是hdfs下没有识别制表符(因为我的map使用keyValueTextInputFormat的输入文件格式,如果使用TextInputFormat可能是其他原因),解决方法是在vim命令模式下输入:set list 然后在进入插...
2018-11-07 16:55:58 559 1
转载 java实现k-means算法
//使用Point类中的flag属性保存所属聚类中心的属性,第二种方式直接使用集合存储聚类中心及该中心的点集import java.util.Random;import java.util.Scanner;class PPoint{ public float x; public float y; public int flag = -1; public PPoint(){ ...
2018-03-28 20:36:34 3116
原创 JavaWeb之Cookie中保存中文(URL地址重写)
cookie中保存中文需使用URL重写,并指定编码方式。Login.jsp使用URLDecoder.decode()在cookie中获取name password从cookie中取值:定义要取的变量遍历cookie,if匹配赋值给对应变量前端使用变量显示 <% request.setCharacterEncoding("utf-8"); Str
2017-11-03 20:51:34 935
原创 Hibernate的关联关系映射
系统设计的实体间关系分别为:一对一,一对多(多对一),多对多一、一对多(多对一) 一对多,多对一其实一样,只是站在不同的角度看,这种情况在多的一方添加一的一方的主键为外键。以学生Student和班级Grade为例介绍一对多关联关系在hibernate映射文件中的配置。Student.hbm.xml映射文件配置(多的一方有外键)<!DOCTYPE hibernat
2017-10-07 10:13:46 239
原创 javaWeb之XML解析
1.DOM解析 使用DOM方式解析xml文件,首先通过DocumentBuilderFactory实例创建DocumentBuilder对象,通过该对象的parse(“url”)方法对xml文件进行解析获得Document对象。 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();try {/
2017-10-05 16:47:33 367
原创 javaEE之远程方法调用(RMI)
RMI是一种分布式应用程序开发方法,采用该方法客户端可调用服务器端的远程对象,就像调用客户端自身方法一样。使用RMI远程调用需要服务器、客户端、客户端辅助设备(Stub)、服务器辅助设备(skeleton)。在远程方法调用过程中,客户端看起来像是直接调用远程的方法,其实是辅助设备假装成服务对象(但并不是真正的远程服务),由辅助设备去连接服务器,将调用的方法和参数通过socket传递到服务的
2017-09-09 21:10:09 638
原创 Spring AOP和事务处理的自我总结
AOP面向切面编程spring的AOP可分为三大类的实现方式手动代理(jdk和cglib方式)声明式工厂(半自动和全自动方式)AspectJ(基于XML和Annotation)手动代理手动代理分为jdk动态代理和cglib方式动态代理,代理类通过调用被代理类的相关方法提供服务,纯java实现,不需要专门的编译过程和类加载器,通过代理方式向目标类织入增强的代码。jdk
2017-08-25 11:12:56 603
原创 Spring中的Bean的装配方式
Bean的装配方式Bean的装配方式也即是依赖关系的注入方式,依赖注入可通过setter方法注入、构造方法注入。Spring容器主要支持基于XML的装配、基于Annotation的装配(通过setter方法注入在Annotation中的实现)和自动装配。下面分别介绍基于XML的装配方式设值注入(通过setter方法)基于XML的装配方式可通过setter方法或构造方法注入,当通过s...
2017-08-20 18:48:09 488
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人