首页 » 软件开发

一篇文章看明白 C++ 虚函数表

       C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。阅读全文 »

2017年4月14日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

教你这样提高Hibernate的性能

       1.抓取策略(Fetching strategies)  抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。抓取策略可以在O/R映射的元数据中声明,也可以在特定的HQL 或条件查询(Criteria Query)中重载声明。   Hibernate3 定义了如下几种抓取策略.阅读全文 »

2017年4月10日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

敏捷开发白话篇

       敏捷的意思就是反应迅速, “为什么要反应迅速? ”看看那么多996公司就知道了, “市场变化越来越快,客户要求越来越高, ”为了满足用户的需求, “人家一个星期发一个版本, 我们仨月才能憋出一个来 , 那还不被打的满地找牙?  问题是如何才能反应迅速? ”先来看一个场景:  1、残酷的现实  软件开发有一大难题就是客户脑子中的需求难于描述出来阅读全文 »

2017年4月7日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

C/C++返回内部静态成员的陷阱

       在我们用C/C++开发的过程中,总是有一个问题会给我们带来苦恼。这个问题就是函数内和函数外代码需要通过一块内存来交互(比如,函数返回字符串),这个问题困扰和很多开发人员。如果你的内存是在函数内栈上分配的,那么这个内存会随着函数的返回而被弹栈释放,所以,你一定要返回一块函数外部还有效的内存。  这是一个让无数人困扰的问题。如果你一不小心,你就很有可能在这个上面犯错误。阅读全文 »

2017年3月29日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

怎么解决Hibernate + Json的死循环问题

       【问题】如题所示,在我们使用hibernate框架而又需要将对象转化为json的时候,如果配置了双向的关联关系,就会出现这个死循环问题  异常信息:... 关键字是net.sf.json.JSONException: There is a cycle in the hierarchy!,意思是在层次关系里有一个循环 【原因】为什么会这样呢?原因在于你要转化的对象里配置了对另外一个对象的关联,而那个阅读全文 »

2017年3月24日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

C++实战项目:坦克大战(十)

       上一篇中我们已经得到了一个比较完善的游戏,不过有人反馈说目前的难度较大,第三关已经很难通过了。今天我们来做点小的修改。  如果你认为我们要通过调整参数降低游戏的难度,那你就错了。作为游戏的开发者,我们最大的优势就是拥有上帝视角,可以随意让游戏按照我们的要求变化。  添加奖励  目前的三滴血不太够用,我们添加一个功能,每得到500分就另外获得一滴血。实现起来很简单,只需要在计算分数的时候修改就好阅读全文 »

2017年3月20日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

看看别人的Java面试 你是否又有学习的动力了?

       马老师说过,员工的离职原因很多,只有两点最真实: 钱,没给到位  心,受委屈了  当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真的要跳槽,想要拿到一个理想的offer,除了运气,基本功也要足够的扎实,希望下面的面试经验能给你们能够提供一些帮助。  项目经验  面试官在一开始会让你进行自我介绍,主要是想让你介绍一下自己做过的一些项目阅读全文 »

2017年3月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

C++实战项目:坦克大战(九)

       现在我们的游戏已经初具规模,但如果主战坦克一直是无敌状态那也很无趣。今天我们来让敌人的炮火发挥作用。  主战坦克被击中  当敌人的炮弹和主战坦克接触时,主战坦克生命值减一。我们预设的主战坦克共有三条命,被击中三次后游戏结束。  为主战坦克添加碰撞检测大家应该很熟悉,修改之前的CheckCrash()函数如下:...阅读全文 »

2017年3月15日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

C++实战项目:坦克大战(八)

       上一篇中设计出了关卡和分数,但每新开始一个新的关卡时没有任何提示信息,这样略显突兀。我们需要在每一个关卡开始之前给出一个提示信息,同时让玩家有休息的时间。 绘制提示信息 我们要在Battle区域中,显示一个矩形,中间打印关卡号。效果如下:  实现起来也很容易,在Graphic类中添加一个ShowGameLevel函数:...阅读全文 »

2017年3月13日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

