铁锤的Blog 
  • Home
  • Archives
  • Categories
  • Tags
  • About
  •     

实习面试记录

spring相关 1.springmvc 工作流程 2.springmvc mapping种类 3.spirng 工作原理 4.Aop 概念以及spring aop实现的方式 5.spring 启动过程 集合框架 1.hashmap原理 2.concurrentHashMap和hashtable,hashmap的区别 多线程 1.原子类 2.wait和sleep的区别 3.某线程获得锁后能否反复进入被synchronized加锁的代码或方法 4.countdownLaunch的实现原理 5.多线程的学习方法:没有困难制造困难。 jvm相关 1.jvm编译时做了哪些优化(我说我挺懂jvm的,直接给我抛出了这个问题,当时就感觉自己嘴怎么这么贱。。) 2.堆内存如何分配的(当时答得不好,他提示说新生代和老年代是不一样的,面试完才想起来这不就是垃圾回收算法的知识嘛。。还是不熟,死记课本不行啊。。) 数据结构 1.B树,B*树,能否根据所给数组形成B树(当时都忘了B树是啥样的了,只记得可以做索引。。平时一定要来回翻看,不然就会感觉到书到用时方恨少了。。) 2.红黑树原理,作用 3.堆排序
 2017-11-20   面试    面试 

Java实现二叉树的三种非递归遍历

