关于java研发工程师面试相关的部分参考

今天受邀去参加了某个公司面试的第二轮复试,今天复试的是公司的一个项目主管,感觉比之前面试的更懂技术一些,还问了一些比较刁钻的问题,在这里记录一些自己的不足和自己觉得比较有价值的东西,作为自己的部分参考。 ①关于docker和vmware优势 docker在磁盘空间上的节省不用说了,MB 与 GB的对比; VMware公司指出虚拟化会只会引入大约2%到4%的性能损失。在Docker容器中运行像Redis这样的应用程序,其性能是完全可以接受的,而其在安全、管理等方面的优势使得Docker容器成为虚拟...阅读全文

www.allocmem.com 2016-07-21 12:27 www.allocmem.co 等

spring AOP 动态代理 jkd动态代理和cglib动态代理 hibernate使用cglib延迟加载

spring 的AOP 实现 可以使用jdk的动态代理,也可以使用cglib的动态代理 先说下两者区别: 静态代理:代理之前就已经知道了代理者和被代理者 动态代理:代理之前并不清楚,在运行时使用反射机制动态生成代理类的字节码 无需我们手动编写它的源代码 jdk动态代理:java.lang.reflect 包中的Proxy类,InvocationHandler 接口提供了生成动态代理类的能力。它必须有被代理对象的接口和实现类,ciglib不需要接口,简单的说 jkd动态代理针对接口,而cglib动...阅读全文

www.allocmem.com 2016-07-19 22:03 www.allocmem.co 等

git本地版本落后仓库几个版本pull冲突相关

git中本地落后仓库几个版本pull冲突,但是自己又不想提交本地的代码到远程仓库,可以尝试使用下面的方法: 一种是使用git fetch,但是自己这个用得少 另外就是使用git pull git pull = git fetch + git merch 解决冲突时利用git stash 把本地代码保存起来 1.git pull origin master 报错:有冲突 不能拉取下来(本地和远程在同地方都有改动 ) 来自 https://git.coding.net/zhoudafu/ISM_D ...阅读全文

www.allocmem.com 2016-07-19 17:24 www.allocmem.co 等

Java快速排序的具体实现