C++实战项目:坦克大战(七)

       目前我们的主战坦克已经能够开炮击毁敌人坦克了,但敌人坦克不会开炮貌似比较欺负人。今天我们让敌人坦克也拥有开炮功能。同时,我们要为游戏设定关卡,让它变得好玩起来。  让敌人坦克开炮  在EnemyTank类中,添加Shoot函数几乎和MainTank中完全相同,... 这里唯一的区别是最后一句话,我们对m_bNeedShoot属性进行了赋值。敌人坦克和主战坦克最大的区别在于自动开炮,它不像主战坦克那阅读全文 »

2017年3月8日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

C++实战项目:坦克大战(六)

       上一篇中,我们的主战坦克发出的炮弹还没有实际的作用,今天我们就让它拥有击毁敌军坦克的功能。  新增基础API  Rect类  在Rect类中,我们添加下面两个新接口。 ... 这两个函数的作用是返回矩形右上角和左下角的两个点。这样方便我们在计算炮弹是否击中坦克时使用。阅读全文 »

2017年3月6日
作者:鸡啄米 分类:软件开发 浏览: 评论:2

5年133个经典Java面试题集锦

       Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。阅读全文 »

2017年3月3日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

为何文件名最好小写?

       一、可移植性  Linux 系统是大小写敏感的,而 Windows 系统和 Mac 系统正好相反,大小写不敏感。一般来说,这不是大问题。  但是,如果两个文件名只有大小写不同,其他都相同,跨平台就会出问题。  foobar  Foobar  FOOBAR  fOObAr  上面四个文件名,Windows 系统会把它们都当作foobar。如果它们同时存在,你可能没办法打开后面三个文件。阅读全文 »

2017年3月1日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

学了这些才能成为Java架构师

       既然称为java架构师,首先你要是一个高级java攻城尸,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池...java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;阅读全文 »

2017年2月22日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

简单总结Git的用法——Git初学必备

       Git概述 Git是一个分布式版本控制系统。就是基于它,著名的GitHub网站才能为开源项目免费提供Git存储,即Git的远程仓库服务。Git是完全免费的,GitHub对于开源仓库也是免费的。其他的免费的版本控制系统(Version Control System,即VCS)还有CSV,SVN等,它们都是集中式的,速度慢,而且还必须联网才能使用。 Git的产生原因是由于维护Linux项目需要一个VC阅读全文 »

2017年2月20日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

C/C++产生随机数的方法

       c库伪随机数发生器  rand  srand  大多时候用时间产生随机发生器的seed c++11 引入的伪随机数发生器.随机数抽象成随机数引擎和分布两部分.引擎用来产生随机数,分布产生特定分布的随机数 常用的就是线性均匀分布 uniform_int_distribution uniform_real_distribution阅读全文 »

2017年2月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

Python面试总结笔记

       收拾了一下自己学习Python过程中的笔记,将Python面试过程中经常涉及到的一些问题整理出来。没有总结到的知识点,欢迎大家在评论里提出来。  1、Python基本语法  1、@staticmethod 和 @classmethod  Python中有三种方法,实例方法、类方法(@classmethod)、静态方法(@staticmethod)。阅读全文 »

2017年2月15日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

阿里巴巴Java开发手册流出

       1.不要嫌名字长  无论是方法,变量,还是函数的取名,不要嫌弃名称太长,只要能够表示清楚含义就可以了。  2.String[] args而不是String args[],中括号是数组类型的一部分,数组定义如下:String[] args;  在《Thinking in Java》这边书里面,是这么解释的:  大部分开发人员,习惯前一种写法。  前一种写法符合我们的口语化,我们口语通常都说:定义一个阅读全文 »

2017年2月13日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

https与http究竟有何不同

       一、什么是 HTTPS  HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。  https:URL 表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份阅读全文 »

2017年2月6日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

后端成长之路:从菜鸟到架构

       有不少初学者问到,我想学习后端,但是又不知道该怎么学,所以我决定把这几年的经验和经历整理成一篇文章,分析后端的路该怎么走,先说明下面仅仅是个人心得,也许与外面的理论有所不同。(文章最后面会附上学习路线地图和一些自己看过的书籍) 后端任务其实是实现接收输入响应输出  后端初接触  后端首先需要学习的是html,css和js,也许你会问做网页不是前端做的事情吗?阅读全文 »

2017年1月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:0