- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 剑指offer--重构二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目解析:1.前序遍历: 前序遍历的规则:先根节点,后左子树,再右子树2.中序遍历: 中序遍历的规则:先左子树,后根节点,再右子树3.求重构二叉
2016-08-07 22:53:32 371
原创 AbstractQueuedSynchronizer的介绍和原理分析
介绍:提供了一个基于FIFO队列,可以用于构建锁或者其他同步装置的基础框架,利用了一个int类型表示状态使用方法是继承子类通过继承并通过实现它的方法管理其状态{acquire 和release}的方法操纵状态可以同时实现排它锁和共享锁模式源码内使用:使用类型:独占类型共享类型内部属性:队列保存线程引用和线程状态的容器, 将线程对同步器的一
2016-08-03 15:24:55 745
原创 网易2016实习题-比较重量
题目描述:小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻
2016-07-26 23:51:28 601
原创 小米笔试题-小米Git
题目描述git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'解题思路:根据题目描述,可以基本判断出题目原型求出指定顶点到指定顶点的路径,然后对比两个路径中第一个分叉点。根据题目类型,可以判断出应该是图中的广度搜索算法。然后获得各自路径,再进行对比代码:import java.util.ArrayList;import j
2016-07-26 23:34:46 732
原创 小米笔试题-懂二进制
题目描述:世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 解题思路:采用移位,可先右移31位,获得最高位的值,判断是否相同,然后再将原值右移1位,一直循环。即可判断代码:public class Solution { /** * 获得两个整形二进制表达位数不同的数量
2016-07-26 23:25:46 516
原创 小米笔试题 风口的猪-中国牛市
风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2
2016-07-26 23:20:40 2240 3
原创 JAVA i=i++,i=i+1的误区
原因:今天项目中出了一个问题,问题定位以后,发现是由于自己为了代码的整洁,使用了if的三式表达式,当判断条件真时,相当于执行的是i=i++; 导致i一直不致增。特此,专门查了相关资料,做了实验。记录此问题,java的jvm中使用了字节码,正因为此技术才有实现全平台通用的可能性,依靠jvm的读取字节码,执行逻辑程序。本次实验依靠字节码的来查看java的执行顺序。以下是实现i++的代码。执行结
2015-09-28 21:01:29 1403 1
原创 关于Java异常处理
熟悉Java的朋友都知道,对异常的捕获和处理对于Java来说是很重要的一项工作。在java中所有的异常都继承于Throwable,统分为两类:未检查异常和已检查异常,已检查异常需要我们在编程时提前进行{try catch },但是未检查异常(派生于Error和RuntimeException)我们在编程时无法进行捕获,但是当程序运行过程中,发生未检查异常会导致例如无法回收一些系统资源,没有关闭当前
2015-05-19 15:26:00 404
原创 关于Mysql时间相减问题的bug
今天在写程序时,当想挑选出(当前时间-最后通信时间超过2分钟)的服务器时,发现一个问提,减出来的结果不是我所预期的那样。然后,通过测试,发现,原来mysql会有一个隐形的装换,将时间戳转换成整形类型,再进行相减,而不是以unix_timestamp类型进行加减。特地做个记录,防止以后再发生类似事件。例如,我创建一个表,time-test 创建两列,time1,time2.以timestamp
2015-05-07 09:44:55 577
原创 java程序cpu占用率高,分析具体线程
今天将数据转发程序移植到LINUX服务器上,启动程序后,通过PP |grep java 发现程序占用了CPU固定在95%左右,并且一直没有下降,而是一直保持在这么一个高 度。顿时就慌了,关键第一次遇到类似的问题,并且感觉程序应该挺完善的。不应该出现这个问题。 遇到问题就要进行解决,通过查找资料,借鉴前人经验,出现占用率这么高的状态主要原因有: 1.程序计算比较密集
2015-05-04 19:43:19 2069
原创 log4j2的使用以及配置
log4j2 --Log For Java 前言 log4j2可以按照开发人员预先的设定,在指定的位置和情况下打印log语句,并且可以酌情关闭某些log语句,如开发阶段debug类型的语句等。并且,可以使用layout来定义输出语句的格式,像C语言的printf函数一样。如:要实现标准化输出,需要导入log4j2的jar包,可以再 apache官网下载,但是使用时不必所
2015-04-15 16:02:37 2134
转载 eclipse java 注释模板
为了方便代码的可读性和可维护性,注释在java程序编写过程中是必不可少的。如何高效的使用和设计注释模板,对于一个程序员来说也是必要的技能。 在Eclipse中注释模板的编辑路径:Window --> Java --> Code Style --> Code Templates --> Comments --> types --> Edit 根据 http://blog.163.
2015-04-15 10:27:26 441
转载 java中byte, int的转换
最近在做些与编解码相关的事情,又遇到了byte和int的转换,看着那些关于反码、补码的说明依旧头疼,还是记下些实用的方法吧。int -> byte可以直接使用强制类型转换: byte b = (byte) aInt;这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了。对于通过InputStream.read()获取的int,可采用这个方法将值还原。
2015-04-09 21:12:53 311
转载 SQL基础
SQL(Structure Query Language)使用关系模型的数据库应用语言,开发时间:20世纪70年代。 SQL语言分类: DDL(Data Definition language):数据定义语言 DML(Data Manipulation Language): 数据操作语句 DCL (Data Control Language) 数据控制语句 DDL语句:
2015-04-08 21:49:02 313
疯狂JAVA讲义(第二版)光盘内容
2014-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人