Java 实现二叉树的三种非递归遍历1.思路 其实思路就是递归的思路,无非就是加入了栈这个数据结构。 具体来看代码吧,个人觉得还算简洁。 2.实现首先是结点数据结构的设置:/** * @author WK */ public class SearchBinaryTree { //存放的结点标志 public String tag = ""; //是否被便利的标志 public boolean flag = false; //左孩子 public SearchBinaryTree leftChild = null; //右孩子 public SearchBinaryTree rightChild = null; //省略了getter,setter以及构造函数 } - 前序遍历/** * * @param T 传入的树的根结点 */ public static void priorOrderNonRecursive(SearchBinaryTree T)
 2017-11-11   编程    算法 

Vmare克隆虚拟机

克隆虚拟机​ VMware虚拟机安装系统虽然方便,但是搭集群时如果每个结点都重新安装的话也是很耗时的。幸好VMware有个克隆功能,用起来非常方便,非常爽。下面就给出简单的克隆教程。前提是你已经有一个安装好系统且配置好环境的虚拟机。 这里我就用图上的nginx虚拟机做演示,我安装的是centos7。 1、右键nginx虚拟机–》快照–》拍摄快照 2、点击拍摄快照,快照拍摄成功。名称可自填 3、再右键nginx虚拟机–》管理–》克隆 4、下一步5、选择现有快照–》下一步 6、选择创建完整克隆–》下一步 7、输入虚拟机名称,安装地址,点击完成,等待克隆完成。 8、至此我们完成了克隆虚拟机的任务 9、配置网络 ​ 什么都没设置网络居然是好的,但是回头看原虚拟机,发现原虚拟机访问不了网络了,果然有问题。 ①、删除/etc/sysconfig/network-scripts/ifcfg-ens33 的UUID这一行,因为每张网卡的mac地址是不一样的,所以UUID也是不一样的。如果有HWADDR或MACADDR这个选项也得把这一行给去了。 ②、进入/etc/
 2017-11-04   编程    vmare 

编译安装nginx的坑

编译安装nginx的坑报错信息make -f objs/Makefile make[1]: Entering directory `/data/source/nginx' cd /usr/local/ufo/lib/pcre \ && if [ -f Makefile ]; then make distclean; fi \ && CC="gcc" CFLAGS="-O2 -fomit-frame-pointer -pipe " \ ./configure --disable-shared /bin/sh: ./configure: No such file or directory make[1]: *** [/usr/local/services/lib/pcre/Makefile] Error 127 make[1]: Leaving directory `/data/source/nginx-0.7.61' make: *** [build] Error 2 分析 一开始一点儿头绪都没有,
 2017-11-03   编程    nginx 

我们仨读后感

  自从读完《围城》,似乎对读书就爱了起来。其实《围城》中多处的引经据典我都看不懂,但是依然觉得这本书写得是真好。因为从前那么不爱读书的我竟能不知不觉的看下去,直到看完才惊觉已然看完了。因此当然就对钱老产生了极大的兴趣,为什么作者这么厉害,看围城前对钱老的了解只是《寂静的钱钟书》那篇文章。后来慢慢了解到钱老经历之丰富,学识之渊博。真的是敬仰二字都不足以表达出我的感受。   读完《我们仨》才明白为什么围城中的序所写的钱老写书时给杨先生看,两人边看边笑。因为《围城》就是钱老回国后自己的故事啊,不同的是钱老有货真价实的学历与知识储备而且有他爱的圆圆。所以其实我很好奇《我们仨》中没写到的故事,就是钱老怎么和杨先生在一起,又有没有唐晓芙这个人呢?哈哈,就这两本书而言都给我同一种感觉,那就是读着不累,故事又很抓人,然而又不缺乏深度。我想这就是高级知识分子笔下的文章吧。   《我们仨》真的是一个非常温馨的故事,一家人不论什么时候总是彼此牵挂,在一起便无限欢喜,一家人在一起平平淡淡但又充满趣味。其中很有感触的一幕就是,钱老躺在船的床上,杨先生
 2017-10-28   书籍    文学 

大话设计模式读后感

  算来从读这本书开始应该有一个多月了,刚开始读得时候真的是感觉像开启了新世界的大门,感觉太厉害了,全书都是一个个的小故事,故事中包含一个设计模式,真的让人感觉面向对象是一种思维,一门哲学,全书读起来十分抓人,个人感觉《HeadFirst设计模式》还要好。因为平时还有其他工作所以读完这本书花了一个月的时间,包括写书中的示例代码。虽然读完了这本书,但是感觉就如囫囵吞枣,很多东西都没理解,印象非常深刻的模式寥寥可数,还需要在实际的学习工作中深入理解。每个模式都非常的厉害,它们的存在让我感觉到写代码不是简单的复制粘贴,而是一门艺术。   看了设计模式之后感觉自己以前的代码真的是丑陋无比,简直就如建房子只会堆砖抹水泥一样。也终于体会到了一点儿工程师和码农的区别,体会到了一些什么才是真正的面向对象编程。并不是说用一门面向对象的语言就可以写出面向对象的代码。面向对象编程使代码耦合度的降低,因此软件的扩展性,复用性得到了极大的增强。   之前写代码真的是对设计几乎都没有如何想,觉得功能实现了就行了嘛,在适当地抽取一下复用的代码就算是对自己代
 2017-10-23   书籍    设计模式 

LengthFieldBasedFrameDecoder官方文档翻译

Netty的LengthFieldBasedFrameDecoder解码器官方文档翻译 * A decoder that splits the received {@link ByteBuf}s dynamically by the * value of the length field in the message. It is particularly useful when you * decode a binary message which has an integer header field that represents the * length of the message body or the whole message. * <p> * {@link LengthFieldBasedFrameDecoder} has many configuration parameters so * that it can decode any message with a length field, which is often seen in * propr
 2017-09-25   Java    Java  NIO 

NIO学习总结

NIO 学习总结1.学习感悟  Java NIO是自jdk1.4以来就有的一个包。里面提供了大量的与普通IO不同的API。主要的不同点就在于N,有两种解释,一种是new,一种是nonblocking。学习完了之后我觉得两种说法都对,因为这部分API和典型的IO思想上完全不一样,而不一样之处中很重要的一点就是nonblocking这个特性。   整体的学习是从构建非阻塞型Socket通信开始的,之前是一直在学习Socket的知识,因为在项目中用到了而且对于自己来说是难点,所以特地学习了一下,收获也非常多,不过Socket部分另起一篇文章写。   NIO之前就明白很重要,但是一开始看Java核心技术的介绍并没有看进去,以为很难,学完之后发现并不然,重要的是要找到一个好的资源。我对NIO的学习大部分都是通过一个外国小哥的博客,链接在这里(tutorials.jenkov.com)。文章是14年就发表在网站上的,感觉自己要跟上这个时代真的是要做很多努力。博客中技术十分全面,Java的各种核心包都有教程,虽是英文,但是并不难懂,且有图有
 2017-09-05   Java    Java  NIO 

Linux下安装ORACLE10g的部分注意事项总结

Linux下安装ORACLE10g的注意事项总结1. 配置网络*vi /etc/sysconfig/network-scripts/ifcfg-eth0 * DEVICE=eth0TYPE=EthernetUUID=eecaa6f0-7a48-4807-8d64-c0b7d490f8b2ONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=noneIPADDR=192.168.152.136NETMASK=255.255.255.0GATEWAY=192.168.152.2HWADDR=00:0C:29:A9:44:BCPREFIX=24DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME=”System eth0”LAST_CONNECT=1495547591DNS1=192.168.152.2 下划线部分以自己的机子为准,若能ping通ip地址而ping不同域名,可以加上最后一行的DNS,地址为网关地址 2. 安装必要软件 libXp-1.0.0-8.1.el5.i386.rpmbinutils-2.17.50.
 2017-06-03   RDBMS  oracle    linux  oracle 

Java-虚拟机工作原理

引言java程序的工作流程 可以看到我们平常首先会写一个java文件,然后经过java的编译器编译成字节码文件,也就是.class文件,这个过程中我们的程序还没有加载到内存之中。下一步便是通过JRE的类加载器将我们磁盘上的类文件加载到系统分配给JVM的内存区域–运行时数据区(Runtime Data Areas)。然后执行引擎解释或者编译类文件,转化为特定的CPU机器码,CPU执行机器码,至此完成整个过程。 可以发现其中有几个概念, 类加载器, 运行时数据区 ,执行引擎 。这些也都是java虚拟机中的核心概念。下面一一来介绍这些概念。 类加载器接下来就看一下 类加载器 为何物,又是怎么工作的。 层级结构 类加载器被组织成一种层级结构关系,也就是父子关系。其中,Bootstrap是所有类加载器的父亲。如图所示: Bootstrap Class Loader: 当运行java虚拟机时,这个类加载器被创建,它加载一些基本的JAVA API,包括Object这个类。需要注意的是,这个类加载器不是用java语言写的,使用C++写的,所以无法访问。 Extension
 2017-05-08   Java  Jvm    Java 
1…567

Search

Hexo Fluid
 总访问量 次   总访客数 人