最开始写快速排序花了不少时间,其实关于排序算法,最重要的是首先你要理解,各种排序算法的原理是什么,当你理解了具体的实现原理再来写程序的时候你就会觉得很轻松了。不多说,直接上代码: package Algorithm.sort; /** * 快速排序的实现 * @author zhoudafu * */ public class QuickSort { public void quickSort(int[] a,int low,int high){ int i = low; int j = hig...阅读全文

www.allocmem.com 2016-07-19 16:02 www.allocmem.co 等

关于java部分知识点的总结(三)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 dubbo构成: 2者(服务提供者【无状态】,服务消费者),2中心(服务注册中心,服务监控中心)。 (1) 连通性:连通流程 (2) 健状性:多数部分宕挂了,其余服务部分仍能正常使用 (3) 伸缩性:主要是伸,动态增加机器部署实例 public void ensureCapacity(int minCapacity) { ...阅读全文

www.allocmem.com 2016-07-19 16:00 www.allocmem.co 等

关于java部分知识点的总结(二)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 关于反射: super.getClass() 得到的依然是runtime当前类,若要得到真正的父类,需要用super.getClass().getSuperclass() 虽然这里写的是super,但其实用this也一样 Integer i01=59 的时候,会调用 Integer 的 valueOf 方法, 1 2 3 ...阅读全文

www.allocmem.com 2016-07-19 15:26 www.allocmem.co 等

关于java部分知识点的总结(一)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 Cannot use this in a static context 在一个static代码块或者是static方法中,不能使用this和supper,因为static在jvm加载时就会初始化,而此时this和super可能并不存在。构造器也是隐式的static方法(关于以前记录的言论,但我现在google并没有找不出相...阅读全文

www.allocmem.com 2016-07-19 15:07 www.allocmem.co 等

关于java基础点的一些随笔

最近回头来啃一些java的基础知识,在此记录下个人的收获和理解。 1.关于位运算符的异或,简单的说就是在或||运算符的同时为1,1的时候,其结果为0,其他和或运算符的计算结果完全一致,这里写了下利用异或来达到,在不利用第三个变量的基础上,交换两个变量的值。 /** * Created by yan.chou on 16-7-18. * 不使用第三个变量实现两变量互换 */ public class Java3 { public static void main(String[] args) { ...阅读全文

www.allocmem.com 2016-07-18 20:55 www.allocmem.co 等

git branch

###从git拉取指定分支 1. 先clone下来 git clone https://git.coding.net/zhoudafu/gblog.git 2. 增加远程仓库(此步可省略,若添加远层仓库可参考) git remote add origin https://git.coding.net/zhoudafu/gblog.git 3. fetch下分支代码 git fetch origin coding-pages 4. 使用checkout切换分支 git checkout -b co...阅读全文

www.allocmem.com 2016-01-27 14:58 www.allocmem.co 等

芝麻分从本地mongo中获取有效数据工具

###引言:   起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据。 ###mongo查询: import com.alibaba.fastjson.util.TypeUtils; import com.lemon.datamarket.dao.mongo.ManageRepository; import com.lemon.datamarket.model.DataTransferObject; import co...阅读全文

www.allocmem.com 2017-01-16 22:00 www.allocmem.co 等

vim常用命令

三模式 命令模式 (command mode) -> 默认模式 插入模式 (insert mode)-> i 进入 底行模式 (last line mode) -> 输入 : 常用命令 光标移动 使用上下左右方向键 命令模式下:h向左、j向下 、k向上、l向右。 插入文本或行 vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式 a -> append ->在当前光标位置的右边添加文本,比如字符串为test,光标框住的s,即输入aa,则变为tesat i -> insert...阅读全文

www.allocmem.com 2018-05-19 12:22 www.allocmem.co 等

浅谈c++面向对象的封装,继承和多态

封装 c++的封装体现在class关键字上,一个类的定义将数据与操作数据的源代码进行有机的结合,形成一个“类”,封装一些具体实现,按需对外暴露部分属性和方法。 class BaseClass{ public: int a; void test1(); virtual void printFunc(){ cout<<"This is BaseClass."<<endl; } protected: int b; void test2(); private: int c; }; 继承 使用:符号表示类...阅读全文

www.allocmem.com 2018-05-23 22:29 www.allocmem.co 等

分布式版本控制系统mercurial hg常用命令

mercurial mercurial是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。由于目前工作需要使用mercurial,这里记录下自己使用到的常用命令,作为参照,不定时更新。 常用命令 配置好类似git的ssh,使用hg clone ssh://code@xx.com/yy 克隆xx.com的yy项目 hg status => git status hg br...阅读全文

www.allocmem.com 2018-07-11 17:33 www.allocmem.co 等

自建对象存储服务minio在使用nginx进行反向代理时出现对象无法正常共享的解决办法

什么是minio Minio是在Apache License v2.0下发布的对象存储服务器。它与Amazon S3云存储服务兼容。它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/VM镜像等。对象的大小可以从几KB到最大5TB。 docker 安装示例 docker run -p 9000:9000 --name minio1 -e "MINIO_ACCESS_KEY=自己的access_key,相当于用户名" -e "MINIO_SECRET_KEY=自己的secret_key,...阅读全文

www.allocmem.com 2018-08-10 18:42 www.allocmem.co 等

[转]SolrCloud概览

转自——找不到出处了。。ref->这里 简介 SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是Solr的基于Zookeeper一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式。 特色功能 集中式的配置信息使用ZK进行集中配置。启动时可以指定把Solr的相关配置文件上传Zookeeper,多机器共用。这些ZK中的配置不会再拿到本地缓存,Solr直接读取ZK中的配置信息。配置文件的变动,所有机器...阅读全文

www.allocmem.com 2018-08-15 23:44 www.allocmem.co 等

java.lang.OutOfMemoryError:GC overhead limit exceeded

前言 在我们写的java service里,需要加载一个比较大的算法模型pmml文件.在此模型文件由500M+变为1G+的时候,在测试环境中出现了此问题 异常由来 GC overhead limt exceed检查是Hotspot VM 1.6定义的一个策略,通过统计GC时间来预测是否要OOM了,提前抛出异常,防止OOM发生。Sun 官方对此的定义是:“并行/并发回收器在GC回收时间过长时会抛出OutOfMemroyError。过长的定义是,超过98%的时间用来做GC并且回收了不到2%的堆内存。...阅读全文

www.allocmem.com 2018-08-20 15:47 www.allocmem.co 等

[转]CS231n课程笔记翻译:反向传播笔记

译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Backprop Note,课程教师Andrej Karpathy授权翻译。本篇教程由杜客翻译完成,堃堃和巩子嘉进行校对修改。译文含公式和代码,建议PC端阅读。 原文连接https://zhuanlan.zhihu.com/p/21407711?refer=intelligentunit 原文如下: 简介 目标:本节将帮助读者对反向传播形成直观而专业的理解。反向传播是利用链式法则递归计算表达式的梯度的方法。理解反向传播过程及其精妙之处,对于...阅读全文

www.allocmem.com 2018-12-06 18:56 www.allocmem.co 等

浅析字节存储序列的大小端存储方式

基础 内存地址是从低地址开始进行编号的,用16进制来进行编号,比如内存的开始地址(即低地址)0x0000,然后内存偏移以字节为单位,比如0x0001表示从0x0000位置偏移到后面1个字节,即偏移8bit.字节的高低位是俗成约定的,比如字节序列0x12345678,由于一个16进制的转为2进制占四个2进制(2^4=16,进制转换基础),那么0x12则可以转为8个二进制,也就是8bit=1byte,也就是1字节,回到字节的高低位的俗成约定,0x12为最高位,0x78为字节序列的最低位置 什么是大端...阅读全文

www.allocmem.com 2019-03-22 11:22 www.allocmem.co 等

java和golang中的unsafe包

首先聊聊反射 java和golang都有各自的反射机制,为什么标准库会提供反射机制呢? 反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就不叫spring ioc,不会有spring ioc的诞生了。 静态编译(多数静态语言):在编译时确...阅读全文

www.allocmem.com 2019-03-22 17:53 www.allocmem.co 等

速查jvm字节码指令

JVM指令集参考 0x00 nop 什么都不做 0x01 aconst_null 将null推送至操作栈栈顶 0x02 iconst_m1 将int型-1推送至操作栈栈顶 0x03 iconst_0 将int型0推送至操作栈栈顶 0x04 iconst_1 将int型1推送至操作栈栈顶 0x05 iconst_2 将int型2推送至操作栈栈顶 0x06 iconst_3 将int型3推送至操作栈栈顶 0x07 iconst_4 将int型4推送至操作栈栈顶 0x08 iconst_5 将int型...阅读全文

www.allocmem.com 2019-03-13 18:56 www.allocmem.co 等