从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段代码块(伪代码) String output(double num){//double类型的参数num由DAO层提供 String result=null; if(num等于num的整数部分)//例如12.0000等于12,13.0001不等于13 result=(将num的小数位全部删去,返回相应…
一.前言 对于找Java相关工作的读者而言,在笔试中肯定免不了遇到try-catch-finally + return的题型,需要面试这清楚返回值,这也是这篇博文产生的由来.本文将从字节码层面来解释为何不同的写法对应的返回结果不相同.当然在实际开发环境下不会这么抠知识点,但是掌握这种分析方法也未尝不可.对于没有此需求的读者大可略过此篇博文. 二.测试 首先进行一个小小的测试,有如下代码 package com.hust.grid.leesf.main; /** * Created by LEES…
公司不是专门做网站的,偶尔会接到客户让修改前端,有时候和让头疼,自己浏览器兼容问题处理不好. 慢慢积累吧. 先贴出来一些前端代码吧,如下: <div class="test"> <form id="Form1" runat="server"> <span>请输入内容:</span> <asp:TextBox ID="txtCode" runat="server&q…
摘要:FRDM-KE02Z是飞思卡尔公司较为新的微控制器,学习和开发资料较少.从本篇开始会陆续介绍其相关的开发流程,并完成一个小型的工程项目.这是本系列博客的第一篇,主要介绍开发环境IAR for ARM的搭建.调试工具的使用,并演示一个串口例程.开发freescale Kinetis KE02Z,可选的开发环境有三个:Codewarrior IDE (Eclipse).IAR for ARM或者Keil for ARM.由于Codewarrior 10.4版本下载比较麻烦,而且工程文件繁杂,不…
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特别是从别人那里拷贝过来的工程目录,添加头文件路径就变得非常的繁琐.所以我们需要一个自动化的方法.该方法会搜索工程目录的文件夹和子文件夹,将其中包含了.h文件的路径找出来,并转换成keil和IAR要求的格式.这个难不倒程序员,只是简单的文件查找,再用点正则就行,QT也好,python也好都很容易实现.…
一.背景 由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库.由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累. 二.系统环境 Scala.Sbt.IDE的版本分别如下 Scala版本 ==> 2.11.8 Sbt版本   ==> 0.13.8 Idea Intellij版本   ==> 2016.2.2 三.步骤 3.1 新建SBT项目 3.2 添加Student类和程序入口 项目结构如下图所示 其…
开篇先自我检讨一下,写了博客几年以来首次试过连续两个月没出过博文,有客观也有主观原因,但是最近这年里博文数量也越来越少,博文的质量也每况日下.希望自己一直能坚持下来,多写写博文,这月尽量多写几篇来弥补上两个月的. 话说我们的DBA妹子离开我们也两月了.在DBA不在的日子里,小伙伴只能靠自己了.但貌似我的数据库技术还是定格在她离开的时候. 动态SQL 她当时教我最厉害的一招利用SQL生成SQL最终执行查询,大致就是通过sys.table查出表名,生成SQL并合并,最后exec执行.感觉还是比较有用…
文章首发于浩瀚先森博客 #栈的理解 一个程序大体上讲都是由变量和函数组合而成,变量有全局变量和局部变量,还有函数间传值的参数以及返回值. Stack是为了程序运行过程中临时保存所需数据而在内存里分配的一小块空间.保存的数据类型一般情况下包括以下几种: 1. 函数中声明的局部变量以及参数 2. 函数返回值 3. 中断时CPU 寄存器值 4. 函数运行后返回的地址 比方说下面的例子,函数里声明的局部变量保存在stack里面,在该函数中调用其他函数的时候其他函数中的局部变量也会添加到stack里保存.…
文章首发于浩瀚先森博客 堆栈的概念在脑海里已经存在有一段时间了,今天就测试来整理下Heap堆.栈以后再说. 堆区不像全局变量和局部变量总是有指定的内存大小,它是为了在程序运行时动态分配内存而设定的一块区域. 在程序运行时需要一块特定大小的内存空间来使用的时候,那么可以先声明空间大小值,然后在程序运行时会在某个区域里划分指定大小的内存空间出来,这里所说的某个区域就是堆区. 堆内存通常用类似malloc,free的函数来分配内存大小和释放内存. Malloc函数用来动态分配堆内存空间.成功分配空间后…
上一次,我们简单的测试了FreeRTOS的基于IAR EWARM v6.4和STM32F103VET6平台的Demo,对其有了一个基本认识.接下来我们开始自己移植FreeRTOS的过程. 1.创建一个“FreeRTOSTestProject”项目文件夹,并在其下创建FreeRTOS.Libraries.Project.User文件夹. 与无操作系统的项目一样User中存放应用文件:Project中存放项目文件:Libraries中存放STM32F1xx标准库文件.而在FreeRTOS文件夹中存放…